Multi-engine Text-to-Speech MCP server supporting Kokoro (English), OpenVoice (voice cloning), and Indic Parler-TTS (21 Indic languages) with batch processing, script handling, podcast generation, and audio transcription
The server provides 7 TTS/STT tools with generally good naming (verb-noun structure) and reasonable descriptions. However, there are significant gaps in error handling guidance, output schema documentation, and parameter validation. Tool descriptions are present but inconsistent in depth. Most tools have partial schemas with typed parameters, but lack explicit output schema definitions that LLMs need for planning. Security considerations around file I/O are not documented. The batch and educational tools show thoughtful composition for agent use cases, but error recovery paths are not defined.
Process multiple texts efficiently in batch
Create multi-voice podcasts with per-segment voice/speed control
Generate high-quality speech from text using TTS engine (Kokoro, OpenVoice, or Indic)
Get available voices organized by gender and accent
Process educational video scripts with automatic segment parsing, speed extraction, and markdown cleanup
Convert complete script files to voiceovers with gaps
Audio-to-text using OpenAI Whisper
No output schemas documented for any tool. LLMs cannot plan downstream steps or know what fields to extract. Agents calling generate_speech cannot determine if the response contains file_path, duration, quality_metrics, or other fields needed for chaining.
File path parameters (script_path, output_path, audio_path) accept arbitrary paths without documented constraints on location, permissions, or traversal prevention. No guidance on sandbox/working directory. Risk of path traversal or accidental modification of system files.
No error handling guidance in tool descriptions. What happens if output_file path is invalid? If text exceeds max length? If Whisper model download fails? Descriptions lack recovery hints, agents cannot self-correct.
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 | 0 | - | v1 |
list_voices description is vague ('Get available voices organized by gender and accent'). Does not explain when to call it, what structure it returns, or why an agent should invoke it before generate_speech.
parameter 'emotion' in generate_speech and batch_generate is documented as 'ignored for Kokoro' but there is no conditional schema or clear branching. Agents may pass emotion for Kokoro expecting it to be used, leading to silent no-ops.
batch_generate and process_educational_script return results but no pagination, item-level success/failure, or count information documented. Agents cannot determine if 50 of 100 texts succeeded or all failed.
generate_podcast accepts nested objects in segments array (text, voice, speed, emotion, name). No documentation of required vs optional nested fields, validation rules, or what happens if a segment is malformed.