Labsco
MuhammadTayyabIlyas logo

CHeema-Text-to-Voice-MCP-Server

β˜… 1

from MuhammadTayyabIlyas

AI-powered text-to-speech MCP server with instant voice cloning. Generate speech from Claude Desktop, Claude Code, or n8n using 5 built-in voices (English, German, French, Spanish) or clone any voice from a short audio sample. Runs fully local, no API keys, no cloud. Supports stdio, SSE, and HTTP transports.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeNeeds API keys

Cheema Text-to-Voice MCP Server

MCP Python NeuTTS License

Cheema Text-to-Voice is a free, open-source MCP server that gives any MCP-compatible AI assistant, including Claude Desktop, Claude Code, and n8n, a real voice. It runs the NeuTTS text-to-speech models locally on your own CPU or GPU, so there are no API keys to configure, no cloud service in the loop, and no per-character billing: text goes in, a WAV file comes out, entirely on your machine. Ask your assistant to speak and it synthesizes natural speech in five built-in voices across four languages, or clones a new voice from a short recording in seconds.


Links

Built by Tayyab Ilyas, AI Agent Engineer in Barcelona.


What Can It Do?

Just ask your AI assistant to speak, and it handles the rest:

"Say hello in French using the juliette voice"

"Convert this paragraph to speech and save it as intro.wav"

"Clone my voice from this recording and use it to read my essay"

Features:

  • 5 built-in voices across 4 languages: English (jo, dave), German (greta), French (juliette), Spanish (mateo)
  • Instant voice cloning from a 3-15 second WAV sample, persisted across restarts
  • 5 MCP tools (tts_help, tts_list_speakers, tts_list_models, tts_synthesize, tts_add_speaker) plus 2 ready-made prompt templates
  • 3 transports: stdio for Claude Desktop and Claude Code, SSE and Streamable HTTP for n8n and other remote clients
  • Swappable NeuTTS backbone models, including smaller quantized GGUF variants, with optional CUDA acceleration
  • 100% local: no API keys, no cloud calls, no per-character billing

Available Voices

VoiceLanguageDescription
joEnglishDefault: clear, natural female voice
daveEnglishMale voice
gretaGermanGerman female voice
julietteFrenchFrench female voice
mateoSpanishSpanish male voice

Use tts_list_speakers to see all voices including any custom ones you've added.


Voice Cloning

Clone any voice from a short audio sample:

  1. Record or find a WAV file: 3 to 15 seconds of clean speech
  2. Know the transcript: the exact words spoken in the recording
  3. Ask your AI assistant:

"Add a new speaker called 'alex' from /path/to/recording.wav, with the transcript 'This is what I said in the recording'"

Or call the tool directly:

Copy & paste β€” that's it
tts_add_speaker(name="alex", wav_path="/path/to/recording.wav", ref_text="This is what I said in the recording")

Custom voices are saved permanently and available across restarts.

Tips for best results:

  • Mono audio, 16-44 kHz sample rate
  • 3-15 seconds of continuous, natural speech
  • Minimal background noise

Available Tools

ToolWhat It Does
tts_helpShows a complete usage guide with examples (start here)
tts_synthesizeConverts text to speech, saves a WAV file
tts_list_speakersLists all available voices
tts_list_modelsShows the active model and alternatives
tts_add_speakerClones a new voice from an audio sample

tts_synthesize Parameters

ParameterRequiredDefaultDescription
textYesnoneThe text to convert to speech
speakerNo"jo"Which voice to use
output_filenameNoauto-generatedCustom filename for the WAV output

MCP Prompts (Templates)

PromptDescription
quick_speechFast speech generation: just provide text and optional speaker
voice_clone_guideStep-by-step walkthrough for adding a new voice

These appear automatically in Claude Desktop's prompt picker.


Models

The default model (neutts-nano) works great on CPU. Larger models produce higher quality but need more resources.

ModelLanguageSizeNotes
neuphonic/neutts-nanoEnglish~229MDefault: fast, good quality
neuphonic/neutts-airEnglish~552MHigher quality, slower
neuphonic/neutts-nano-germanGerman~229MGerman language
neuphonic/neutts-nano-frenchFrench~229MFrench language
neuphonic/neutts-nano-spanishSpanish~229MSpanish language
neuphonic/neutts-*-q4-ggufvariessmallerQuantized: faster, less memory
neuphonic/neutts-*-q8-ggufvariesmediumQuantized: balanced

Switch models using environment variables:

Copy & paste β€” that's it
NEUTTS_BACKBONE="neuphonic/neutts-air" python mcp_server.py

How It Works

  1. The server loads the NeuTTS backbone model and audio codec on startup
  2. Speaker voice prints (.pt files) are loaded into memory
  3. When you request speech, text is phonemized and combined with the speaker's voice reference
  4. The model generates speech tokens, decoded into a 24kHz waveform
  5. Output is saved as a standard WAV file

Project Structure

Copy & paste β€” that's it
CHeema-Text-to-Voice-MCP-Server/
β”œβ”€β”€ mcp_server.py       # MCP server entry point
β”œβ”€β”€ neutts/             # NeuTTS engine
β”œβ”€β”€ samples/            # Built-in speaker voices (.wav, .pt, .txt)
β”œβ”€β”€ speakers/           # Custom cloned voices (auto-created)
β”œβ”€β”€ output/             # Generated audio files (auto-created)
└── examples/           # Usage examples

Credits


Author

Tayyab Ilyas, PhD Researcher & EdTech Founder

Building AI-powered tools for educators and researchers.

Website LinkedIn GitHub Twitter YouTube Google Scholar ORCID


License

MIT License. The underlying NeuTTS models have their own licenses. See the NeuTTS repository for details.


<p align="center"> <strong>Cheema Text-to-Voice MCP Server</strong><br> Give your AI assistant a voice. </p>