Skip to main content
Glama

Gemini Transcription MCP

An MCP server for audio-to-text transcription using Google's Gemini multimodal API.

npm version

Quick Start

claude mcp add gemini-transcription -s user \
  -e OPENROUTER_API_KEY=your-key \
  -- npx -y gemini-transcription-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gemini-transcription": {
      "command": "npx",
      "args": ["-y", "gemini-transcription-mcp"],
      "env": {
        "OPENROUTER_API_KEY": "your-key"
      }
    }
  }
}

MetaMCP

Add via the MetaMCP UI or import JSON:

{
  "mcpServers": {
    "gemini-transcription": {
      "command": "npx",
      "args": ["-y", "gemini-transcription-mcp"],
      "env": {
        "OPENROUTER_API_KEY": "your-key"
      },
      "description": "Audio transcription using Gemini models via OpenRouter"
    }
  }
}

Or fill in the Add Server form manually:

Field

Value

Command

npx

Arguments

-y gemini-transcription-mcp

Environment Variables

OPENROUTER_API_KEY=your-key

Remote Deployment (HTTP Transport)

For deployments that require HTTP transport:

# Using Docker (recommended for remote)
docker run -d \
  -p 3000:3000 \
  -e OPENROUTER_API_KEY=your-key \
  ghcr.io/danielrosehill/gemini-transcription-mcp

# Or run directly with HTTP transport
OPENROUTER_API_KEY=your-key npx gemini-transcription-mcp --http 3000

The server exposes:

  • http://host:3000/mcp - MCP endpoint (streamable HTTP)

  • http://host:3000/health - Health check

Related MCP server: whisper-telegram-mcp

Tools

Tool

Description

transcribe_audio

Lightly edited transcript (removes filler words, applies corrections)

transcribe_audio_raw

Verbatim transcript with no cleanup

transcribe_audio_vad

VAD preprocessing to strip silence before transcription

transcribe_audio_format

Transcribe and format as a document type (email, to-do list, etc.)

transcribe_audio_large

Compresses oversized files to Opus before transcribing

transcribe_audio_custom

Full control with your own prompt

transcribe_audio_devspec

Format as a development specification for AI coding agents

Input Methods

All tools accept audio via:

  • file_content: Base64-encoded audio

  • file_url: HTTP(S) URL to fetch

  • ssh_host + ssh_path: Pull via SCP (local deployment only)

Supported Formats

  • Native: MP3, WAV, OGG, FLAC, AAC, AIFF

  • Auto-converted: Opus, M4A, WebM, WMA, and others (converted to OGG/Opus)

Note: When manually converting audio, prefer MP3 over WAV. MP3 offers good compression with broad compatibility, while WAV files are unnecessarily large.

Configuration

Environment Variable

Description

OPENROUTER_API_KEY

Required. Your OpenRouter API key

OPENROUTER_MODEL

Optional. Model to use (default: Gemini Flash Lite)

TRANSCRIPT_OUTPUT_DIR

Optional. Auto-save location (default: ./transcripts). Set to empty string to disable.

MCP_TRANSPORT

Optional. Set to http for HTTP transport mode

MCP_PORT

Optional. Port for HTTP mode (default: 3000)

Deployment Options

Local (Claude Code, Claude Desktop)

Uses stdio transport. All features available including SSH file retrieval.

# Via npx (recommended)
npx gemini-transcription-mcp

# Or install globally
npm install -g gemini-transcription-mcp
gemini-transcription-mcp

Remote/Docker (MetaMCP, Aggregators)

Uses HTTP transport. Requires container or server with ffmpeg installed.

Docker Compose:

# docker-compose.yml
services:
  gemini-transcription:
    image: ghcr.io/danielrosehill/gemini-transcription-mcp
    ports:
      - "3000:3000"
    environment:
      - OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
# Create .env file with your API key
echo "OPENROUTER_API_KEY=your-key" > .env

# Start the service
docker compose up -d

Feature Availability by Deployment Type

Feature

Local (stdio)

Remote (HTTP)

Base64 audio input

Yes

Yes

URL audio input

Yes

Yes

SSH file retrieval

Yes

No*

Transcript auto-save

Yes

Container volume

VAD preprocessing

Yes

Yes

Format conversion

Yes

Yes

* SSH retrieval requires local access to SSH keys and network.

Requirements

When using Docker, ffmpeg is included in the image.

