Whisper MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Whisper MCP Servertranscribe ~/Desktop/meeting.mp3 with timestamps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Whisper MCP Server
A lightweight MCP (Model Context Protocol) server for local audio transcription using whisper.cpp. There are several Whisper MCP implementations out there. This one is minimal and pairs with apple-voice-memo-mcp for a complete voice memo workflow.
Features
Local transcription - All processing happens on your machine
Multiple models - Choose from tiny, base, small, medium, or large models
Various formats - Supports wav, mp3, m4a, and other audio formats
Timestamps - Get transcriptions with or without timestamps
Related MCP server: whisper-telegram-mcp
Requirements
macOS (tested on Apple Silicon)
Node.js 18+
whisper-cpp:
brew install whisper-cppffmpeg:
brew install ffmpeg
Installation
npm install -g whisper-mcpOr run directly:
npx whisper-mcpConfiguration
Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"whisper-mcp": {
"command": "npx",
"args": ["-y", "whisper-mcp"]
}
}
}After editing, restart Claude Desktop.
Claude Code (CLI)
For Claude Code, add to your project's .mcp.json file:
{
"mcpServers": {
"whisper-mcp": {
"command": "npx",
"args": ["-y", "whisper-mcp"]
}
}
}Or for user-wide configuration, add to ~/.claude/settings.json:
{
"mcpServers": {
"whisper-mcp": {
"command": "npx",
"args": ["-y", "whisper-mcp"]
}
}
}Tip: Use /mcp in Claude Code to verify the server is connected.
Local Development Setup
If running from source instead of npm:
{
"mcpServers": {
"whisper-mcp": {
"command": "node",
"args": ["/path/to/whisper-mcp/dist/index.js"]
}
}
}With Apple Voice Memos MCP
For a complete voice memo workflow, use alongside apple-voice-memo-mcp:
{
"mcpServers": {
"apple-voice-memo-mcp": {
"command": "npx",
"args": ["-y", "apple-voice-memo-mcp"]
},
"whisper-mcp": {
"command": "npx",
"args": ["-y", "whisper-mcp"]
}
}
}MCP Tools
transcribe_audio
Transcribe an audio file using Whisper.
Parameters:
file_path(required): Absolute path to the audio filemodel(optional): Model to use (tiny.en, base.en, small.en, medium.en, large). Default: base.enlanguage(optional): Language code. Default: enoutput_format(optional): text, timestamps, or json. Default: text
Example:
{
"file_path": "/path/to/audio.m4a",
"model": "medium.en",
"output_format": "timestamps"
}list_whisper_models
List available Whisper models and their download status.
Returns:
{
"models": [
{
"name": "base.en",
"size": "142 MB",
"downloaded": true,
"path": "/Users/you/.whisper/ggml-base.en.bin"
}
]
}download_whisper_model
Download a Whisper model for local use.
Parameters:
model(required): Model to download (tiny.en, base.en, small.en, medium.en, large)
Models
Model | Size | Speed | Quality |
tiny.en | 75 MB | Fastest | Basic |
base.en | 142 MB | Fast | Good |
small.en | 466 MB | Medium | Better |
medium.en | 1.5 GB | Slow | Great |
large | 2.9 GB | Slowest | Best |
Models are stored in ~/.whisper/.
Workflow Example
List your voice memos:
list_voice_memosGet audio path:
get_audiowith memo IDTranscribe:
transcribe_audiowith the file pathSave to your vault
Development
# Clone and install
git clone https://github.com/jwulff/whisper-mcp.git
cd whisper-mcp
npm install
# Build
npm run build
# Test with MCP inspector
npm run inspectorLicense
MIT
Available Tools
3 toolsdownload_whisper_modelA
Download a Whisper model for local transcription. Models are stored in ~/.whisper/
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model to download |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions storage location but lacks details on idempotency, overwrite behavior, download time, or success/failure signals. Insufficient for a download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. Primary action and key detail (storage path) front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with one parameter and no output schema. Description lacks return behavior, error handling, and whether download is conditional on existing files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with enum description for 'model' parameter. Description adds storage context but no additional parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action (download), resource (Whisper model), purpose (local transcription), and storage location (~/.whisper/). Distinguishes from siblings: list_whisper_models and transcribe_audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs siblings. Implied that download is prerequisite for transcribe_audio, but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_whisper_modelsA
List available Whisper models and their download status. Shows which models are downloaded locally.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the tool as a read-only listing operation with no mention of side effects or permissions. Adequate but minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and result, with no wasted words. It efficiently conveys the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and a simple listing operation, the description is complete. It clearly states what the tool does and what information it provides, sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so baseline is 4. The description does not need to add parameter meaning, and it correctly focuses on the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'available Whisper models', and specifies that it shows download status. This distinguishes it from sibling tools download_whisper_model and transcribe_audio.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (listing models) but does not explicitly state when to use it versus alternatives. No when-not-to-use or exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_audioA
Transcribe an audio file using Whisper. Supports various audio formats (wav, mp3, m4a, etc.). Returns the transcribed text.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute path to the audio file to transcribe | |
| model | No | Whisper model to use (tiny.en, base.en, small.en, medium.en, large). Default: base.en | |
| language | No | Language code (e.g., en, es, fr). Default: en | |
| output_format | No | Output format: text (plain text), timestamps (with timestamps), json (structured). Default: text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions format support but lacks details on size limits, processing time, model accuracy trade-offs, and output behavior per output_format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose, no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return values thoroughly. It minimally states 'returns the transcribed text' but doesn't clarify how output varies by output_format (text, timestamps, json), nor does it address potential errors or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline 3. The description adds value by listing supported audio formats (wav, mp3, m4a, etc.) which are not in the schema, providing useful context beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'transcribe' and the resource 'audio file', and it distinguishes itself from sibling tools (download_whisper_model, list_whisper_models) which are about model management, not transcription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives or mention prerequisites like needing a downloaded model. Usage is implied but not guided with exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: downloading models, listing models, and transcribing audio. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern in snake_case (download_whisper_model, list_whisper_models, transcribe_audio).
With 3 tools, the server is well-scoped for its purpose—managing models and transcribing audio. The count is appropriate and avoids being too thin or heavy.
The tool set covers the core workflow (model download, listing, transcription) but lacks model deletion or advanced configuration. Still, it is sufficient for basic tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
AI voice generation: text-to-speech and voice cloning from any MCP client.
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables high-quality transcription and subtitle generation from local media files or URLs using Faster Whisper on local hardware. It supports automatic language detection and integration with MCP clients for seamless speech-to-text workflows.3
- AlicenseAqualityDmaintenanceAn MCP server that enables transcribing local audio files and Telegram voice messages using OpenAI's Whisper via local inference or cloud API. It supports multiple audio formats, automatic language detection, and optional word-level timestamps for AI-powered audio analysis.51MIT
- AlicenseAqualityAmaintenanceMCP server for audio transcription using local faster-whisper or OpenAI Whisper API, enabling multilingual transcription with optional GPT post-processing.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for audio transcription with speaker diarization. Transcribes MP3/WAV files using Faster-Whisper and pyannote.audio, outputs markdown with speaker labels, timestamps, summaries, and action items.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jwulff/whisper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server