MCP server that bridges to VoxCPM2, a multilingual text-to-speech model. Provides speech generation with voice cloning, ASR transcription, and voice preset management.
VoxCPM MCP has well-structured tool definitions with clear descriptions and comprehensive parameter documentation. However, several critical issues limit the score: (1) Tool names lack action verbs, 'generate', 'run_asr', 'toggle_ultimate_cloning', 'list_voice_presets', 'ping' are inconsistent in style; 'toggle_ultimate_cloning' is particularly unclear without context. (2) Output schemas are documented in docstrings but not formally declared in JSON Schema, LLMs cannot parse them from text. (3) Error handling is minimal; tools return JSON with success/error fields but provide no recovery guidance. (4) The 'ping' tool is deprecated in MCP 2026-07-28 spec and should be removed. (5) Parameter descriptions are good (72-char baseline met) but lack explicit constraints (e.g., cfg_value range 1.0-3.0 is stated but not enforced; dit_steps range 1-50 is mentioned but no validation shown).
Generate speech from text using VoxCPM2. Direct bridge to the Gradio /generate endpoint. Accepts the exact same parameters as the VoxCPM web UI. Three modes depending on inputs: - Voice Design: text + control_instruction (no ref_wav) - Controllable Cloning: text + ref_wav + optional control_instruction - Ultimate Cloning: text + ref_wav + prompt_text_value (set use_prompt_text=True)
List available voice preset files for cloning. These are pre-recorded reference voices in the voices/ directory. Use the returned names as the ref_wav parameter in generate().
Check connectivity to the VoxCPM Gradio server.
Transcribe audio to text using SenseVoiceSmall ASR. Direct bridge to the Gradio /_run_asr_if_needed endpoint.
Toggle Ultimate Cloning mode in the UI state. Direct bridge to the Gradio /_on_toggle_instant endpoint. When checked=True, control_instruction is hidden and prompt_text is shown.
Output schemas not formally declared in JSON Schema. Docstrings describe return structure (success, audio_url, error) but LLMs cannot parse text descriptions. Tools should register explicit output schemas.
Tool 'ping' is deprecated in MCP spec 2026-07-28 (removed from protocol). Should be deleted; connectivity checks belong in client initialization, not as a tool.
Error handling lacks recovery guidance. Tools return {success: false, error: str} but do not tell LLM what to do next (retry, ask user, try alternative tool). Per pattern:recovery-guide, errors should be actionable.
Parameter constraints (cfg_value 1.0-3.0, dit_steps 1-50) are documented in descriptions but not enforced in code. No input validation shown; invalid values silently pass to Gradio API.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Tool name 'toggle_ultimate_cloning' is vague and does not follow verb_noun convention. Unclear whether it toggles state, returns state, or modifies UI. Rename to 'enable_ultimate_cloning' or 'set_ultimate_cloning_mode' for clarity.