whisper-telegram-mcp
whisper-telegram-mcp
Transcribe y habla — voz bidireccional para Claude a través de Telegram

Un servidor MCP que dota a Claude de capacidades de voz bidireccional a través de Telegram: transcribe mensajes de voz entrantes con Whisper y responde con voz sintetizada. Funciona con Claude Desktop, Claude Code y cualquier cliente compatible con MCP.
Qué hace
Transcribe archivos de audio locales -- OGG, WAV, MP3, FLAC y más
Transcribe mensajes de voz de Telegram -- pasa un
file_idy obtén el texto de vueltaHabla texto como notas de voz -- sintetiza voz y envíala de vuelta como OGG (se reproduce como una nota de voz en Telegram)
Dos motores de transcripción -- faster-whisper local (gratuito, privado) o API de Whisper de OpenAI (nube)
Modo automático -- intenta primero localmente, y recurre a OpenAI si falla
Detección de idioma -- automática o especificando un código ISO-639-1
Marcas de tiempo a nivel de palabra -- temporización precisa opcional
Requisitos previos
Característica | Requisito |
Transcripción (local) | Ninguno — faster-whisper incluido mediante extras |
Transcripción (nube) | Variable de entorno |
Respuestas de voz — Kokoro (mejor calidad) | Docker — ejecuta |
Respuestas de voz — OpenAI TTS (alternativa) | Variable de entorno |
Respuestas de voz — macOS say (último recurso) | Solo Mac, sin configuración |
Kokoro requiere Docker. Si Docker no está ejecutándose, las respuestas de voz recurren automáticamente a OpenAI TTS o a
sayde macOS.
Inicio rápido
Configuración en 30 segundos con Claude Code
La forma más rápida de empezar: solo dile a Claude Code que lo configure por ti:
Añádelo a tu
.mcp.json(Claude Code) oclaude_desktop_config.json(Claude Desktop):
{
"mcpServers": {
"whisper-telegram-mcp": {
"command": "uvx",
"args": ["whisper-telegram-mcp"],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here"
}
}
}
}Reinicia Claude y di: "Set up my Telegram bot for voice transcription" — Claude te guiará a través de la creación del bot con BotFather y la configuración de todo.
Un comando con uvx
uvx whisper-telegram-mcpNo requiere instalación -- uvx se encarga de todo.
O instálalo con pip
pip install "whisper-telegram-mcp[all]"
whisper-telegram-mcpConfiguración del bot de Telegram
Abre Telegram y envía un mensaje a @BotFather
Envía
/newboty sigue las instrucciones para crear un botCopia el token (se ve como
1234567890:ABCdef...)Añade
TELEGRAM_BOT_TOKENa la configuración de entorno de tu MCP (ver abajo)Envía un mensaje a tu bot para empezar — solo responderá a usuarios aprobados
El plugin de Telegram para Claude gestiona el control de acceso. Consulta su documentación para la configuración de emparejamiento/lista de permitidos.
Integración
Claude Desktop
Añádelo a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"whisper-telegram-mcp": {
"command": "uvx",
"args": ["whisper-telegram-mcp"],
"env": {
"WHISPER_MODEL": "base",
"WHISPER_BACKEND": "auto",
"TELEGRAM_BOT_TOKEN": "your-bot-token-here"
}
}
}
}Claude Code
Añádelo al .mcp.json de tu proyecto:
{
"mcpServers": {
"whisper-telegram-mcp": {
"command": "uvx",
"args": ["whisper-telegram-mcp"],
"env": {
"WHISPER_MODEL": "base",
"WHISPER_BACKEND": "auto",
"TELEGRAM_BOT_TOKEN": "your-bot-token-here"
}
}
}
}Herramientas
Herramienta | Descripción |
| Transcribe un archivo de audio local (OGG, WAV, MP3, etc.) a texto |
| Descarga y transcribe un mensaje de voz de Telegram mediante |
| Convierte texto a voz → archivo OGG/Opus (se reproduce como nota de voz en Telegram) |
| Lista los tamaños de modelo de Whisper disponibles con información de velocidad/precisión |
| Comprueba qué motores (local/OpenAI) están disponibles y configurados |
transcribe_audio
file_path: str # Absolute path to audio file
language: str | None # ISO-639-1 code (e.g. "en"), None = auto-detect
word_timestamps: bool # Include word-level timestamps (default: false)transcribe_telegram_voice
file_id: str # Telegram voice message file_id
bot_token: str | None # Bot token (falls back to TELEGRAM_BOT_TOKEN env var)
language: str | None # ISO-639-1 code, None = auto-detect
word_timestamps: bool # Include word-level timestamps (default: false)speak_text
Convierte texto a un archivo de audio OGG/Opus. Selecciona automáticamente el mejor motor TTS disponible.
text: str # Text to synthesise
voice: str # Voice name (default: "af_sky")
output_path: str|None # Optional path for output .ogg fileMotores TTS (en orden de prioridad):
Motor | Coste | Calidad | Configuración |
Kokoro (local) | Gratis | Natural, alta calidad | Iniciar manualmente (ver abajo) |
OpenAI TTS (nube) | ~$0.015/1k caracteres | Alta calidad | Variable de entorno |
macOS say (alternativa) | Gratis | Robótica | Solo Mac, sin configuración |
En modo auto (predeterminado), el servidor intenta primero Kokoro, luego OpenAI y finalmente say de macOS. Configúralo con la variable de entorno TTS_BACKEND.
Iniciando Kokoro localmente:
Kokoro FastAPI no está en PyPI — inícialo antes de ejecutar el servidor MCP:
# Docker (simplest, recommended)
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
# Apple Silicon (GPU-accelerated)
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu-mac:latest
# From source
git clone https://github.com/remsky/Kokoro-FastAPI && cd Kokoro-FastAPI && ./start-cpu.shUna vez en ejecución, el servidor MCP lo detecta automáticamente en http://127.0.0.1:8880/v1. Sobrescríbelo con la variable de entorno KOKORO_BASE_URL.
Voces de Kokoro (primarias):
Voz | Acento | Estilo |
| EE. UU. | Femenina (predeterminada) |
| EE. UU. | Femenina |
| EE. UU. | Femenina |
| EE. UU. | Femenina |
| EE. UU. | Masculina |
| EE. UU. | Masculina |
| Reino Unido | Femenina |
| Reino Unido | Femenina |
| Reino Unido | Masculina |
| Reino Unido | Masculina |
Voces de OpenAI (alternativas):
Voz | Estilo |
| Neutral |
| Masculina |
| Narrativo |
| Masculina grave |
| Femenina |
| Femenina suave |
Los nombres de las voces de Kokoro se asignan automáticamente al equivalente más cercano de OpenAI o macOS cuando se recurre a ellos.
Retorno:
{
"file_path": "/tmp/tmpXXX.ogg",
"size_bytes": 16555,
"backend": "kokoro",
"voice": "af_sky",
"success": true,
"error": null
}Envía la file_path devuelta como un archivo adjunto de Telegram y aparecerá como una nota de voz nativa.
Formato de respuesta de transcripción
Todas las herramientas de transcripción devuelven:
{
"text": "Hello, this is a voice message.",
"language": "en",
"language_probability": 0.98,
"duration": 3.5,
"segments": [
{"start": 0.0, "end": 3.5, "text": "Hello, this is a voice message."}
],
"backend": "local",
"success": true,
"error": null
}Configuración
Toda la configuración se realiza mediante variables de entorno:
Variable | Predeterminado | Descripción |
|
|
|
|
| Tamaño del modelo Whisper (ver abajo) |
| -- | Requerido para transcripción |
| -- | Requerido para |
| auto-detect | Código de idioma ISO-639-1 |
|
|
|
|
| Voz predeterminada para |
|
| URL base de Kokoro FastAPI |
Cómo funciona
MCP Client (Claude)
|
[MCP stdio]
|
whisper-telegram-mcp
/ | \
/ | \
transcribe_audio transcribe_ speak_text
telegram_voice |
| | auto_tts()
| [Bot API DL] / | \
+--------+------+ Kokoro OpenAI macOS
| (local) (cloud) (say)
auto_transcribe() |
/ \ .ogg file
LocalBackend OpenAIBackend
(faster-whisper) (Whisper API)Claude envía una llamada de herramienta a través de MCP (transporte stdio)
Para mensajes de voz de Telegram, el archivo se descarga a través de la API del Bot
auto_transcribe()elige el mejor motor de transcripción disponibleauto_tts()elige el mejor motor TTS disponible (Kokoro -> OpenAI -> macOS)Los resultados se devuelven como JSON estructurado
Local vs OpenAI
Local (faster-whisper) | API de OpenAI | |
Coste | Gratis | $0.006/min |
Privacidad | Todos los datos permanecen en el dispositivo | Audio enviado a OpenAI |
Velocidad | ~1-10s dependiendo del modelo | ~1-3s |
Configuración | Automática (descarga el modelo en el primer uso) | Requiere |
Precisión | Excelente con | Excelente |
Sin conexión | Sí | No |
Tamaños de modelo
Modelo | Parámetros | Velocidad | Precisión | VRAM |
| 39M | Más rápido | Más baja | ~1GB |
| 74M | Rápido | Buena | ~1GB |
| 244M | Moderada | Mejor | ~2GB |
| 769M | Lenta | Alta | ~5GB |
| 1550M | Más lenta | Más alta | ~10GB |
| ~800M | Rápido | Alta | ~6GB |
Las variantes solo en inglés (tiny.en, base.en, small.en, medium.en) son ligeramente más precisas para el inglés.
Privacidad y datos
Motor local (faster-whisper): El audio permanece en tu dispositivo. Nada sale de tu máquina.
Motor OpenAI: El audio se envía a la API de OpenAI según su política de retención de datos
Archivos temporales: El audio descargado de Telegram se escribe en
/tmpy se elimina inmediatamente después de la transcripciónRegistros: Van solo a stderr — nunca se registra contenido de audio ni credenciales
Desarrollo
git clone https://github.com/abid-mahdi/whisper-telegram-mcp.git
cd whisper-telegram-mcp
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Run unit tests
pytest tests/ -v -m "not integration"
# Run integration tests (downloads ~150MB model on first run)
pytest tests/ -m integration -v
# Run with coverage
pytest tests/ --cov=src/whisper_telegram_mcp --cov-report=term-missingInspector MCP
uvx mcp dev src/whisper_telegram_mcp/server.pyContribución
Haz un fork del repositorio
Crea una rama de funcionalidad (
git checkout -b feat/amazing-feature)Ejecuta las pruebas (
pytest tests/ -v -m "not integration")Confirma con commits convencionales (
feat:,fix:,docs:, etc.)Abre una solicitud de extracción (pull request)
Licencia
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abid-mahdi/whisper-telegram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server