whisper-mcp
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-mcpTranscribe samples/meeting.mp4 and generate an SRT file."
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
Local Whisper transcription, exposed as
an MCP server — so any MCP client (Claude
Desktop, Claude Code, etc.) can transcribe audio/video files, generate .srt
subtitles, and burn captions into a video, directly as tool calls. No cloud
API, no manual "run a script and go read the output file" step.
Built on faster-whisper for
inference and ffmpeg for audio extraction / caption burn-in.

Architecture
MCP client (Claude, etc.) --stdio--> whisper-mcp server --> faster-whisper (Whisper model)
\--> ffmpeg (audio extract / burn-in)The server keeps loaded Whisper models cached in memory for the life of the process, so repeated tool calls in one session don't re-pay model load time.
Related MCP server: Whisper MCP Server
Tools
Tool | Description |
| Returns detected language + timestamped segments as structured data. |
| Transcribes and writes a |
| Burns an |
Requirements
Python 3.10+
ffmpegonPATHOptional: a CUDA-capable GPU (falls back to CPU automatically)
Install & run
pip install -e ".[dev]"
whisper-mcpOr, zero-install:
uvx --from git+https://github.com/Chain-P/whisper-mcp whisper-mcpConfigure in an MCP client
Add to your client's MCP config (e.g. Claude Code's .mcp.json or Claude
Desktop's claude_desktop_config.json):
{
"mcpServers": {
"whisper": {
"command": "whisper-mcp"
}
}
}Then ask the client to transcribe a file, e.g. "transcribe
samples/podcast_clip.mp4 and give me the SRT."
Development
pip install -e ".[dev]"
ruff check .
pytest # unit tests only
pytest -m integration # + real transcription against a sample fileRoadmap
Speaker diarization (
pyannote.audio/whisperx) for multi-speaker labeling in the SRT output.MCP progress notifications for long transcriptions.
A
resourceexposing recent transcript history.
License
MIT
Available Tools
3 toolsburn_captionsA
Burn an existing .srt subtitle file into a video, producing a new video file.
Args: video_path: Path to the source video. srt_path: Path to the .srt subtitle file to burn in. output_path: Where to write the captioned video. Defaults to ".captioned".
| Name | Required | Description | Default |
|---|---|---|---|
| srt_path | Yes | ||
| video_path | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It clearly states that a new video file is produced, implying the source and subtitle files are not modified, and gives the meaningful output default. However, it does not disclose failure behaviors, overwrite handling, or other side effects.
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 compact and front-loaded: the first sentence captures the entire operation, and the Args block provides parameter details without extra filler. Every sentence earns its place.
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?
For a straightforward three-parameter operation, the description covers the core behavior, parameter semantics, and output default. It could mention side effects or exceptions, but nothing essential is missing for correct 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?
Schema coverage is 0%, but the description documents all three parameters with clear definitions and even notes the default behavior for output_path. This fully compensates for the schema's bare string types.
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?
States a specific verb ('Burn'), a specific input resource (existing .srt subtitle file), and a clear outcome (producing a new video file). This clearly differentiates from siblings 'transcribe' and 'generate_srt', which handle audio-to-text and subtitle creation respectively.
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?
Implicitly indicates the tool is for existing .srt files by saying 'existing', and the sibling names make the contrast clear: use generate_srt to create subtitles, burn_captions to overlay them. It does not explicitly exclude alternatives, but the context is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_srtA
Transcribe a file and write an .srt subtitle file next to it (or at output_path).
Args: path: Path to the input audio/video file. output_path: Where to write the .srt file. Defaults to the input path with a .srt suffix. model_size: Whisper model size (tiny/base/small/medium/large-v3). device: Inference device: "auto", "cpu", or "cuda".
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| device | No | auto | |
| model_size | No | small | |
| output_path | No |
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 of disclosing behavior. It does state the primary side effect (writing an .srt file) and default output location, but it omits other important behaviors: whether existing files are overwritten, whether models are downloaded over the network, runtime expectations, dependencies like ffmpeg, and what the tool returns (if anything). These are significant gaps for an unannotated tool.
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 compact and well-structured: a single-sentence summary followed by a tight Args list. Every line provides useful information, and the main purpose is front-loaded. There is no redundancy or filler.
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?
All parameters are documented, the primary output (the .srt file) and its location are stated, and defaults are clear. Minor gaps remain: no mention of return value, overwrite behavior, or runtime prerequisites, but for a straightforward file-generation tool these are relatively minor. The absence of usage guidance relative to siblings is not critical for invoking the tool correctly.
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 0%, but the description's Args section fully compensates. It explains each of the four parameters in plain language, lists allowed values for model_size and device, and clarifies the default behavior of output_path. This adds substantial meaning beyond the bare input 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?
The description opens with a specific action and result: 'Transcribe a file and write an .srt subtitle file next to it.' This clearly identifies the tool's purpose and the resource it produces. It does not explicitly name sibling tools, but the .srt output distinguishes it from transcribe and burn_captions.
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?
There is no guidance on when to use generate_srt instead of the sibling tools transcribe or burn_captions. The only context is implied by the description itself: if an .srt file is needed, this tool does that. No explicit conditions, exclusions, or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribeA
Transcribe an audio or video file and return language info + timestamped segments.
Args: path: Path to the input audio/video file. model_size: Whisper model size (tiny/base/small/medium/large-v3). device: Inference device: "auto", "cpu", or "cuda".
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| device | No | auto | |
| model_size | No | small |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the core behavior—transcribing an input media file and returning language info plus timestamped segments—but does not mention possible side effects like model downloads, runtime/GPU cost, or the exact structure of the returned segments. This is adequate but not fully transparent for an ML-heavy 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?
The description is compact, front-loaded, and free of filler: one clear purpose sentence followed by a focused Args block. It earns its place, though a short return-shape example would make it even stronger.
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 there is no output schema and no annotations, the description provides enough to make a basic call (path is required, model/device optional) but leaves ambiguity about the exact shape of 'language info' and 'timestamped segments.' It also does not explain how the output feeds into sibling tools generate_srt or burn_captions, which matters for an agent selecting downstream actions.
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 0%, so the Args section compensates well: it defines path as the input file, enumerates Whisper model sizes (tiny/base/small/medium/large-v3), and lists device choices (auto/cpu/cuda). This adds real meaning beyond the schema's bare titles and defaults, though it does not go into path format or file-type restrictions.
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 opens with a specific verb and resource: 'Transcribe an audio or video file' and clearly states the output: 'return language info + timestamped segments.' It does not explicitly contrast with sibling tools generate_srt or burn_captions, but the action and output type largely make the tool's role clear.
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 when to use the tool: when a raw transcription with language metadata and timestamped segments is needed, rather than SRT generation or caption burning. However, it does not explicitly state when to prefer this tool over the sibling tools, nor does it provide exclusions or workflow positioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
burn_captions - First observed
generate_srt - First observed
transcribe
TDQS
transcribe and generate_srt both involve transcription, but their output types are clearly different: one returns structured segments while the other writes an SRT file. burn_captions is completely distinct, focusing on video rendering rather than audio processing.
generate_srt and burn_captions follow a clear verb_noun pattern. transcribe is a bare verb, which is a minor deviation, but it is still short, predictable, and fits the domain.
Three tools is well-scoped for a whisper-focused server. Each tool covers a meaningful step in the transcription/subtitling workflow without unnecessary redundancy.
The core workflow of transcribing audio, generating subtitles, and burning them into video is fully covered. Minor gaps like explicit plain-text transcript export or translation are absent, but they can be worked around from the timestamped segments.
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
OCR, transcription, file extraction, and image generation for AI agents via MCP.
- RendobarOAuthcom.rendobar
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
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-
- AlicenseAqualityFmaintenanceProvides local audio transcription using whisper.cpp, supporting multiple models and audio formats. Enables transcription of audio files via MCP tools with optional timestamps.31353MIT
- FlicenseAqualityDmaintenanceEnables local media processing (video/audio) using FFmpeg and FFprobe, allowing frame extraction, audio conversion, and metadata retrieval through natural language.5-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query local video timelines by extracting speech, frame captions, and on-screen text into a SQLite store, exposing search and retrieval tools via MCP.PolyForm Noncommercial 1.0.0
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/Chain-P/whisper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server