Windows-native MCP server for local audio transcription using whisper.cpp with Vulkan GPU acceleration
9 tools with clear action verbs and detailed descriptions (avg 180 chars). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages. Privacy mode and batch operations add complexity but lack clear composition guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Naming is strong (transcribe_*, check_progress, switch_model), but parameter relationships (privacy_mode overrides) are underdocumented.
Cancel a running batch transcription job. Stops all in-progress transcriptions and cleans up temporary files.
Check the progress of a background batch transcription job. Returns completed files, in-progress status, and estimated time remaining.
Retrieve the current server configuration: model path, whisper-cli path, ffmpeg path, thread count, GPU device, privacy mode, and other runtime settings.
List available whisper.cpp GGML model files in the configured models directory. Returns paths and file sizes.
Start a batch transcription from a directory of audio/video files. Scans the directory and creates a batch job.
Switch the whisper.cpp model at runtime without restarting Claude Desktop. The new model is loaded on the next transcription.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Affects all 9 tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk profiles are clear (READ_ONLY, WRITE, REVERSIBLE) but not exposed to MCP clients.
Error handling lacks recovery guidance. No actionable error messages or categorization (retryable vs user-fixable vs fatal). Agents cannot self-correct on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Transcribe a single audio or video file using whisper.cpp. Supports MP3, WAV, MP4, MKV, AVI, MOV, WEBM, FLV, WMV, M4V, M4A, OGG, FLAC, 3GP, TS. Returns transcript text (or metadata only in privacy mode), word count, and save path.
Transcribe multiple audio/video files in a single batch operation. Returns a batch ID for progress tracking. Runs in background; use check_progress to monitor.
Start or stop the resident whisper-server (whisper.cpp's persistent model server). When running, the model stays loaded in VRAM across transcriptions, eliminating the per-invocation reload cost (~110s). Bound to localhost only. Start/stop explicitly; never runs as a daemon.
Parameter relationships underdocumented. privacy_mode overrides WHISPER_PRIVACY_MODE env; gpu_device overrides WHISPER_GPU_DEVICE env. Descriptions do not explain precedence or interaction.
Batch operation composition unclear. transcribe_batch and start_batch both create jobs; distinction (file list vs directory scan) is subtle. No guidance on when to use each.