An MCP server providing speech-related tools like ASR and TTS.
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, error guidance, and output structure. TTS has 3 parameters with types and descriptions; ASR has 1 parameter. Both descriptions are present but generic (under 200 chars). No output schema documented for either tool. Parameter validation exists in code but not exposed in schema constraints (enums, ranges). Error handling raises exceptions but provides no recovery guidance to LLMs. No tool annotations (readOnlyHint/destructiveHint). Naming is verb-based (tts, asr) but lacks clarity, 'tts' and 'asr' are acronyms, not action verbs like 'synthesize_speech' or 'transcribe_audio'. Output for TTS is TtsOutputResult (path only); ASR returns raw string. Neither tool documents what fields to expect or how to chain results.
Automatic Speech Recognition: Converts audio to text.
Text-to-Speech: Synthesizes text into audio. Return the path of audio file.
Tool names are acronyms (tts, asr) rather than action verbs. LLMs infer intent from names, 'synthesize_speech' or 'transcribe_audio' would be clearer. Current names require reading descriptions to understand purpose.
Output schemas not documented. TTS returns TtsOutputResult (inferred to contain a path), ASR returns raw string. LLMs cannot plan downstream calls or extract structured data without knowing response fields. No documentation of what 'path' field contains or format.
Error handling raises exceptions without recovery guidance. Errors like 'ValueError: Speed must be a positive value' are logged but not returned to LLM with actionable next steps. Pattern: 'Invalid speed: got X, must be > 0' would enable self-correction.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). ASR is read-only; TTS is destructive (creates files). Annotations help LLMs reason about retry safety and side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
ASR parameter 'content' accepts 'url or absolute path' but no validation or enum. LLMs may pass invalid formats. No guidance on supported audio formats, file size limits, or URL schemes.