Building from Source

git clone https://github.com/danielrosehill/Gemini-Transcription-MCP.git
cd Gemini-Transcription-MCP
npm install
npm run build

# Run locally
OPENROUTER_API_KEY=your-key npm start

# Run with HTTP transport
OPENROUTER_API_KEY=your-key MCP_TRANSPORT=http npm start

# Build Docker image
docker build -t gemini-transcription-mcp .

License

MIT

Available Tools

6 tools
list_transcription_presetsA

Lists available transcription presets from the Text-Transformation-Prompt-Library. Each preset is categorized as either a "style" (modifies tone/voice without changing structure) or a "format" (restructures content into a specific document type). Use these with the transcribe_with_preset tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional text filter to search preset names (e.g. "email", "blog", "meeting")
categoryNoFilter by category: "style" for tone/voice presets, "format" for document structure presets. Omit for all.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It signals a read-only listing action through 'Lists available' and adds useful category semantics, but it does not explicitly confirm that no side effects occur or describe the shape of the returned preset entries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, with the core action front-loaded, followed by the category distinction and downstream usage guidance. Every sentence earns its place with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two optional parameters and no output schema, the description provides the essential context: what is listed, how presets are categorized, and how they are used with transcribe_with_preset. Explicit return-field details would be a nice addition, but the tool's straightforward nature makes the description sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters at 100% coverage, but the description adds richer meaning for the enum values: 'style' modifies tone/voice without changing structure, while 'format' restructures content into a specific document type. This goes beyond the schema's brief enum comments, though it adds no detail about the filter parameter's syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Lists') and a defined resource ('available transcription presets from the Text-Transformation-Prompt-Library'), then clarifies the two preset categories. This clearly differentiates it from the transcribe_* sibling tools, which perform audio transcription rather than preset listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use the listed presets with the transcribe_with_preset tool, establishing the expected workflow. It does not enumerate when-not-to-use or compare against each transcribe_* sibling, but the list-vs-transcribe distinction is clear from the tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audioA

Transcribes an audio file using Gemini via OpenRouter. Returns a lightly edited transcript with filler words removed, verbal corrections applied, punctuation added, and paragraph breaks inserted. Large files are automatically compressed. Supports MP3, WAV, OGG, FLAC, AAC, AIFF, and many more formats (auto-converted). This is the recommended default tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
vadNoEnable Voice Activity Detection preprocessing. Strips silence and non-speech audio before transcription using Silero VAD. Useful for recordings with long pauses or background noise.
modelNoModel to use: "lite" for Gemini 3.1 Flash Lite (default, cost-efficient), "flash" for Gemini 3 Flash (more capable). Also accepts full OpenRouter model IDs.
file_urlNoHTTP(S) URL where the audio file can be fetched. PREFERRED transport for remote clients — use a presigned URL from `s3-stage <path>` on the workstation. Provide this OR file_content.
ssh_hostNoSSH host (and optional port, e.g. host:2222) to pull the audio file from. Provide with ssh_path.
ssh_pathNoRemote file path on the SSH host. Provide with ssh_host.
ssh_portNoOptional SSH port when pulling the file.
ssh_userNoOptional SSH username when pulling the file.
file_nameNoOptional name of the audio file, including the extension. Helpful when using URLs without a filename.
output_dirNoOptional directory path where the transcript will be saved as a markdown file. If provided, saves the transcript with a descriptive filename derived from the title.
file_contentNoBase64-encoded audio content. AVOID for anything beyond a few seconds of audio — base64 inlining of audio is large and unreliable. Prefer file_url with `s3-stage` for local workstation files. Provide this OR file_url.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context: large files are automatically compressed, formats are auto-converted, and the output is processed (filler removed, punctuation added). It also implies a network call via OpenRouter. This goes beyond the schema, though it omits details like cost or latency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written with no filler. The main purpose and output behavior are front-loaded, followed by format support and the default-tool recommendation. Every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 10 parameters and no output schema, the description is reasonably complete when combined with the rich schema. It explains core behavior and the default status, while the schema documents each parameter, including transport preferences (file_url vs file_content) and output_dir behavior. Minor gaps like explicit mention of saving behavior could be added, but overall it is sufficient for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. Every parameter is well-documented in the schema itself, and the description adds little parameter-specific meaning beyond overall behavioral hints like 'large files are automatically compressed'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb 'transcribes an audio file' and specifies the resource, along with the output transformation ('lightly edited transcript with filler words removed, verbal corrections applied, punctuation added, and paragraph breaks inserted'). It also positions itself as the 'recommended default tool', distinguishing it from siblings like transcribe_audio_raw or transcribe_with_preset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it is the recommended default tool, giving clear context for when to choose it. However, it does not name specific alternatives or exclusions, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audio_customA

Transcribes an audio file using Gemini via OpenRouter with a user-defined custom prompt. Provides full control over how the model processes and formats the transcription. Use this when you need specific transcription instructions not covered by other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
vadNoEnable Voice Activity Detection preprocessing. Strips silence and non-speech audio before transcription using Silero VAD. Useful for recordings with long pauses or background noise.
modelNoModel to use: "lite" for Gemini 3.1 Flash Lite (default, cost-efficient), "flash" for Gemini 3 Flash (more capable). Also accepts full OpenRouter model IDs.
file_urlNoHTTP(S) URL where the audio file can be fetched. PREFERRED transport for remote clients — use a presigned URL from `s3-stage <path>` on the workstation. Provide this OR file_content.
ssh_hostNoSSH host (and optional port, e.g. host:2222) to pull the audio file from. Provide with ssh_path.
ssh_pathNoRemote file path on the SSH host. Provide with ssh_host.
ssh_portNoOptional SSH port when pulling the file.
ssh_userNoOptional SSH username when pulling the file.
file_nameNoOptional name of the audio file, including the extension. Helpful when using URLs without a filename.
output_dirNoOptional directory path where the transcript will be saved as a markdown file. If provided, saves the transcript with a descriptive filename derived from the title.
file_contentNoBase64-encoded audio content. AVOID for anything beyond a few seconds of audio — base64 inlining of audio is large and unreliable. Prefer file_url with `s3-stage` for local workstation files. Provide this OR file_url.
custom_promptYesThe custom prompt/instructions to send along with the audio. Should describe how to transcribe and format the content. The prompt should instruct the model to return JSON with at minimum a "transcript" field.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that transcription runs through Gemini via OpenRouter and uses a custom prompt, but it does not disclose side effects like saving to output_dir, how audio is supplied, return behavior, or any limitations. This is a significant gap for an 11-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary purpose is front-loaded first, and the usage guidance follows immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters, no annotations, and no output schema, the description is too thin to be contextually complete. It does not explain what a successful call returns, whether a transcript file is saved, or how the audio transport options relate. The rich schema helps, but the description still leaves important operational context unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage with detailed descriptions, so the description does not need to restate parameter meanings. It adds the general concept of a custom prompt, but this is already captured by the custom_prompt parameter schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action — transcribing an audio file — and the differentiator: a user-defined custom prompt. It distinguishes this tool from siblings by emphasizing full control over processing/formatting and positioning it as the option for instructions not covered by other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool when specific transcription instructions are needed and not covered by other tools. It provides clear context but does not name sibling alternatives or state when not to use it, so it falls just short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audio_formatA

