MCP Server for transcribing audio/video files using GAIK Transcriber with OpenAI API
Single tool with basic description and schema, but significant gaps in parameter documentation, error handling guidance, and output schema definition. The tool name is action-verb-based (transcribe_audio), which is good, but descriptions lack LLM-optimization detail and the parameter schema, while present, is minimal. No error recovery guidance, no output schema documentation, and the tool embeds raw exception tracebacks in responses rather than actionable error messages. The embedded all-caps 'CRITICAL OUTPUT INSTRUCTIONS' block in the docstring is anti-pattern, this should be tool behavior, not user instructions. File path parameter accepts Windows paths only (stated as 'Full Windows path'), limiting cross-platform use.
Transcribe audio/video file using GAIK Transcriber.
Tool description contains 145+ characters of instruction text telling Claude how to format output (CRITICAL OUTPUT INSTRUCTIONS block). This is anti-pattern, tool behavior should not require LLM instruction enforcement. Instead, implement proper structured output schema and error handling.
Error handling returns raw Python exception tracebacks mixed with error messages. This is not actionable for LLMs and wastes tokens. Errors should categorize as retryable/user-fixable/fatal and provide recovery guidance (e.g., 'File not found at path: /path/to/file. Verify the Windows path exists and is accessible.').
Output schema not documented. Tool returns a string, but LLM has no visibility into structure, length, or content format (raw transcript vs. enhanced transcript format). Callers cannot plan downstream processing. Document return type as 'string: verbatim transcription text (UTF-8, preserves line breaks and punctuation)' or return structured JSON with {transcript: string, word_count: int, language: string}.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Parameter 'file_path' description states 'Full Windows path' only. Tool is locked to Windows paths, breaking cross-platform agents. Accept both Windows (C:\Users\...) and POSIX (/home/...) paths, or document this platform limitation prominently.
Parameter 'enhanced' lacks detail on what 'enhanced' means. LLM must guess: is enhanced the same text with metadata? Restructured sentences? Spell-corrected? Describe the concrete difference: 'If True, apply spell-correction, punctuation restoration, and segment into sentences. If False, return raw verbatim transcription.'
No input validation or constraints documented. What file formats are supported? (.mp3, .wav, .mp4, .mov, ...)? What is the maximum file size? The tool description does not hint at these, forcing LLMs to guess or fail on invalid input.
Tool embeds API secret retrieval (get_openai_config). If this leaks to logs or traces, credentials are exposed. Verify that get_openai_config() does NOT return the actual API key in the Transcriber object, and that GAIK library handles secrets safely via environment variables only.