mini_whisper_mcp
Provides audio transcription capabilities using OpenAI Whisper models, supporting various model sizes and audio formats.
Click on "Deploy 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., "@mini_whisper_mcptranscribe this audio 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.
mini-whisper-mcp
MCP server for audio transcription using OpenAI Whisper.
Requirements
Python 3.11+
ffmpeg(apt install ffmpeg/brew install ffmpeg)
Related MCP server: whisper-telegram-mcp
Install
uv syncRun
stdio (for local agents)
uv run python -m mini_whisper_mcp --transport stdioHTTP
uv run python -m mini_whisper_mcp --transport streamable-http --host 0.0.0.0 --port 8000Docker
docker build -t mini-whisper-mcp .
docker run -p 8000:8000 mini-whisper-mcpDocker Compose
Create a docker-compose.yml alongside your calling agent:
services:
mini-whisper-mcp:
image: mini-whisper-mcp
build: ./mini-whisper-mcp # path to this repo
ports:
- "8000:8000"
environment:
MCP_TRANSPORT: streamable-http
MCP_HOST: 0.0.0.0
MCP_PORT: "8000"
restart: unless-stopped
your-agent:
build: ./your-agent
environment:
WHISPER_MCP_URL: http://mini-whisper-mcp:8000/mcp
depends_on:
- mini-whisper-mcpdocker compose upThe agent connects to the MCP server at http://mini-whisper-mcp:8000/mcp using the service name as hostname.
Configuration
Env var | Default | Description |
|
|
|
|
| Host for HTTP mode |
|
| Port for HTTP mode |
MCP Tools
health_check
Basic server health check. Returns "ok".
transcribe
Param | Type | Default | Description |
| string | — | Base64-encoded audio file content |
| string |
|
|
| string |
| File extension hint: |
Models are cached in memory after first load. Larger models are more accurate but slower.
Usage example (calling agent)
import base64
with open("audio.mp3", "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
result = await mcp_client.call_tool("transcribe", {
"audio_b64": audio_b64,
"model": "base",
"suffix": ".mp3",
})Testing with MCP Inspector
npx @modelcontextprotocol/inspector uv run python -m mini_whisper_mcp --transport stdioFor HTTP, start the server first then connect Inspector to http://localhost:8000/mcp.
Claude Desktop config (stdio)
{
"mcpServers": {
"whisper": {
"command": "uv",
"args": ["--directory", "/path/to/mini-whisper-mcp", "run", "python", "-m", "mini_whisper_mcp", "--transport", "stdio"]
}
}
}Project structure
mini_whisper_mcp/
├── __main__.py # CLI entrypoint (--transport, --host, --port)
├── server.py # MCP tools
└── models.py # Whisper model loader with CUDA fallbackAvailable Tools
1 tooltranscribeA
Transcribe a base64-encoded audio file using Whisper.
Args: audio_b64: Base64-encoded audio file content model: Whisper model to use: tiny, base, small, medium, large (default: base) suffix: File extension hint for the audio format, e.g. .mp3, .wav, .m4a (default: .mp3)
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | base | |
| suffix | No | .mp3 | |
| audio_b64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions the use of Whisper and parameter details, but does not disclose potential side effects, latency, output format specifics (though an output schema exists), or error conditions. It is adequate but lacks deeper behavioral context. No contradictions with annotations.
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 front-loaded with a one-line summary, followed by a neatly formatted 'Args' list. Every sentence earns its place, with no irrelevant information. The structure is easy to parse and appropriately sized for the tool's complexity.
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 simple transcription tool, the description covers the essential details: what it does, input requirements, and parameter semantics. Since an output schema is present, return values need not be explained. Minor gaps exist around limitations (e.g., file size, accuracy), but overall it is sufficiently complete for an agent to use 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?
The schema has no descriptions (0% coverage), so the description fully compensates by providing detailed explanations for all three parameters. It lists accepted values for 'model' (tiny, base, small, medium, large) with a default, and provides examples for 'suffix' (.mp3, .wav, .m4a) with a default. This adds significant meaning beyond the 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 clearly states the tool's function: 'Transcribe a base64-encoded audio file using Whisper.' The verb 'transcribe' is specific, and the resource (audio file) and method (Whisper) are identified. Although no siblings are provided, the purpose is unambiguous.
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 by specifying the input format (base64-encoded audio) and the Whisper model, giving an agent enough context to invoke it for transcription tasks. However, it does not explicitly mention when not to use it or compare to alternatives, as there are no siblings. The constraints are clear but not exhaustive.
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.
1 tool update
v0.1.0- First observed
transcribe
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity. The 'transcribe' tool has a clear and specific purpose for audio transcription.
The single tool name 'transcribe' uses a simple verb form, and with no other tools to compare against, naming is consistent by default.
A single tool feels thin for many servers, but for a dedicated 'mini Whisper' transcription service, it is a reasonable scope. It borders on minimal but is not excessive.
The tool covers the essential transcription functionality completely, accepting audio input and optional model parameters. There are no obvious missing operations for this narrow domain.
Maintenance
Related MCP Connectors
MCP server for Speech-to-Text
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
An MCP server that provides tools to discover and retrieve podcast episodes transcripts.
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
Related MCP Servers
- AlicenseBqualityDmaintenanceA MCP server that enables transcription of audio files using OpenAI's Speech-to-Text API, with support for multiple languages and file saving options.15 npm10MIT
- 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
- AlicenseAqualityCmaintenanceMCP server for audio transcription using OpenRouter models, supporting verbatim, cleaned, and custom transcription modes.28 npm1MIT