tts_helpLABSCO SUMMARY
Cloned voices persist, which makes it usable past the demo.
A clone from a short sample is a party trick if it disappears on restart; keeping it on disk is what turns it into a voice your workflow can rely on. The swappable backbone matters too — a smaller quantized model is the difference between usable and unusable on a laptop CPU, and switching is a configuration choice rather than a different product.
What it is
A speech server that runs NeuTTS models on your own CPU or GPU. Text goes in, a WAV file comes out, and nothing leaves the machine — which also means there is no key to configure and no usage meter running.
What you get
- Speech synthesised to a WAV file in a chosen voice —
tts_synthesize - Five built-in voices across four languages: English (jo, dave), German (greta), French (juliette) and Spanish (mateo) —
tts_list_speakers - A new voice cloned from a 3-15 second WAV sample and kept across restarts —
tts_add_speaker - The available backbone models listed, including smaller quantized GGUF variants, with optional CUDA acceleration —
tts_list_models - Usage guidance from the server itself, plus two ready-made prompt templates —
tts_help - Three transports: stdio for Claude Desktop and Claude Code, and SSE or Streamable HTTP for n8n and other remote clients
Requirements
Python 3.10+ and espeak-ng installed through your package manager — apt, Homebrew or Chocolatey. No API key and no account. Clone the repository, create a virtual environment, then pip install -e . and pip install "mcp[cli]", and point your client at mcp_server.py using the interpreter from that environment. For remote clients start it with --transport sse or --transport streamable-http and a host and port. The Python package is neutts (1.1.0).
Setup effort
Build from source — git clone https://github.com/MuhammadTayyabIlyas/CHeema-Text-to-Voice-MCP-Server.git
USE CASES
Giving an assistant a spoken output
Ask for a reply to be spoken and get a WAV file back, without wiring up a speech vendor.
Narrating something in your own voice
Clone from a short recording once, then use that speaker for everything afterwards.
Producing audio in several languages
Pick the built-in voice for the language you need rather than running a different service per locale.
Adding speech to an automation platform
Start the server in SSE mode and point an n8n agent node at it, so the whole workflow keeps the audio local.
Making it run on modest hardware
List the available backbones and switch to a smaller quantized variant, or turn on CUDA if there is a GPU.
5 tools
Listed in project docs. Your client may show a different list.
tts_synthesizetts_list_speakerstts_list_modelstts_add_speakerBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- Python 3.10+
- espeak-ng, installed with your package manager (apt, Homebrew or Chocolatey)
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
Install espeak-ng with your package manager: sudo apt install espeak-ng (Ubuntu/Debian), brew install espeak-ng (macOS) or choco install espeak-ng (Windows)
git clone https://github.com/MuhammadTayyabIlyas/CHeema-Text-to-Voice-MCP-Server.git
cd CHeema-Text-to-Voice-MCP-Server
python -m venv venv
source venv/bin/activate # Linux/macOS; on Windows: venv\Scripts\activate
pip install -e .
pip install "mcp[cli]"MCP Clients
Claude Desktop
{
"mcpServers": {
"cheema-tts": {
"command": "<YOUR_PATH_TO_CHEEMA_TEXT_TO_VOICE>/venv/bin/python",
"args": [
"<YOUR_PATH_TO_CHEEMA_TEXT_TO_VOICE>/mcp_server.py"
],
"env": {}
}
}
}Claude Code
claude mcp add cheema-tts -- <YOUR_PATH_TO_VENV>/bin/python <YOUR_PATH_TO_MCP_SERVER>n8n — SSE server
python mcp_server.py --transport sse --host 127.0.0.1 --port 8000Run as HTTP server
python mcp_server.py --transport streamable-http --host 0.0.0.0 --port 8000