Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Local Stt

FreeNot checked

A high-performance Model Context Protocol (MCP) server providing local speech-to-text transcription using whisper.cpp, optimized for Apple Silicon.

GitHubEmbed

About

A high-performance Model Context Protocol (MCP) server providing local speech-to-text transcription using whisper.cpp, optimized for Apple Silicon.

README

A high-performance Model Context Protocol (MCP) server providing local speech-to-text transcription using whisper.cpp, optimized for Apple Silicon.

🎯 Features

  • 🏠 100% Local Processing: No cloud APIs, complete privacy
  • 🚀 Apple Silicon Optimized: 15x+ real-time transcription speed
  • 🎤 Speaker Diarization: Identify and separate multiple speakers
  • 🎵 Universal Audio Support: Automatic conversion from MP3, M4A, FLAC, and more
  • 📝 Multiple Output Formats: txt, json, vtt, srt, csv
  • 💾 Low Memory Footprint: <2GB memory usage
  • 🔧 TypeScript: Full type safety and modern development

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • whisper.cpp (brew install whisper-cpp)
  • For audio format conversion: ffmpeg (brew install ffmpeg) - automatically handles MP3, M4A, FLAC, OGG, etc.
  • For speaker diarization: Python 3.8+ and HuggingFace token (free)

Supported Audio Formats

  • Native whisper.cpp formats: WAV, FLAC
  • Auto-converted formats: MP3, M4A, AAC, OGG, WMA, and more
  • Automatic conversion: Powered by ffmpeg with 16kHz/mono optimization for whisper.cpp
  • Format detection: Automatic format detection and conversion when needed

Installation

git clone https://github.com/your-username/local-stt-mcp.git
cd local-stt-mcp/mcp-server
npm install
npm run build

# Download whisper models
npm run setup:models

# For speaker diarization, set HuggingFace token
export HF_TOKEN="your_token_here"  # Get free token from huggingface.co

Speaker Diarization Note: Requires HuggingFace account and accepting pyannote/speaker-diarization-3.1 license.

MCP Client Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "whisper-mcp": {
      "command": "node",
      "args": ["path/to/local-stt-mcp/mcp-server/dist/index.js"]
    }
  }
}

🛠️ Available Tools

Tool Description
transcribe Basic audio transcription with automatic format conversion
transcribe_long Long audio file processing with chunking and format conversion
transcribe_with_speakers Speaker diarization and transcription with format support
list_models Show available whisper models
health_check System diagnostics
version Server version information

📊 Performance

Apple Silicon Benchmarks:

  • Processing Speed: 15.8x real-time (vs WhisperX 5.5x)
  • Memory Usage: <2GB (vs WhisperX ~4GB)
  • GPU Acceleration: ✅ Apple Neural Engine
  • Setup: Medium complexity but superior performance

See /benchmarks/ for detailed performance comparisons.

🏗️ Project Structure

mcp-server/
├── src/                    # TypeScript source code
│   ├── tools/             # MCP tool implementations
│   ├── whisper/           # whisper.cpp integration
│   ├── utils/             # Speaker diarization & utilities
│   └── types/             # Type definitions
├── dist/                  # Compiled JavaScript
└── python/                # Python dependencies

🔧 Development

# Build
npm run build

# Development mode (watch)
npm run dev

# Linting & formatting
npm run lint
npm run format

# Type checking
npm run type-check

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

from github.com/SmartLittleApps/local-stt-mcp

Installing Local Stt

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/SmartLittleApps/local-stt-mcp

FAQ

Is Local Stt MCP free?

Yes, Local Stt MCP is free — one-click install via Unyly at no cost.

Does Local Stt need an API key?

No, Local Stt runs without API keys or environment variables.

Is Local Stt hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Local Stt in Claude Desktop, Claude Code or Cursor?

Open Local Stt on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Local Stt with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs