mcp-voice-studio
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HF_TOKEN | Yes | Hugging Face access token required to download OmniVoice and tokenizer models. Get one at https://huggingface.co/settings/tokens | |
| VOICESTUDIO_VENV | Yes | Absolute path to the VoiceStudio virtual environment (e.g., /home/user/Repositories/VoiceStudio/.venv) | |
| CUDA_VISIBLE_DEVICES | No | Optional CUDA device selection (e.g., '0' or '0,1'). Used to restrict the GPU used by the engine. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tool_clone_voice_from_audioA | Save a voice profile from a reference audio (5-30s WAV ideal). Two input modes (EITHER ref_audio_path OR audio_url must be provided, not both): A) Local file: pass ref_audio_path='/path/to/sample.wav'. B) URL clip: pass audio_url='https://youtu.be/...', ts=30, tf=45. yt-dlp downloads the audio and ffmpeg slices [ts, tf] into a 24kHz mono 16-bit PCM WAV, which is then used as the reference. Workflow:
Common errors:
|
| tool_synthesize_speechA | Generate speech audio with a cloned voice (from voice_name) OR voice design (from instruct), or both. Three usage modes:
Returns dict with: output_path, duration_s, sample_rate, channels, model, voice_name, generation_time_s, and (if any ASMR effect ran) asmr_applied. ASMR pipeline: highpass(60Hz) -> lowpass -> stereo_pan -> reverb -> binaural -> padding. All ASMR params default to OFF (passthrough). Output is stereo whenever any stereo-capable effect (stereo_pan, reverb, binaural_beat_hz) is active. |
| tool_design_voiceA | Generate speech using voice design keywords only (no cloned voice). Same ASMR params as synthesize_speech. Use this when you want a one-off voice without persisting a profile. For reusable voices, clone first with clone_voice_from_audio then call synthesize_speech with voice_name. |
| tool_list_voicesA | List all saved voice profiles. Returns: list of dicts, each with 'name', 'description', 'language', 'source', 'created_at'. Use this to discover available voice_name values before calling synthesize_speech. |
| tool_get_voice_infoA | Get full metadata of a single saved voice profile: name, description, language, ref_audio_path, ref_text, created_at. Use this to verify a profile exists and inspect its reference audio path before calling synthesize_speech with that voice_name. |
| tool_delete_voiceA | Delete a voice profile and its reference audio file. Cannot be undone. Use this to free disk space or clean up test voices. The voice will no longer appear in list_voices and synthesize_speech with this voice_name will fail. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Profile management tools (list/get/delete) are clearly distinct, and clone/synthesize have clear roles. However, design_voice overlaps with synthesize_speech because synthesize_speech also supports voice design via the instruct parameter; the descriptions mitigate this, but an agent could still be unsure which to call.
All tool names follow a consistent tool_verb_noun snake_case pattern, with each verb clearly indicating the action. The minor noun variation between 'voice' and 'speech' is natural and does not create confusion.
Six tools is a well-scoped size for a voice cloning and synthesis server. Each tool contributes to a clear lifecycle: profile creation, inspection, deletion, and audio generation.
The server covers the full voice-profile lifecycle: create via clone, read via list and get info, delete, and use for speech synthesis. It also offers a one-off design path, leaving no obvious critical gaps for its stated purpose.