Transcribes an audio file and formats the output as a specific document type. Accepts any freeform format description. Use this when you want a quick ad-hoc format without browsing presets. For curated, high-quality formatting, use transcribe_with_preset instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
vadNoEnable Voice Activity Detection preprocessing. Strips silence and non-speech audio before transcription using Silero VAD. Useful for recordings with long pauses or background noise.
modelNoModel to use: "lite" for Gemini 3.1 Flash Lite (default, cost-efficient), "flash" for Gemini 3 Flash (more capable). Also accepts full OpenRouter model IDs.
formatYesThe desired output format. Examples: "email", "to-do list", "meeting notes", "technical document", "blog post", "executive summary", "letter", "report", "outline", "development specification". Any description is accepted.
file_urlNoHTTP(S) URL where the audio file can be fetched. PREFERRED transport for remote clients — use a presigned URL from `s3-stage <path>` on the workstation. Provide this OR file_content.
ssh_hostNoSSH host (and optional port, e.g. host:2222) to pull the audio file from. Provide with ssh_path.
ssh_pathNoRemote file path on the SSH host. Provide with ssh_host.
ssh_portNoOptional SSH port when pulling the file.
ssh_userNoOptional SSH username when pulling the file.
file_nameNoOptional name of the audio file, including the extension. Helpful when using URLs without a filename.
output_dirNoOptional directory path where the transcript will be saved as a markdown file. If provided, saves the transcript with a descriptive filename derived from the title.
file_contentNoBase64-encoded audio content. AVOID for anything beyond a few seconds of audio — base64 inlining of audio is large and unreliable. Prefer file_url with `s3-stage` for local workstation files. Provide this OR file_url.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden, yet it only restates the core function and freeform nature. It does not explain return behavior, whether/when files are saved, validation of format strings, or any limitations of the ad-hoc path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, all informative: purpose, freeform capability, and usage routing. No fluff or redundancy; front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description handles purpose and one sibling choice, and the rich schema documents all 11 parameters. However, with no output schema and no annotations, the missing return-value/side-effect information and lack of guidance for the other sibling tools leave notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's 'freeform format' note is already present in the format parameter's schema, so it adds no additional semantic value beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (transcribe an audio file and format the output) and the resource (audio file), and explicitly contrasts with transcribe_with_preset. However, with several transcription siblings (transcribe_audio, transcribe_audio_raw, transcribe_audio_custom), it does not fully differentiate from all of them, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit use case ('quick ad-hoc format without browsing presets') and directs agents to transcribe_with_preset for curated formatting. This is actionable, but it does not address when to use transcribe_audio, raw, or custom variants, so the routing guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_audio_rawA

Transcribes an audio file using Gemini via OpenRouter. Returns a verbatim transcript with NO cleanup - preserves filler words, false starts, and repetitions exactly as spoken. Use this when you need exact speech-to-text without any editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
vadNoEnable Voice Activity Detection preprocessing. Strips silence and non-speech audio before transcription using Silero VAD. Useful for recordings with long pauses or background noise.
modelNoModel to use: "lite" for Gemini 3.1 Flash Lite (default, cost-efficient), "flash" for Gemini 3 Flash (more capable). Also accepts full OpenRouter model IDs.
file_urlNoHTTP(S) URL where the audio file can be fetched. PREFERRED transport for remote clients — use a presigned URL from `s3-stage <path>` on the workstation. Provide this OR file_content.
ssh_hostNoSSH host (and optional port, e.g. host:2222) to pull the audio file from. Provide with ssh_path.
ssh_pathNoRemote file path on the SSH host. Provide with ssh_host.
ssh_portNoOptional SSH port when pulling the file.
ssh_userNoOptional SSH username when pulling the file.
file_nameNoOptional name of the audio file, including the extension. Helpful when using URLs without a filename.
output_dirNoOptional directory path where the transcript will be saved as a markdown file. If provided, saves the transcript with a descriptive filename derived from the title.
file_contentNoBase64-encoded audio content. AVOID for anything beyond a few seconds of audio — base64 inlining of audio is large and unreliable. Prefer file_url with `s3-stage` for local workstation files. Provide this OR file_url.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose a key behavioral trait: the output is verbatim with no cleanup, preserving filler words, false starts, and repetitions. It also reveals the underlying model provider. However, it does not describe how the transcript is returned (e.g., text output vs. saved file), error behavior, or transport-related edge cases, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero filler. The primary function and the key 'no cleanup' differentiator are front-loaded, and the usage guidance is concise. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 10 parameters, multiple file transport options (file_url, ssh, file_content), and five sibling tools, yet the description gives no guidance on choosing between these transports or explaining the output format/saving behavior. The schema covers parameter syntax but not how to decide among the three mutually exclusive source options. For the tool's complexity, the description is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning beyond the schema; it only mentions audio file generically. With all ten parameters already well-documented in the schema, this is acceptable, and the description neither compensates nor detracts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Transcribes', the resource (audio file), and the underlying provider (Gemini via OpenRouter). It also highlights the distinguishing output trait: a verbatim transcript with NO cleanup, preserving filler words and repetitions. However, it does not explicitly identify how this differs from sibling tools like transcribe_audio or transcribe_with_preset, leaving some differentiation to inference from the 'raw' name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Use this when you need exact speech-to-text without any editing.' This tells the agent when to choose this tool. It does not discuss when NOT to use it or recommend alternatives, so it stops short of the full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transcribe_with_presetB

Transcribes audio and transforms the output using a curated preset. Presets are divided into two categories:

