MCP server that provides text-to-speech synthesis and audio playback using the VOICEVOX engine
Single tool with basic schema and Japanese description. Tool name 'synthesizeAndPlay' violates verb_noun convention (should be 'synthesize_and_play' or split into separate tools per pattern:tool). Description is 28 chars in Japanese, below the 50-200 char LLM-optimized baseline. Input schema present but minimal: only 'message' param with generic string type, no format/length constraints. No output schema documented. No error handling guidance. No parameter validation rules stated. Tool combines two concerns (synthesize AND play), should be split per pattern:tool composition rules.
テキストを音声合成して再生します
Tool name violates verb_noun convention and combines two actions. 'synthesizeAndPlay' should be 'synthesize_and_play' (snake_case) or split into 'synthesize_text' + 'play_audio' per pattern:tool composition.
Description is 28 characters in Japanese (テキストを音声合成して再生します). LLM-optimized descriptions should be 50-200 chars and explain WHAT, WHEN, and prerequisites. Current description lacks context for tool selection.
Input parameter 'message' lacks format constraints, length limits, or validation rules. Description is generic ('音声合成するテキスト'). Should specify: max length, character restrictions, required format (e.g., 'Japanese text, 1-500 chars').
No output schema documented. Tool returns TextContent with success/error message, but LLMs need to know: what fields are returned? Is there a result object? What does 'completion' look like? Undocumented output forces LLMs to guess.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
Error handling returns generic TextContent messages ('Error: {str(e)}') with no recovery guidance. Per pattern:recovery-guide, errors should tell the LLM what to do next: 'Voicevox service unavailable. Check host/port config or retry in 30s.'