Skip to main content
Glama

whisper-windows-mcp

CI

whisper-windows-mcp MCP server

A Windows-native MCP (Model Context Protocol) server that lets Claude Desktop transcribe audio and video files locally using whisper.cpp — with GPU acceleration, multilingual support, and batch processing. All transcription runs locally — no audio, video, or file paths ever leave your machine.

Why does this exist? The popular whisper-mcp package was built for macOS and assumes a Unix environment. It does not work on Windows. This package was written specifically for Windows users who want local AI transcription integrated with Claude Desktop.


What you can do with it

Once installed, you can say things like this directly in Claude Desktop:

  • "Transcribe C:\Users\Me\Downloads\meeting.mp3"

  • "Transcribe this folder of recordings and save each as a text file"

  • "Generate Japanese and English subtitles for this video"

  • "Start a batch transcription of everything in this folder"

  • "How long will it take to transcribe these files?"

  • "Check if GPU acceleration is working"

  • "Transcribe this file in privacy mode"


Related MCP server: Whisper Speech Recognition MCP Server

Requirements

  1. Node.js 18 or laternodejs.org

  2. whisper.cpp binaries with Vulkan GPU support — see Step 1

  3. A Whisper model file — see Step 2

  4. FFmpeg — required for video files and non-WAV/MP3 audio


Step 1 — Install whisper.cpp binaries

Download whisper-vulkan-win-x64.zip from the releases page.

This is a custom-compiled build with Vulkan GPU acceleration enabled. Works with AMD, NVIDIA, and Intel GPUs — no vendor-specific SDK required.

Extract to C:\whisper\Release\. You should end up with:

C:\whisper\Release\whisper-cli.exe
C:\whisper\Release\ggml-vulkan.dll
C:\whisper\Release\ggml.dll
C:\whisper\Release\ggml-base.dll
C:\whisper\Release\ggml-cpu.dll
C:\whisper\Release\whisper.dll

GPU acceleration is automatic — no additional configuration needed.

Option B — Build from source

Requires: Git, CMake, Visual Studio Build Tools 2022+ with "Desktop development with C++", Vulkan SDK from lunarg.com.

git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target whisper-cli

Copy the binaries from build\bin\Release\ to C:\whisper\Release\.

Note: The official whisper.cpp Windows releases on GitHub do not include a Vulkan build. You must use the pre-built release above or compile from source with -DGGML_VULKAN=ON.


Step 2 — Download a Whisper model

Model

Size

Speed

Accuracy

Best for

ggml-tiny.en.bin

75 MB

Very fast

Basic

Quick tests

ggml-base.en.bin

142 MB

Fast

Good

Everyday English

ggml-small.en.bin

466 MB

Moderate

Better

Important recordings

ggml-medium.en.bin

1.5 GB

Fast on GPU

Very good

Best quality English

ggml-large-v3-turbo.bin

1.6 GB

Fast on GPU

Excellent

Recommended for English GPU batch work — ~6x faster than large-v3 with minimal accuracy loss

ggml-large-v3.bin

2.9 GB

Fast on GPU

Excellent

Multilingual, maximum accuracy

ggml-medium.en-q5_0.bin

514 MB

Fast

Very good

Best CPU-only English option — high accuracy at low memory

ggml-large-v3-turbo-q5_0.bin

547 MB

Fast

Excellent

Best CPU-only multilingual option

ggml-large-v3-q5_0.bin

1.1 GB

Moderate on CPU

Excellent

Multilingual, CPU-friendly

Use download_model in Claude Desktop to install any of these directly. For English-only use: large-v3-turbo (GPU) or medium.en-q5_0 (CPU) are the best starting points. For multilingual use: large-v3-turbo or large-v3-turbo-q5_0 (CPU). English-only models (*.en.bin) output [FOREIGN] on non-English audio and cannot be used for other languages.


Step 3 — Install FFmpeg

FFmpeg is required for video files and non-native audio formats.

Install via winget:

winget install ffmpeg

Or download from ffmpeg.org and add to your PATH.

Verify:

ffmpeg -version

Step 4 — Install this MCP server

npm install -g whisper-windows-mcp

Step 5 — Configure Claude Desktop

Open Claude Desktop → Settings → Developer → Edit Config.

Add the whisper entry:

{
  "mcpServers": {
    "whisper": {
      "command": "npx",
      "args": ["-y", "whisper-windows-mcp"],
      "env": {
        "WHISPER_CLI_PATH": "C:\\whisper\\Release\\whisper-cli.exe",
        "WHISPER_MODEL": "C:\\whisper\\models\\ggml-medium.en.bin"
      }
    }
  }
}

Config file location: C:\Users\YourName\AppData\Roaming\Claude\claude_desktop_config.json

Use double backslashes in all paths.

Save and fully restart Claude Desktop. You should see whisper listed with a green running badge in Settings → Developer.


Step 6 — Verify your setup

In Claude Desktop, ask:

"Check your whisper config"

Then:

"Check your system hardware"

This confirms your GPU is detected and Vulkan acceleration is active.


Available tools

transcribe_audio

Transcribe a single file. Supports blocking (default) or background mode for long files.

Parameter

Description

file_path

Absolute path to the file (required)

language

Language code (en, ja, es, etc.) or auto to detect. Default: en

output_format

timestamps (default), text, json, srt, vtt, lrc, or csv

save_to_file

Save transcript as .txt next to the source file

background

Run as detached job — returns a job ID immediately. Use check_progress to monitor. Recommended for files over 10 minutes.