Styles (modify tone/voice): formal, informal, academic, business, journalistic, assertive, flamboyant, minimalist, dejargonizer, simplify, victorian, shakespearean, etc.

Formats (restructure into document type): blog_outline, business_email, meeting_minutes, note_to_self, to_do_list, tech_documentation, feature_request, bug_report, cover_letter, resume, newsletter, development_prompt, etc.

Use list_transcription_presets to browse all 200+ available presets with category filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
vadNoEnable Voice Activity Detection preprocessing. Strips silence and non-speech audio before transcription using Silero VAD. Useful for recordings with long pauses or background noise.
modelNoModel to use: "lite" for Gemini 3.1 Flash Lite (default, cost-efficient), "flash" for Gemini 3 Flash (more capable). Also accepts full OpenRouter model IDs.
presetYesName of the preset to apply (e.g. "blog_outline", "business_email", "note_to_self", "formal_tone", "dejargonizer"). Use underscores or spaces.
file_urlNoHTTP(S) URL where the audio file can be fetched. PREFERRED transport for remote clients — use a presigned URL from `s3-stage <path>` on the workstation. Provide this OR file_content.
ssh_hostNoSSH host (and optional port, e.g. host:2222) to pull the audio file from. Provide with ssh_path.
ssh_pathNoRemote file path on the SSH host. Provide with ssh_host.
ssh_portNoOptional SSH port when pulling the file.
ssh_userNoOptional SSH username when pulling the file.
file_nameNoOptional name of the audio file, including the extension. Helpful when using URLs without a filename.
output_dirNoOptional directory path where the transcript will be saved as a markdown file. If provided, saves the transcript with a descriptive filename derived from the title.
file_contentNoBase64-encoded audio content. AVOID for anything beyond a few seconds of audio — base64 inlining of audio is large and unreliable. Prefer file_url with `s3-stage` for local workstation files. Provide this OR file_url.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It reveals the core transformation behavior and preset categories, but omits important operational details like return format, what happens when no output_dir is provided, failure modes, or any 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and densely informative, with the core action front-loaded and preset categories clearly organized. The examples and pointer to list_transcription_presets all earn their place, though the example lists are slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, no annotations, no output schema), the description plus schema provide a mostly viable picture. The main gap is the absence of explicit output/return behavior and lack of guidance for choosing this over similar sibling tools, but the extensive schema descriptions compensate for much of the missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter coverage with detailed descriptions, giving a baseline of 3. The description adds extra meaning for the preset parameter by explaining the style/format taxonomy and providing concrete examples, which helps an agent select an appropriate preset.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and resource: transcribes audio and applies a curated preset to transform the output. It adds a useful style/format taxonomy, but it does not explicitly distinguish itself from sibling tools like transcribe_audio_format or transcribe_audio_custom, so it falls just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool should be used when a preset-based transcription is desired, and it explicitly directs users to list_transcription_presets for preset discovery. However, it never states when not to use this tool or names alternatives such as transcribe_audio_raw or transcribe_audio_custom.

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. 6 tool updatesv0.8.1
    • First observedlist_transcription_presets
    • First observedtranscribe_audio
    • First observedtranscribe_audio_custom
    • First observedtranscribe_audio_format
    • First observedtranscribe_audio_raw
    • First observedtranscribe_with_preset

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation4/5

The transcription tools are mostly distinct: transcribe_audio gives cleaned output, transcribe_audio_raw gives verbatim, transcribe_audio_custom allows arbitrary prompts, and transcribe_audio_format handles ad-hoc formatting. The main overlap is between transcribe_audio_format and transcribe_with_preset, but the descriptions clearly separate curated presets from freeform formatting.

Naming Consistency4/5

Tool names follow a clear snake_case verb-first pattern, with strong consistency across the transcribe_audio_* variants. The only minor deviation is transcribe_with_preset, which uses a prepositional form rather than the transcribe_audio_* parallel used by the other formatting tool.

Tool Count5/5

Six tools is well-scoped for a transcription MCP server. Each tool fills a meaningful niche: listing presets, preset-based transcription, default cleaned transcription, raw transcription, custom-prompt transcription, and ad-hoc formatting.

Completeness5/5

The tool surface covers the full transcription workflow: discover presets, transcribe with presets, use default cleanup, get verbatim output, provide custom prompts, and apply ad-hoc formats. There are no obvious dead ends or missing core operations for the stated domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers