mcpField
L
Local Speech-to-Text MCP Server

Local Speech-to-Text MCP Server

Local
github.com/SmartLittleAppsMedia & Design20Updated 73w ago

About Local Speech-to-Text MCP Server

Local Speech-to-Text MCP Server is an MCP server that runs whisper.cpp for on-device transcription, optimized for Apple Silicon. It suits users who need privacy and want to avoid cloud speech APIs.

Key features

  1. 01On-device transcription without cloud APIs
  2. 02Apple Silicon optimization with reported 15.8x real-time speed
  3. 03Speaker diarization for multiple speakers
  4. 04Automatic conversion of MP3, M4A, FLAC and other formats
  5. 05Output in txt, json, vtt, srt and csv

Use cases

  1. 01Generating subtitle files from local recordings
  2. 02Transcribing long audio files in segments
  3. 03Separating speakers in meeting audio from an MCP client

MCP support

This is an MCP server that exposes transcribe, transcribe_long and transcribe_with_speakers tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Local Speech-to-Text MCP Server

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

ToolDescription
transcribeBasic audio transcription with automatic format conversion
transcribe_longLong audio file processing with chunking and format conversion
transcribe_with_speakersSpeaker diarization and transcription with format support
list_modelsShow available whisper models
health_checkSystem diagnostics
versionServer 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.