privacy_mode

Override privacy mode for this call. true = metadata only, no transcript text transmitted. false = return text even if WHISPER_PRIVACY_MODE=true globally. Omit to use global setting.

threads

CPU thread override

temperature

Sampling temperature 0.0–1.0. Default 0.0 (deterministic).

prompt

Prior context string — improves accuracy for domain-specific vocabulary or speaker names. Example: "Names: Keemstar, DramaAlert."

condition_on_prev_text

Re-enable context conditioning between segments. Default false.

beam_size

Beam search width. Higher = more accurate, slower. Default 5.

best_of

Candidate sequences evaluated. Default 5.

gpu_device

GPU device index for multi-GPU systems. Default 0.

processors

Parallel processor count. Default 1.

word_timestamps

One word per timestamped segment. Useful for clip alignment.

max_segment_length

Max segment length in characters.

diarize

Stereo speaker diarization — requires stereo audio with speakers on separate channels.

tinydiarize

Mono speaker-turn detection — marks [SPEAKER_TURN] at speaker changes on single-channel audio. Requires a tdrz model: download_model small.en-tdrz, then switch_model ggml-small.en-tdrz.bin.

vad_model

Path to Silero VAD model .bin. Strips silence before transcription — reduces hallucinations on noisy files.

offset_t

Start offset in milliseconds.

duration

Process duration in milliseconds from offset.

Output formats:

  • timestamps — timestamped segments, e.g. [00:00:01.230 --> 00:00:04.560] Hello world (default)

  • text — plain text, no time codes

  • json — structured JSON (blocking mode only)

  • srt — SubRip subtitle file saved next to source

  • vtt — WebVTT subtitle file saved next to source

  • lrc — LRC lyrics/karaoke format saved next to source

  • csv — CSV with timestamps saved next to source


check_progress

Monitor a background transcription job started with transcribe_audio (background=true).

Returns elapsed time, last processed timestamp, and the full transcript when complete.

Parameter

Description

job_id

Job ID returned by transcribe_audio

privacy_mode

Override privacy mode for this check. true = metadata only, regardless of how the job was started.


start_batch

Automated sequential batch transcription of all untranscribed files in a folder. Sorts by duration (shortest first), processes one at a time as background jobs, validates each output. Batch self-advances when each file finishes — no polling required.

Parameter

Description

folder_path

Path to folder (required)

language

Language code. Default: en

threads

CPU thread override

output_format

timestamps (default) or text

privacy_mode

Override privacy mode. One confirmation required before batch start; all files then process unattended. No transcript text returned.


check_batch_progress

Monitor a running batch. Automatically advances to the next file when the current one finishes. Returns overall progress, current file with timestamp, and any failed files.

Parameter

Description

batch_id

Batch ID returned by start_batch


transcribe_batch (interactive)

Process files one at a time with a preview and confirmation before each. Useful when you want to review as you go.

Parameter

Description

folder_path

Path to folder (required)

file_index

Which file to process (1-based). Omit to list files first.

language

Language code. Default: en

recursive

Include subfolders

output_format

timestamps (default) or text

privacy_mode

Override privacy mode. Confirmation required before each file; metadata only returned.


generate_subtitles

Generate subtitle files. Supports automatic language detection and English translation output. Outputs SRT (widest compatibility) or WebVTT (web and HTML5 video).

Parameter

Description

file_path

Path to file (required)

language

Language code or auto to detect. Default: en

output_format

srt (default) or vtt

translate_to_english

Also generate an English translation subtitle file. Only applies when source is not English.

background

Run as detached background job. Returns a job ID for check_progress.

threads

CPU thread override

When both native and translation are requested, two files are saved next to the source:

  • filename.ja.srt — original language

  • filename.en.srt — English translation

Whisper's built-in translation only translates to English. For other target languages, translate the subtitle file contents separately.


analyze_media

Analyze files before committing to transcription. Returns duration, size, codec, and estimated transcription time on CPU and GPU. For folders, shows all files in a sortable table with transcription status.

Parameter

Description

path

Path to a single file or folder (required)

sort_by

For folders: duration (default), name, or size


check_config

Verify whisper-cli.exe, the model file, and FFmpeg are all accessible. Run this first if anything is failing.


list_models

List all Whisper model files installed in your models directory. Shows filename, size, whether it is currently active, quantization status, and recommended use case. No network calls — reads local filesystem only.


download_model

Download a Whisper model directly from Hugging Face into your models directory. Only downloads from trusted Hugging Face namespaces. After downloading, use switch_model to activate it.

Parameter

Description

model_name

Model name to download, e.g. large-v3-turbo, large-v3-turbo-q5_0, medium.en-q5_0


switch_model

Switch the active Whisper model for the current session without restarting Claude Desktop. Change is session-scoped — does not persist after restart. To make permanent, update WHISPER_MODEL in your config.

Parameter

Description

model_name

Model filename (e.g. ggml-large-v3-turbo.bin) or full path. Must be a .bin file in the configured models directory.


check_system

Detect GPU hardware and verify Vulkan acceleration is available. Reports GPU name, VRAM, whether ggml-vulkan.dll is present, and recommends the best model size for your hardware.


whisper_server

