Text-to-speech and speech-to-text MCP server: Groq's free hosted endpoints first, fully local keyless fallback (Kokoro-82M / faster-whisper) if unavailable.
voice-io-mcp has clear, well-structured tool definitions with good descriptions (avg 180 chars, within baseline 194). All 4 tools have input schemas with type definitions and parameter descriptions. Naming follows verb_noun convention (text_to_speech, speech_to_text, list_voices, check_provider_health). However, output schemas are not documented, callers cannot see what fields to expect. Error handling is minimal; tools raise ToolError but do not guide recovery. No tool annotations (readOnlyHint/destructiveHint). Parameter descriptions are solid but lack explicit format constraints (e.g., voice enum is listed in description but not as JSON Schema enum). Overall: functional definitions with room for schema completeness and error guidance.
Check the health and availability of both Groq TTS and STT endpoints, and whether local fallbacks (Kokoro-82M for TTS, faster-whisper for STT) are installed and functional. Useful for diagnosing configuration issues.
List all available PlayAI voice names for text_to_speech.
Transcribe speech from an audio file using Groq's Whisper Large V3 Turbo endpoint (free tier, no credit card required), with fully local faster-whisper fallback if Groq is unavailable or GROQ_API_KEY isn't set. Reads a local audio file (max 25MB, supported formats: mp3, wav, m4a, flac, ogg, webm, mp4, mpeg, mpga) and returns the transcribed text.
Convert text to speech audio using Groq's PlayAI TTS endpoint (free tier, no credit card required), with fully local Kokoro-82M fallback if Groq is unavailable or GROQ_API_KEY isn't set. Outputs a .wav or .mp3 file to the output directory.
Output schemas not documented. Callers cannot see what fields text_to_speech, speech_to_text, or check_provider_health return. LLMs cannot plan downstream tool calls or extract required data.
Voice parameter in text_to_speech lists valid values in description but not as JSON Schema enum. LLMs may hallucinate invalid voice names instead of selecting from the constrained set.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). text_to_speech is destructive (writes files); speech_to_text and list_voices are read-only. Annotations help clients optimize caching and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Error handling does not guide recovery. Tools raise ToolError but do not suggest next steps (e.g., 'Groq unavailable, local fallback attempted. If both fail, check GROQ_API_KEY and install optional dependencies.').
audio_path parameter in speech_to_text lacks explicit format constraints in schema. Description mentions 'absolute path or relative' but no regex pattern or length limit. No validation of file extension or size before upload.