whisper-stt-mcp — Local Speech-to-Text via MCP

I need to transcribe audio frequently — voice memos, meeting recordings, podcast snippets. Sending audio to OpenAI Whisper API means paying per minute and trusting a third party with potentially sensitive content. So I built an MCP server that runs 100% locally using faster-whisper (CTranslate2) with NVIDIA GPU acceleration.

whisper-stt-mcp is an MCP server with 4 tools for audio transcription. It integrates seamlessly with Hermes Agent, Claude Desktop, Cursor, or any MCP-compatible client.


Architecture

Audio file (mp3/wav/m4a/ogg/flac/opus/webm)

  ffmpeg conversion        ← auto format handling

  faster-whisper (GPU)     ← CTranslate2 with INT8 quantization

  VAD (silero-vad)         ← filters silence, improves accuracy

  JSON output              ← text + word-level timestamps

Your audio is processed entirely on your machine. No data ever leaves.


Key Features

4 MCP Tools

ToolDescription
transcribeTranscribe a single audio file with full options
list_modelsList available and downloaded Whisper models
download_modelDownload a Whisper model (tiny/base/small/medium/large-v3)
transcribe_batchTranscribe an entire directory of audio files

GPU Acceleration

NVIDIA CUDA with INT8 quantization means even large-v3 runs in ~2.5 GB VRAM:

ModelVRAMSpeed (RTX 3050)Quality
tiny~0.5 GB20x real-timeLow
base~0.8 GB15x real-timeFair
small~1.5 GB10x real-timeGood
medium~2.0 GB6x real-timeRecommended
large-v3 (INT8)~2.5 GB4x real-timeBest

Smart Features

  • Voice Activity Detection — silero-vad filters silence before transcription
  • Auto language detection — 99+ languages supported
  • Word-level timestamps — exact timing for every word
  • Auto format conversion — handles mp3, wav, m4a, ogg, flac, opus, webm via ffmpeg
  • Batch processing — transcribe entire directories with one call

Quick Start

git clone https://github.com/fxckcode/whisper-stt-mcp.git
cd whisper-stt-mcp
uv venv
uv pip install -e .

With Hermes Agent

Add to ~/.hermes/config.yaml:

mcp_servers:
  whisper-stt:
    command: "/path/to/whisper-stt-mcp/.venv/bin/python"
    args: ["-m", "whisper_stt_mcp"]

Tools appear as mcp_whisper_stt_transcribe, mcp_whisper_stt_list_models, etc.

With any MCP client

{
  "mcpServers": {
    "whisper-stt": {
      "command": "/path/to/whisper-stt-mcp/.venv/bin/python",
      "args": ["-m", "whisper_stt_mcp"]
    }
  }
}

Project Structure

whisper-stt-mcp/
├── pyproject.toml
├── src/whisper_stt_mcp/
│   ├── __init__.py
│   ├── __main__.py       # Entry point
│   ├── server.py         # MCP tools
│   ├── transcriber.py    # faster-whisper wrapper
│   ├── audio.py          # ffmpeg conversion
│   ├── models.py         # Model cache management
│   └── vad.py            # Voice Activity Detection
├── tests/
│   └── test_smoke.py
└── hermes-skill/
    └── SKILL.md

The project is MIT licensed and open on GitHub.

Share
D
Diego Duran
@fxckcode

Backend engineer who ships agentic CLI tooling. NestJS, Go, Django, AWS.

whisper-stt-mcp — Transcripción de Voz Local vía MCP

Necesito transcribir audio con frecuencia — notas de voz, grabaciones de reuniones, fragmentos de podcasts. Enviar audio a la API de OpenAI Whisper significa pagar por minuto y confiar a un tercero contenido potencialmente sensible. Así que construí un servidor MCP que corre 100% local usando faster-whisper (CTranslate2) con aceleración NVIDIA GPU.

whisper-stt-mcp es un servidor MCP con 4 herramientas para transcripción de audio. Se integra perfectamente con Hermes Agent, Claude Desktop, Cursor o cualquier cliente compatible con MCP.


Arquitectura

Audio (mp3/wav/m4a/ogg/flac/opus/webm)

  conversión ffmpeg        ← manejo automático de formatos

  faster-whisper (GPU)     ← CTranslate2 con cuantización INT8

  VAD (silero-vad)         ← filtra silencios, mejora precisión

  Salida JSON              ← texto + timestamps por palabra

Tu audio se procesa completamente en tu máquina. Nunca sale ningún dato.


Características Clave

4 Herramientas MCP

HerramientaDescripción
transcribeTranscribe un solo archivo con opciones completas
list_modelsLista modelos Whisper disponibles y descargados
download_modelDescarga un modelo Whisper (tiny/base/small/medium/large-v3)
transcribe_batchTranscribe un directorio entero de audios

Aceleración GPU

NVIDIA CUDA con cuantización INT8 permite que incluso large-v3 funcione en ~2.5 GB de VRAM:

ModeloVRAMVelocidad (RTX 3050)Calidad
tiny~0.5 GB20x tiempo realBaja
base~0.8 GB15x tiempo realRegular
small~1.5 GB10x tiempo realBuena
medium~2.0 GB6x tiempo realRecomendado
large-v3 (INT8)~2.5 GB4x tiempo realMejor

Características Inteligentes

  • Voice Activity Detection — silero-vad filtra silencios antes de transcribir
  • Detección automática de idioma — 99+ idiomas soportados
  • Timestamps por palabra — tiempo exacto para cada palabra
  • Conversión automática de formatos — mp3, wav, m4a, ogg, flac, opus, webm via ffmpeg
  • Procesamiento por lotes — transcribe directorios enteros de una sola llamada

Inicio Rápido

git clone https://github.com/fxckcode/whisper-stt-mcp.git
cd whisper-stt-mcp
uv venv
uv pip install -e .

Con Hermes Agent

Agrega a ~/.hermes/config.yaml:

mcp_servers:
  whisper-stt:
    command: "/path/to/whisper-stt-mcp/.venv/bin/python"
    args: ["-m", "whisper_stt_mcp"]

Las herramientas aparecen como mcp_whisper_stt_transcribe, mcp_whisper_stt_list_models, etc.

Con cualquier cliente MCP

{
  "mcpServers": {
    "whisper-stt": {
      "command": "/path/to/whisper-stt-mcp/.venv/bin/python",
      "args": ["-m", "whisper_stt_mcp"]
    }
  }
}

Estructura del Proyecto

whisper-stt-mcp/
├── pyproject.toml
├── src/whisper_stt_mcp/
│   ├── __init__.py
│   ├── __main__.py       # Punto de entrada
│   ├── server.py         # Herramientas MCP
│   ├── transcriber.py    # Wrapper de faster-whisper
│   ├── audio.py          # Conversión ffmpeg
│   ├── models.py         # Gestión de caché de modelos
│   └── vad.py            # Voice Activity Detection
├── tests/
│   └── test_smoke.py
└── hermes-skill/
    └── SKILL.md

El proyecto tiene licencia MIT y está abierto en GitHub.

Compartir
D
Diego Duran
@fxckcode

Ingeniero backend que construye herramientas CLI agentivas. NestJS, Go, Django, AWS.