A Python package for managing MCP services with audio transcription, media processing, and Redis-backed models
Single-tool server with moderate definition quality. The transcribe_file tool has a clear action-verb name and explicit input schema with types and descriptions. However, the tool lacks a documented output schema, which is critical for LLM reasoning about return values. The server shows good parameter typing (audio_path: string, language_code: string with default) and descriptions are adequate but brief. The tool description (84 chars) meets minimum thresholds but could be more prescriptive about when/why to use it. No output structure is documented, and error handling guidance is absent from the visible implementation. The tool appears to be properly registered via FastMCP decorator, which is verifiable.
Transcribe an audio file and return its text content. Supports multiple audio formats.
Output schema not documented. Tool returns a string, but LLMs cannot infer whether this is plain text, JSON, or annotated format. No guidance on handling transcription errors (audio format not supported, language not recognized, API failure).
Tool description (84 chars) is generic and lacks context. Does not explain when to call this tool vs alternatives, what happens to unsupported audio formats, or what output structure the LLM should expect. Does not mention AssemblyAI as the underlying service or any rate limits.
language_code parameter description lists supported languages ('en, es, fr, de, it, pt, nl, ru, zh, ja, ko') as prose rather than an enum constraint. LLMs may hallucinate unsupported language codes (e.g. 'ar', 'hi'). Should use JSON Schema enum to enforce valid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 34 | - | v1 |
No error handling or recovery guidance in visible code. No indication of how the tool fails when audio file does not exist, is corrupted, or is in an unsupported format. LLMs need explicit error classification (retryable vs user-fixable vs fatal) to plan recovery.
AssemblyAI API key is not visible in provided source. If injected via environment variable in AssemblyAIService (not shown), this is correct. If passed as a parameter, this is a critical security leak (credentials in logs/traces).
No pagination, result limits, or structured output documented. If transcription is very long, will the tool truncate? Return full text? No guidance for LLM on expected output size or structure.