whisper-telegram-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WHISPER_MODEL | No | Whisper model size to use for local inference (e.g., tiny, base, small, medium, large-v3, turbo). | base |
| OPENAI_API_KEY | No | OpenAI API key. Required if using the 'openai' backend. | |
| WHISPER_BACKEND | No | Transcription backend to use: 'auto' (tries local first, falls back to OpenAI), 'local' (faster-whisper), or 'openai' (Whisper API). | auto |
| WHISPER_LANGUAGE | No | ISO-639-1 language code (e.g., 'en'). Defaults to auto-detection if not specified. | |
| TELEGRAM_BOT_TOKEN | No | Telegram Bot API token. Required for the transcribe_telegram_voice tool. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| transcribe_audioA | Transcribe an audio file to text using Whisper. Supports OGG (Telegram voice), WAV, MP3, FLAC, and most common audio formats. Args: file_path: Absolute path to the audio file to transcribe. language: Optional ISO-639-1 language code (e.g. 'en', 'fr'). None = auto-detect. word_timestamps: If True, include word-level timestamps in segments. Returns: dict with: text, language, language_probability, duration, segments, backend, success, error |
| transcribe_telegram_voiceA | Download and transcribe a Telegram voice message. Downloads the voice message from Telegram, transcribes it, then deletes the temp file. Args: file_id: The file_id from a Telegram voice message (from the Message object). bot_token: Telegram bot token. Falls back to TELEGRAM_BOT_TOKEN env var. language: Optional ISO-639-1 language code. None = auto-detect. word_timestamps: Include word-level timestamps in segments. Returns: Same dict structure as transcribe_audio. |
| list_modelsB | List available Whisper model sizes with performance characteristics. Configure the active model via the WHISPER_MODEL environment variable. Default is 'base' -- a good balance of speed and accuracy for voice messages. |
| check_backendsA | Check which transcription backends are available and configured. Call this first to verify your setup before transcribing. |
| speak_textA | Convert text to speech and return an OGG/Opus audio file path. Plays as a native voice note in Telegram when sent as an attachment. TTS backends (in priority order):
Configure via TTS_BACKEND env var: "auto" | "kokoro" | "openai" | "macos" Args: text: Text to synthesise. voice: Voice name. Kokoro voices: af_sky, af_bella, af_sarah, am_adam, am_michael, bf_emma, bm_george, bm_lewis. OpenAI voices: alloy, echo, fable, onyx, nova, shimmer. Configure default via TTS_VOICE env var. output_path: Optional absolute path for the output .ogg file. Returns: dict with: file_path (absolute .ogg path), backend, voice, success, error |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: check_backends verifies setup, list_models shows model options, speak_text converts text to speech, transcribe_audio processes local audio files, and transcribe_telegram_voice handles Telegram-specific downloads. The descriptions reinforce these distinct roles, making misselection unlikely.
Tools follow a consistent snake_case pattern throughout (e.g., check_backends, list_models, speak_text). However, there is a minor deviation in verb style: 'check' and 'list' are informational, while 'speak' and 'transcribe' are action-oriented, but this is reasonable given their distinct functions. The naming remains highly readable and predictable.
With 5 tools, the set is well-scoped for a server focused on Whisper transcription and Telegram integration. Each tool earns its place by covering essential aspects: setup verification, model configuration, text-to-speech, audio transcription, and Telegram-specific handling. This count avoids bloat while providing complete functionality.
The tool surface offers complete coverage for the domain of audio transcription and synthesis with Telegram integration. It includes setup checks (check_backends), configuration (list_models), core operations (speak_text, transcribe_audio), and platform-specific handling (transcribe_telegram_voice). There are no obvious gaps; agents can perform end-to-end workflows without dead ends.