Start, stop, or check the persistent model server (whisper.cpp's whisper-server). While running, the active model stays resident in VRAM and every transcribe_audio / transcribe_batch call is served over localhost with no per-file model reload — a large speedup when transcribing many short files, where the one-time model-load cost otherwise dominates.

Parameter

Description

action

start — launch with the active model resident; stop — shut down and free VRAM; status — report running state, resident model, port, and uptime.

  • ⚠️ The resident model holds GPU VRAM for the server's whole lifetime. Start it deliberately, do your work, then stop it to hand the GPU back to other applications sharing the card. Stopping performs a full kill so VRAM is actually released.

  • switch_model while the server is running hot-swaps the resident model in place (no restart).

  • Bound to 127.0.0.1 only — never exposed on the network.

  • While the server is up, operations that need the one-shot CLI — background jobs, start_batch, generate_subtitles, lrc/csv output, and advanced per-call options the HTTP API doesn't honor (beam_size, best_of, word_timestamps, diarize, tinydiarize, vad_model, offset_t, duration) — are refused with a "stop the server first" message rather than silently ignored, so no second engine ever contends for the GPU.

  • Requires whisper-server.exe (ships alongside whisper-cli.exe). Configure with WHISPER_SERVER_PATH / WHISPER_SERVER_PORT if needed.


Supported formats

Type

Formats

Native (no conversion)

mp3, wav

Video (auto-converted via FFmpeg)

mp4, mkv, avi, mov, webm, flv, wmv, m4v, ts, 3gp

Audio (auto-converted via FFmpeg)

m4a, ogg, flac


GPU acceleration

The pre-built Vulkan release enables GPU acceleration automatically. Tested on AMD Radeon RX Vega 56 (GCN 5th gen). Any GPU with Vulkan 1.0+ support should work, including NVIDIA and Intel Arc.

Performance comparison (large-v3 model, ~14 minute audio file):

Hardware

Time

CPU only (Ryzen 7 2700x, 8 threads)

~22 minutes (estimated)

GPU (Vega 56 via Vulkan)

~3m 22s

GPU utilization during transcription is typically 15–20%, dropping back to idle between files.

Supports Windows 10 and Windows 11. No Windows 11-specific configuration is required — the tool makes no Win32 API calls and runs on either OS.


Multilingual support

Whisper can auto-detect the spoken language and transcribe in that language. The built-in translation model translates to English only.

For best multilingual accuracy, use the large-v3 model. English-specific models (*.en.bin) cannot detect or transcribe other languages.

Example — foreign language video with subtitles:

  1. Ask Claude to generate subtitles with language=auto and translate_to_english=true

  2. Whisper detects the language and generates a native-language SRT or VTT

  3. A second pass generates an English translation

  4. Load the SRT in VLC via Subtitle → Add Subtitle File, or use the VTT in any web player


Privacy and compliance

whisper-windows-mcp includes a built-in privacy architecture for sensitive and regulated content.

Audio and video never leave your machine. This guarantee is unconditional.

Transcript text is different — when returned inline in a tool response, it is processed by Claude's API. For most users this is expected behavior. For regulated content (medical, legal, financial, corporate), privacy mode prevents this.

Privacy mode restricts all tool responses to metadata only (filename, word count, save path). No transcript text is transmitted to Claude's API under any circumstances. Enable per-call with privacy_mode=true on any transcription tool, or globally via WHISPER_PRIVACY_MODE=true in your config.

Consent gate — on first use per session in standard mode, a full privacy disclosure is shown before any transcript text is returned. You must explicitly confirm before proceeding. Set WHISPER_CONSENT_ACKNOWLEDGED=true in your config to skip this for non-sensitive content.

See PRIVACY.md for full compliance guidance (HIPAA, GDPR, attorney-client privilege, FERPA, SOX, PCI-DSS).


Designed for free-tier users

This tool is built to minimize Claude API interactions. The entire transcription workflow — scan, analyze, queue, run, validate — is designed to require as few Claude interactions as possible. Heavy lifting is done locally on your machine.


Optional environment variables

Variable

Description

WHISPER_CLI_PATH

Path to whisper-cli.exe (required)

WHISPER_MODEL

Path to model .bin file (required)

WHISPER_THREADS

CPU thread count override

WHISPER_GPU_DEVICE

Vulkan device index to pin transcription to, for multi-GPU systems (the Vulkan enumeration index — check whisper-cli's startup log; not the Windows GPU order). Overridable per-call with gpu_device. See TROUBLESHOOTING.md.

WHISPER_FOREGROUND_MAX_SEC

Foreground-transcription cutoff in seconds (default 210). Files estimated to run longer are routed to background mode instead of risking Claude Desktop's ~4-minute tool timeout.

FFMPEG_PATH

Path to ffmpeg if not in system PATH

WHISPER_SERVER_PATH

Path to whisper-server.exe for the persistent model server (default: alongside whisper-cli.exe). See the whisper_server tool.

WHISPER_SERVER_PORT

Localhost port for the persistent model server (default 8571). Always bound to 127.0.0.1.

WHISPER_PRIVACY_MODE

When true, all tool responses return metadata only — no transcript text transmitted to Claude's API. For regulated or confidential content. Can be overridden per-call with the privacy_mode parameter. See PRIVACY.md.

WHISPER_CONSENT_ACKNOWLEDGED

When true, skips the one-time session consent disclosure shown before transcript text is returned. Set after you understand the privacy boundary and no longer need the reminder. Has no effect when privacy mode is active.


Security

Binary verification. To verify the integrity of the whisper-cli.exe binary in the pre-built release, check its SHA256 hash in PowerShell:

Get-FileHash "C:\whisper\Release\whisper-cli.exe" -Algorithm SHA256

The expected hash for the v1.4.0 release binary is documented in the releases page.

Input validation. All file and folder paths are validated before use, on every tool that takes one — UNC paths (\\server\share) and directory traversal sequences (..) are rejected. Files over 10 GB are rejected to prevent resource exhaustion. job_id and batch_id are checked against the exact server-minted format before they are used to build any file path, so a crafted ID cannot traverse out of the jobs directory.

Transcript injection awareness. Audio files can contain spoken content that, when transcribed, resembles instructions. Claude's built-in defenses handle this, but it is worth knowing that transcript content is treated as data — never as instructions — by the MCP server itself. Because transcribed content can still influence which tools Claude calls next, path/ID validation is applied defensively rather than trusting the single-user assumption alone.

Model downloads are restricted. The download_model tool only downloads from two trusted Hugging Face namespaces (ggerganov/whisper.cpp and ggml-org). Arbitrary URLs are rejected. Redirects are validated against an allowlist before following. (Downloads are not yet verified against a per-model SHA256 digest — see SECURITY.md.)

Model selection is sandboxed. Both switch_model and the transcribe_audio model override only accept .bin files within the configured models directory. Paths outside that directory are rejected via normalized path containment.

No PATH shadowing. System binaries the server invokes on your behalf (tasklist, wmic) are called by absolute System32 path so they can't be shadowed by a same-named executable earlier on PATH.

See SECURITY.md for the full security policy.


Troubleshooting

See TROUBLESHOOTING.md for detailed solutions. See PRIVACY.md for compliance guidance if you handle regulated content.

Quick checklist:

  • Paths in config use double backslashes (C:\\whisper\\...)

  • whisper-cli.exe exists at the configured path

  • Model .bin file exists at the configured path

  • FFmpeg is installed and in PATH (ffmpeg -version works)

  • Claude Desktop was fully restarted after editing config

  • Whisper shows running in Settings → Developer


License

Non-commercial use: MIT — free for personal, educational, and non-commercial use. See LICENSE.

Commercial use: A separate commercial license is required for any business, professional, or revenue-generating use. See COMMERCIAL-LICENSE.md for terms and contact information.

Contributing

Pull requests welcome. See ROADMAP.md for planned features.

If you've tested GPU acceleration on hardware not listed above, please open an issue with your results — GPU model, VRAM, model size, and observed throughput.

Available Tools

13 tools
analyze_mediaA

Analyze one or more media files using FFprobe before transcribing. For a single file: returns duration, size, codec, and estimated transcription time on CPU and GPU. For a folder: scans all supported media files and returns a sorted table with the same info for each. Use this to plan batch work, estimate how long transcription will take, or check what's already been transcribed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute Windows path to a single file or a folder.
sort_byNoFor folder scans: sort order. Defaults to duration (shortest first).duration

TDQS

A4/5.0
Behavior3/5

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

The description explains behavior for single files and folders, including the sorted table output. However, it lacks details on supported media formats, error handling, and side effects. No annotations are provided, so the description carries the full burden; more detail on limitations or prerequisites would improve transparency.

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 concise with three sentences, each serving a distinct purpose: stating the tool's function, detailing behavior for single/folder, and suggesting use cases. No extraneous information.

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?

The description covers single and folder scenarios, use cases, and mentions FFprobe. Given the lack of output schema and annotations, it provides sufficient context for an agent to decide when to use this tool. Missing details like supported formats or accuracy of time estimates are minor 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?

The schema already provides descriptions for both parameters (path and sort_by) with 100% coverage. The description adds context about the path being an absolute Windows path and the sort_by default, but this adds only marginal value beyond the schema.

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 the tool analyzes media files using FFprobe before transcribing, returning specific metadata like duration, size, codec, and estimated transcription times. It distinguishes from sibling tools (e.g., transcribe_audio, check_progress) by focusing on pre-transcription analysis.

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 'Use this to plan batch work, estimate how long transcription will take, or check what's already been transcribed,' providing clear use cases. It does not explicitly state when not to use it, but the context implies it is for planning, not actual transcription.

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

check_batch_progressA

Check the status of a batch started with start_batch. Automatically advances to the next file when the current one finishes. Returns overall progress, current file, failed files, and elapsed time. Call repeatedly until the batch shows as complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
batch_idYesBatch ID returned by start_batch.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, but description discloses key behavior: automatic advancement to next file and polling requirement. Lacks details on side effects or permissions.

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 sentences, front-loaded with purpose, no wasted words. Each sentence adds value.

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

Completeness5/5

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

Simple tool with one parameter; description explains returns (progress, current file, failed files, elapsed time) sufficiently for an agent to use it.

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 has 100% coverage with a single parameter described as 'Batch ID returned by start_batch.' Description adds no extra meaning beyond the schema.

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?

Description clearly states the verb 'Check' and the resource 'batch progress', distinguishing it from sibling tools like analyze_media or check_config.

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 instructs to call repeatedly until complete and describes automatic advancement, but does not explicitly state when not to use this tool.

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

check_configA

Verify whisper-cli.exe, model, and FFmpeg are all available. Run this first if anything fails.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/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. It discloses the components checked but omits details on error behavior or return format. The check is likely non-destructive, but not explicitly stated.

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 no redundancy. The first sentence states the action, and the second provides usage guidance. Every word earns its place.

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 tool with no parameters and no output schema, the description covers the what and when adequately. Minor omission: no mention of return value or status reporting, but acceptable for this simple check.

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 has zero parameters, and description coverage is 100% trivial. The description adds value by listing exactly what is verified, which is essential context beyond the empty schema.

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 the tool's purpose: verifying the availability of whisper-cli.exe, model, and FFmpeg. It uses a specific verb ('Verify') and resource list, distinguishing it from sibling tools like 'check_system' or 'analyze_media'.

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 advises to 'Run this first if anything fails,' providing a clear usage context. While it does not enumerate alternatives, the directive is strong and practical for an AI agent.

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

check_progressA

Check the status of a background transcription job started with transcribe_audio (background=true). Returns current progress, elapsed time, last processed timestamp, and the transcript when complete. Call this repeatedly until the job shows as complete or failed. ⚠️ Privacy: transcript text returned on completion is processed by Claude's API. Pass privacy_mode=true to return metadata only for this check, regardless of how the job was started.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID returned by transcribe_audio when background=true.
privacy_modeNoOverride privacy mode for this check. true = metadata only. Omit to use the setting from when the job was started.

TDQS

A4.5/5.0
Behavior4/5

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

Discloses that transcript text is processed by Claude's API, explains privacy_mode behavior (metadata only), and describes return fields. No annotations present, so description carries full burden; it covers key behavioral aspects well.

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 sentences, front-loaded with purpose, then usage pattern, then privacy warning. No wasted words.

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

Completeness5/5

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

Despite no output schema, description clearly states return fields. Covers polling pattern, privacy concerns, and parameter usage. Complete for a simple polling tool.

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?

Schema has 100% description coverage, but description adds value by linking job_id to transcribe_audio, explaining privacy_mode overrides, and detailing its effect (metadata only).

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 the tool checks the status of a background transcription job, lists specific return fields (progress, elapsed time, last processed timestamp, transcript), and implicitly distinguishes from siblings that check other things like batch progress or system config.

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 instructs to call repeatedly until complete or failed, and explains privacy_mode usage. Does not explicitly contrast with alternatives like check_batch_progress, but the context is clear.

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

check_systemA

Detect GPU hardware and verify Vulkan acceleration is available. Reports GPU name, VRAM, whether the Vulkan binary is installed, and recommends the best Whisper model for your hardware.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It describes a non-destructive detection/reporting action, but does not explicitly state it is read-only or guarantee no side effects. The implication is safe, but not fully transparent.

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 one sentence that front-loads the purpose ('Detect GPU hardware and verify Vulkan acceleration is available') and then lists specific outputs. Every phrase adds value with no 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?

Given no output schema, the description adequately explains what the tool returns (GPU name, VRAM, Vulkan binary status, recommended Whisper model). It would benefit from mentioning format or structure, but is sufficient for a zero-parameter check tool.

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?

There are zero parameters, so the description does not need to explain any. The baseline for no parameters is 4, and the description adds no confusion.

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 it detects GPU hardware and Vulkan acceleration, reports specific details (GPU name, VRAM, Vulkan binary), and recommends a Whisper model. This distinguishes it from all siblings, none of which perform system checks.

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 it should be used before other tools that utilize GPU/Whisper, but does not explicitly state when to use it versus alternatives or provide any exclusions. Given no overlapping siblings, the context is clear but lacks guidance on when not to use.

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

download_modelA

Download a Whisper model from Hugging Face directly into your models directory. Accepts a model name (e.g. large-v3-turbo, medium.en-q5_0) and handles the download automatically. Downloads only from trusted Hugging Face namespaces (ggerganov/whisper.cpp and ggml-org). After downloading, use switch_model to activate it for the current session.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYesModel name to download, e.g. 'large-v3-turbo', 'medium.en-q5_0'. Use list_models to see what is already installed.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses automatic download and trusted namespaces, but fails to mention potential side effects like overwriting existing files, network dependency, or blocking behavior. This is adequate but not exhaustive.

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 concise sentences: purpose, input/behavior, security+follow-up. No unnecessary words. Well front-loaded with the main action.

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?

Given the tool's simplicity (one parameter, no output schema), the description covers the core aspects: what it does, what it takes, restrictions, and next step. Lacks error handling info, but that is acceptable for such a tool.

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?

Schema description coverage is 100%, baseline is 3. The description adds value by specifying that the download is automatic and restricted to trusted namespaces, which goes beyond the schema. The example model names and reference to list_models enhance understanding.

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 the verb (download), resource (Whisper model from Hugging Face), and destination (models directory). It distinguishes itself from siblings like list_models and switch_model by specifying its role.

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 good usage context: it gives examples of model names, mentions filtering to trusted namespaces, and directs to use switch_model afterwards. It implicitly suggests checking list_models first, but does not explicitly state when not to download.

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

generate_subtitlesA

Generate subtitle files for an audio or video file using whisper.cpp. Set language='auto' to detect the spoken language automatically. Set translate_to_english=true to also generate an English translation subtitle file. Supports SRT and WebVTT (VTT) output formats. When both native and translation are requested, two files are saved: one in the original language and one English translation. Load SRT in VLC via Subtitle → Add Subtitle File. VTT works in web players and HTML5 video. Supports all standard formats plus .3gp and .ts.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoPrior context string for domain-specific vocabulary or speaker names.
best_ofNoCandidate sequences evaluated. Default 5.
diarizeNoStereo speaker diarization. Requires stereo audio.
threadsNoCPU threads. Defaults to 4 of 8.
languageNoLanguage code (e.g. ja, es, fr, de) or 'auto' to detect automatically. Defaults to en.en
beam_sizeNoBeam search width. Higher = more accurate, slower. Default 5.
file_pathYesAbsolute Windows path to the file.
vad_modelNoPath to Silero VAD model .bin. Strips silence before transcription.
backgroundNoRun as a detached background job — recommended for files over 10 minutes. Returns a job ID to use with check_progress. translate_to_english is not available in background mode.
gpu_deviceNoGPU/Vulkan device index for multi-GPU systems. Overrides the WHISPER_GPU_DEVICE env default. Check whisper-cli's startup log for the index that lists your target card.
temperatureNoSampling temperature 0.0–1.0. Default 0.0.
tinydiarizeNoMono speaker-turn detection (TinyDiarize). Requires a tdrz model (small.en-tdrz) activated via switch_model.
output_formatNosrt = SubRip subtitle (default, widest compatibility), vtt = WebVTT (web and HTML5 video).srt
translate_to_englishNoAlso generate an English translation subtitle file alongside the native language file. Only applies when language is not 'en'. Not available in background mode.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It discloses that two files are saved when both native and translation are requested and mentions input format support ('.3gp and .ts'). However, it omits other behavioral details like whether existing files are overwritten, what the tool actually returns, or background-mode limitations, leaving gaps.

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 six sentences long, front-loaded with a clear purpose, and uses selective examples. It avoids fluff but could be tightened without losing scope. Each sentence adds operational value.

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 the tool's 14 parameters, no output schema, and no annotations, the description should clearly explain what the tool returns (e.g., saved file paths) and any critical behavior like overwriting. It does neither. It also doesn't mention background mode viability, leaving the agent without enough context to predict outcomes.

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 repeats a few parameter highlights (language='auto', translate_to_english=true) but adds no new meaning beyond the schema's already detailed parameter descriptions. It contributes only playback-format context, not parameter semantics.

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 'Generate subtitle files for an audio or video file using whisper.cpp', clearly stating a specific verb, resource, and tool. It further details output formats (SRT/VTT) and translation capability, distinguishing it from siblings like transcribe_audio.

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 gives concrete usage tips: setting language='auto', enabling translate_to_english, and choosing SRT vs VTT based on playback context. However, it does not explicitly contrast this tool with alternatives such as transcribe_audio, leaving selection criteria implied rather than stated.

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

list_modelsA

List all Whisper model files installed in your models directory. Shows filename, size, whether it is currently active, quantization status, and recommended use case for each model. No network calls — reads local filesystem only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Discloses that it reads local filesystem only, no network calls, and provides specific output fields. Lacks mention of permissions or side effects, but as a read-only operation, this is sufficient.

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: first states purpose, second details output. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Given no annotations or output schema, description fully explains what the tool does and what output to expect. Covers all essential aspects for a list tool.

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?

No parameters, so schema coverage is 100%. Description adds value by detailing output fields beyond schema, which is helpful for agents.

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?

Clearly states verb (list), resource (Whisper model files), and specific output details (filename, size, active, quantization, use case). Distinguishes from sibling tools like download_model and switch_model by focusing on listing installed models.

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?

Implies when to use: before downloading or switching models, as it lists what is already installed. No explicit when-not or alternatives, but context is clear given sibling tools.

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

start_batchA

Start an automated sequential batch transcription of all untranscribed files in a folder. Scans for files without a matching .txt, sorts by duration (shortest first), and processes them one at a time as background jobs. Each file is validated after completion — empty or suspiciously short outputs are flagged. Batch self-advances without polling when each file finishes. Returns a batch ID to use with check_batch_progress. ⚠️ Privacy: when privacy_mode is active, one confirmation is required before the batch starts. All files then process unattended. No transcript text is returned to the API.

ParametersJSON Schema
NameRequiredDescriptionDefault
threadsNoCPU threads. Defaults to 4 of 8.
languageNoLanguage code. Defaults to en.en
folder_pathYesAbsolute Windows path to the folder.
privacy_modeNoOverride privacy mode for this batch. When active, requires one confirmation before batch start. All files process unattended with no transcript text returned.
output_formatNotimestamps = with time codes (default), text = plain. Applies to all files in the batch.timestamps

TDQS

A4.7/5.0
Behavior5/5

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 discloses scanning logic, sorting by duration, sequential background execution, post-completion validation, self-advancing behavior, return of a batch ID, and privacy-mode confirmation. This is exceptionally transparent.

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 a single paragraph of five sentences, front-loaded with the primary purpose. Every sentence adds valuable detail—scanning, sorting, validation, self-advancing, and privacy—while remaining efficient. No redundant or filler content.

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

Completeness5/5

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

For a complex batch tool with no output schema, the description covers all essential operational aspects: what it does, how it processes files, validation feedback, automatic advancement, return value, and privacy behavior. It even points to the companion check_batch_progress tool. This is complete for agent decision-making.

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?

Schema coverage is 100%, giving a baseline of 3. The description adds meaningful context for privacy_mode, explaining the one-time confirmation and that no transcript text is returned. It also clarifies that output_format applies to all files in the batch, which is absent from the schema.

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 starts with a specific verb+resource: 'Start an automated sequential batch transcription of all untranscribed files in a folder.' It clearly distinguishes itself from sibling tools by detailing the batch scanning, sorting, and background processing behavior. It also references check_batch_progress, reinforcing its unique role.

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 context: use when you need to transcribe all untranscribed files in a folder sequentially as background jobs. It does not explicitly state when not to use it or mention alternative tools, but the context is strong enough to guide the agent.

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

switch_modelA

Switch the active Whisper model for the current session without restarting Claude Desktop. Accepts a model filename (e.g. ggml-large-v3-turbo.bin) or full path. The model must already be installed in your models directory. Change is session-scoped — does not persist after Claude Desktop restarts.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYesModel filename (e.g. ggml-large-v3-turbo.bin) or full path. Must be a .bin file in the configured models directory.

TDQS

A4/5.0
Behavior3/5

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

Discloses key behavior: session-scoped change and non-persistence. Lacks details on error handling or what happens with invalid model names. Without annotations, the description is adequate but not fully comprehensive.

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 concise sentences, front-loaded with main purpose. No unnecessary words; each sentence adds 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?

Covers essential aspects: purpose, input, and scope. Lacks output specification, but for a simple action with no output schema, it is reasonably complete.

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%, and the description repeats the same information as the schema. No additional meaning is added, so baseline score applies.

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?

Clearly states the tool's purpose: switching the active Whisper model without restarting Claude Desktop. The verb 'switch' and resource 'active Whisper model' are specific. It distinguishes from sibling tools that deal with listing, downloading, or transcribing.

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?

Provides explicit guidance on input (model filename or path, must be installed) and session scope. Does not mention alternatives or when not to use, but context is clear enough.

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

transcribe_audioA

Transcribe a single audio or video file using whisper.cpp on Windows. Natively supports mp3 and wav. Automatically converts mp4, mkv, avi, mov, webm, m4a, flac, ogg etc. via FFmpeg — no manual conversion needed. Output defaults to timestamps format (with time codes). For files that may take more than 4 minutes, set background=true to run as a detached job and use check_progress to monitor it. ⚠️ Privacy: transcript text returned by this tool is processed by Claude's API. Pass privacy_mode=true to this tool to enable metadata-only responses per call — no transcript text will be transmitted. Set WHISPER_PRIVACY_MODE=true in env to enable globally. When privacy mode is active, a confirmation is required before every operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOverride model path. Leave blank to use active model.
promptNoPrior context string injected before transcription. Improves accuracy for domain-specific vocabulary or speaker names. Example: 'Names: Keemstar, DramaAlert.'
best_ofNoNumber of candidate sequences to evaluate. Default 5.
diarizeNoStereo speaker diarization — requires stereo audio with speakers on separate channels.
threadsNoCPU threads. Defaults to 4 of 8.
durationNoProcess only this many milliseconds of audio from offset_t.
languageNoLanguage code (e.g. en, ja, es, fr) or 'auto' to detect automatically. Defaults to en.en
offset_tNoStart transcription at this offset in milliseconds.
beam_sizeNoBeam search width. Higher = more accurate but slower. Default 5.
file_pathYesAbsolute Windows path, e.g. C:\Users\You\Downloads\recording.mp4
vad_modelNoAbsolute path to a Silero VAD model .bin file. Strips silence before transcription.
backgroundNoRun as a detached background job. Returns a job ID immediately. Use check_progress to monitor. Recommended for files over 10 minutes.
gpu_deviceNoGPU/Vulkan device index for multi-GPU systems. Overrides the WHISPER_GPU_DEVICE env default. Check whisper-cli's startup log for the index that lists your target card.
processorsNoNumber of parallel processors. Default 1.
temperatureNoSampling temperature 0.0–1.0. Default 0.0 (deterministic).
tinydiarizeNoMono speaker-turn detection (TinyDiarize). Marks '[SPEAKER_TURN]' at speaker changes on single-channel audio. Requires a tdrz model (small.en-tdrz) — download it with download_model and activate with switch_model first.
privacy_modeNoOverride privacy mode for this call. true = metadata only, no transcript text transmitted to API. false = return text (even if WHISPER_PRIVACY_MODE=true globally). Omit to use global WHISPER_PRIVACY_MODE setting. When active, requires confirmation before each operation.
save_to_fileNoSave transcript as .txt next to the source file.
output_formatNotimestamps = with time codes (default), text = plain, json = structured, srt = SRT subtitle file, vtt = WebVTT subtitle file, lrc = LRC lyrics/karaoke, csv = CSV with timestamps.timestamps
split_on_wordNoSplit segments at word boundaries.
no_speech_tholdNoConfidence threshold below which segments are treated as silence. Default 0.6.
word_timestampsNoOutput one word per timestamped segment. Useful for clip alignment.
max_segment_lengthNoMaximum segment length in characters.
condition_on_prev_textNoRe-enable conditioning each segment on its own prior output. Default false.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: automatic FFmpeg conversion, output default to timestamps, background job behavior, and privacy/confirmation requirements. It also warns that transcript text is processed by Claude's API. These go beyond the schema and provide meaningful operational context, though it stops short of detailing error handling or return structures.

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 moderately long but every sentence carries useful information: file support, conversion, output format, background jobs, and privacy. It is front-loaded with the core purpose and uses a clear warning for privacy. Slightly dense but well-structured.

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?

Given the tool's complexity (24 parameters, no output schema), the description covers key contextual aspects: file compatibility, background execution, and privacy. It does not describe the return format beyond the timestamps default, but with the schema's output_format enum, that is partially covered. Overall, it provides enough context for an agent to select and invoke the tool correctly.

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 adds value for background and privacy_mode by explaining their purpose and global env override, but it does not systematically enhance understanding of the 24 parameters. Most parameter semantics come from the schema itself.

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 the tool transcribes a single audio or video file using whisper.cpp on Windows. The verb 'transcribe' and the resource 'single audio or video file' are specific, and it distinguishes itself from siblings like transcribe_batch by noting it handles a single file.

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 explicit guidance for long files (background=true and check_progress), privacy mode usage, and notes automatic FFmpeg conversion, implying no manual pre-processing. It does not explicitly mention alternatives like transcribe_batch, but the 'single file' wording conveys when to use this tool over the batch variant.

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

transcribe_batchA

Transcribe multiple audio/video files in a folder interactively, one file at a time. Shows a preview of each transcript and waits for confirmation before continuing. Saves each transcript as a .txt file next to its source. Files already transcribed (with matching .txt) are shown as done and skipped. Supported formats: mp3, wav, mp4, mkv, avi, mov, webm, m4a, flac, ogg. NOTE: For large unattended batch jobs, use start_batch instead. ⚠️ Privacy: transcript previews are processed by Claude's API. Pass privacy_mode=true to suppress previews and return metadata only. When privacy mode is active, confirmation is required before each file.

ParametersJSON Schema
NameRequiredDescriptionDefault
threadsNoCPU threads. Defaults to 4 of 8.
languageNoLanguage code. Defaults to en.en
recursiveNoInclude subfolders. Defaults to false.
file_indexNoWhich file to process (1-based). Omit to list files first.
folder_pathYesAbsolute Windows path to the folder.
privacy_modeNoOverride privacy mode for this call. When active, requires confirmation before each file and returns metadata only.
output_formatNotimestamps = with time codes (default), text = plain.timestamps

TDQS

A4.5/5.0
Behavior5/5

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

Despite having no annotations, the description thoroughly discloses behavior: previewing, waiting for confirmation, saving .txt files next to sources, skipping already transcribed files, supported formats, and privacy mode effects. This exceeds typical transparency expectations.

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 relatively lengthy but well-structured, with each sentence adding value (formats list, alternative tool, privacy warning). It is not overly verbose, but could be tightened slightly by moving the format list to an appendix.

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?

Given no output schema, the description covers the workflow (preview, confirmation, saving, skipping) and privacy considerations. However, it does not describe what the tool returns besides 'metadata only' in privacy mode, leaving a minor gap for interactive completion behavior.

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 baseline is 3. The description adds context for privacy_mode (suppress previews, return metadata) but does not materially enhance understanding of other parameters beyond the schema's own descriptions.

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 the tool transcribes multiple audio/video files in a folder, with specific behavioral details (one file at a time, preview, confirmation). It also distinguishes itself from the sibling tool start_batch, making its purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly instructs when to use this tool vs. an alternative: 'For large unattended batch jobs, use start_batch instead.' Also describes interactive context and privacy mode behavior, giving clear usage direction.

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

whisper_serverA

Start, stop, or check the persistent whisper model server. When running, the active model stays resident in VRAM and every transcribe_audio / transcribe_batch call is served over localhost without reloading it — eliminating the per-file model-load cost (a large speedup for many short files). ⚠️ The resident model holds GPU VRAM for the server's entire lifetime, so start it deliberately, do your work, then stop it to hand the GPU back to other applications. While it is running, background jobs, start_batch, generate_subtitles, and lrc/csv or advanced per-call options are refused (they need the one-shot CLI and would contend for the GPU) — stop the server to use those. Bound to localhost only.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesstart = launch the server with the active model resident; stop = shut it down and free VRAM; status = report whether it is running, the resident model, port, and uptime.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses critical behavioral traits: the model stays resident in VRAM for the server's lifetime, the server is bound to localhost only, and certain operations are refused while running to avoid GPU contention. This is transparent about resource consumption and operational constraints.

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 front-loaded with the core purpose, and every sentence adds necessary context (performance benefit, VRAM warning, refusal list, localhost binding). It is rich but not bloated, and is well-structured for quick comprehension.

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

Completeness5/5

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

The description is complete for a server lifecycle tool of this complexity. It covers the action, why to use it, the GPU resource implication, restrictions on concurrent operations, and the network binding. No output schema exists, but the status action details are in the schema, and the description fills remaining 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?

The input schema has 100% coverage with detailed descriptions for each action enum value. The description adds no additional parameter meaning beyond the schema; it focuses on the server's behavior and side effects. Per the high schema coverage baseline, a score of 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 the tool's function: 'Start, stop, or check the persistent whisper model server.' It uses a specific verb and resource, distinguishing it from siblings like transcribe_audio and switch_model.

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

Usage Guidelines5/5

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

Explicit guidance is provided on when to use the server: it eliminates per-file model-load cost, making it a speedup for many short files. It also tells when NOT to use it: 'stop the server to use' the refused operations like start_batch and generate_subtitles, and warns to start deliberately and stop to free GPU.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a distinct purpose: model management (list, download, switch), server control, single and batch transcription, subtitles, progress monitoring, and diagnostics. Even similar tools like transcribe_batch and start_batch are clearly differentiated by interactive vs unattended operation.

Naming Consistency4/5

All tools use lowercase snake_case with a verb_noun pattern (switch_model, transcribe_audio, check_progress). The only deviation is whisper_server, which is a noun phrase rather than a verb action, but this is a minor inconsistency in an otherwise uniform set.

Tool Count5/5

13 tools is well within the ideal range for a domain-specific server. Each tool covers a distinct aspect of the transcription workflow, from model management to batch processing and diagnostics, without redundancy or unnecessary additions.

Completeness5/5

The toolset covers the full lifecycle: model installation/activation, server management, single/batch transcription, subtitle generation, progress tracking, and environment verification. No obvious dead ends or missing operations for the intended use case.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/eviscerations/whisper-windows-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server