mcp-coqui-tts
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-coqui-ttsClone voice from reference.wav saying 'Welcome to the demo.'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Coqui TTS Server
A Model Context Protocol (MCP) server that provides text-to-speech synthesis capabilities using Coqui TTS, including voice cloning support.
Features
Text-to-Speech Synthesis: Convert text to natural-sounding speech
Multiple Models: Support for various TTS models and languages
Voice Cloning: Clone voices from audio samples using XTTS models
Long Text Support: Automatic chunking for longer texts
Customizable Output: Control speed, speaker, and language settings
Related MCP server: Kokoro MCP Server
Prerequisites
Before using this MCP server, you need to install Coqui TTS:
pip install TTSFor voice cloning and concatenation features, you'll also need ffmpeg:
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt-get install ffmpeg
# Windows (using chocolatey)
choco install ffmpegInstallation
From npm
npm install -g @s.lfr/mcp-coqui-ttsFrom Source
git clone https://github.com/yourusername/mcp-coqui-tts.git
cd mcp-coqui-tts
npm install
npm linkUsage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"coqui-tts": {
"command": "npx",
"args": ["@s.lfr/mcp-coqui-tts"]
}
}
}Or if installed from source:
{
"mcpServers": {
"coqui-tts": {
"command": "node",
"args": ["/path/to/mcp-coqui-tts/index.js"]
}
}
}Available Tools
1. speak
Convert text to speech with customizable parameters.
Parameters:
text(required): The text to convert to speechmodel: TTS model to use (default: "tts_models/en/ljspeech/tacotron2-DDC")output_path: Where to save the audio filespeaker_idx: Speaker index for multi-speaker modelslanguage_idx: Language index for multi-language modelsspeed: Speed factor (1.0 is normal speed)
Example:
{
"text": "Hello, this is a test of the text to speech system.",
"model": "tts_models/en/ljspeech/tacotron2-DDC",
"output_path": "/tmp/output.wav",
"speed": 1.2
}2. list_models
List all available TTS models.
Parameters: None
3. synthesize_long_text
Synthesize longer texts with automatic chunking and concatenation.
Parameters:
text(required): The long text to convertmodel: TTS model to useoutput_path: Where to save the final audiochunk_size: Maximum characters per chunk (default: 500)
Example:
{
"text": "This is a very long text that will be automatically split into chunks...",
"output_path": "/tmp/long_speech.wav",
"chunk_size": 500
}4. clone_voice
Clone a voice from an audio sample (requires XTTS model).
Parameters:
text(required): Text to speak in the cloned voicereference_audio(required): Path to reference audio for voice cloningoutput_path: Where to save the outputlanguage: Language code (default: "en")
Example:
{
"text": "This will be spoken in the cloned voice.",
"reference_audio": "/path/to/sample.wav",
"output_path": "/tmp/cloned_voice.wav",
"language": "en"
}Popular TTS Models
English Models
tts_models/en/ljspeech/tacotron2-DDC- High quality English TTStts_models/en/ljspeech/fast_pitch- Fast English TTStts_models/en/vctk/vits- Multi-speaker English (110 speakers)
Multilingual Models
tts_models/multilingual/multi-dataset/xtts_v2- Supports voice cloningtts_models/multilingual/multi-dataset/your_tts- Multilingual with voice cloning
Other Languages
Run list_models to see all available models for different languages.
Deployment on Smithery
To deploy this MCP server on Smithery:
Fork this repository
Connect your GitHub account to Smithery
Create a new MCP server on Smithery
Select this repository
Deploy
The server will be automatically available for use with any MCP-compatible client.
Development
Running Locally
npm startTesting
You can test the server using the MCP inspector:
npx @modelcontextprotocol/inspector node index.jsTroubleshooting
Common Issues
"tts: command not found"
Make sure Coqui TTS is installed:
pip install TTSEnsure Python/pip binaries are in your PATH
"ffmpeg: command not found"
Install ffmpeg for your operating system (see Prerequisites)
Model download fails
First run may take time as models are downloaded
Check internet connection
Ensure sufficient disk space (~1-5GB per model)
Voice cloning not working
Requires XTTS v2 model
Reference audio should be clear, 5-10 seconds long
WAV format recommended for reference audio
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Acknowledgments
Coqui TTS for the excellent TTS library
Model Context Protocol for the MCP SDK
Support
For issues and questions, please open an issue on GitHub.
Available Tools
4 toolsclone_voiceB
Clone a voice from an audio sample (requires XTTS model)
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to speak in the cloned voice | |
| language | No | Language code (e.g., 'en', 'es', 'fr') | en |
| output_path | No | Path where the output audio will be saved | |
| reference_audio | Yes | Path to the reference audio file for voice cloning |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions that the XTTS model is required, but nothing about output behavior, side effects, audio format requirements, or whether the voice is stored. This is minimal disclosure for a voice-cloning tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It efficiently communicates the core action and a key requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 4 parameters and no output schema, the description provides only a minimal overview. It lacks essential context about return values, model behavior, prerequisites beyond the model, and how it relates to sibling tools. This is incomplete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear per-parameter descriptions, so the baseline is 3. The tool description adds no additional parameter semantics beyond the phrase 'audio sample', which is already implicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Clone a voice') and the source ('audio sample'), making the tool's purpose unambiguous. It also distinguishes itself from sibling tools like 'speak' and 'synthesize_long_text' by focusing on voice cloning rather than plain synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when voice cloning is required, but does not explicitly state when to use this tool instead of alternatives like 'speak' or 'synthesize_long_text'. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsA
List available TTS models
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not explicitly state that the operation is read-only or side-effect-free, though 'List' implies it. No details on rate limits, auth, or pagination are given, but this is a minimal risk operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler. Every word is meaningful, and the format is front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description is minimal but adequate for a simple listing operation. It does not specify the return format or fields, but the core purpose is clear enough for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (trivially). The description needs no additional parameter detail, so the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List available TTS models' uses a specific verb ('List') and resource ('TTS models'), clearly distinguishing this tool from siblings as a read-only discovery operation. It is unambiguous and self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives, but the name and sibling context imply it should be used before speak/synthesize_long_text to discover model identifiers. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speakC
Convert text to speech using Coqui TTS
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to convert to speech | |
| model | No | TTS model to use (default: tts_models/en/ljspeech/tacotron2-DDC) | tts_models/en/ljspeech/tacotron2-DDC |
| speed | No | Speed factor (1.0 is normal speed) | |
| output_path | No | Path where the audio file will be saved (optional, defaults to temp file) | |
| speaker_idx | No | Speaker index for multi-speaker models | |
| language_idx | No | Language index for multi-language models |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must expose behavioral traits. It only states the conversion action, omitting crucial details such as whether the tool returns a file path, the audio format, model download behavior, or the effect of the optional output_path parameter. This leaves significant unknown side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, simple sentence with no extraneous words. It is front-loaded with the core action. However, it is arguably too terse to serve as a complete tool guide, though for conciseness alone it earns a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, no output schema, and no annotations, the description is insufficiently complete. It lacks mention of the return type, file saving behavior, or operational side effects such as model downloads. This makes it difficult for an agent to know what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all six parameters, achieving 100% coverage. The description adds no parameter-specific information, so it neither enhances nor detracts from the schema's semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Convert') and resource ('text to speech') plus the engine ('Coqui TTS'), making it easily understandable. However, it does not explicitly differentiate from sibling tools like synthesize_long_text or clone_voice, though the core purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to prefer this tool over list_models, synthesize_long_text, or clone_voice, nor any exclusions. The agent must infer context from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
synthesize_long_textB
Synthesize longer text with automatic chunking
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The long text to convert to speech | |
| model | No | TTS model to use | tts_models/en/ljspeech/tacotron2-DDC |
| chunk_size | No | Maximum characters per chunk | |
| output_path | No | Path where the audio file will be saved |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions 'automatic chunking' as a behavior, but does not specify that it converts text to speech, saves an audio file, or what the output is. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that clearly conveys the core purpose and the key feature of automatic chunking. It is concise, front-loaded, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the schema covering parameters, the description lacks essential context such as what the tool produces (an audio file), how output_path is used, and any length constraints. Without annotations, this is incomplete for a tool that is a variant of 'speak'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with each parameter described (e.g., 'text' as 'The long text to convert to speech'). The description adds only a hint about chunking behavior, which does not significantly go beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Synthesize longer text with automatic chunking' specifies a clear action (synthesize), resource (longer text), and scope (automatic chunking). The 'longer text' differentiates it from sibling tools like 'speak', which likely handles shorter inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for longer text, especially with the mention of 'automatic chunking', but it does not explicitly state when to prefer this over 'speak' or other alternatives. There are no exclusion criteria or explicit alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
speak and synthesize_long_text both perform text-to-speech, but synthesize_long_text is explicitly for longer text with automatic chunking, which sets it apart. clone_voice and list_models are clearly distinct, so overall only minor overlap exists.
Most tools use a verb_noun pattern (list_models, synthesize_long_text, clone_voice), but 'speak' is a bare verb without an object, creating a slight inconsistency. The pattern is still mostly predictable away from this.
With four tools, the server is well-scoped for its TTS purpose: listing models, synthesizing short and long text, and cloning voices. Each tool earns its place, and the count feels neither too thin nor too heavy.
The tool surface covers the core TTS workflows: model discovery, standard and long-form synthesis, and voice cloning. Minor gaps like audio streaming or detailed model management are not essential for a basic TTS server, so the coverage is solid.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI voice generation: text-to-speech and voice cloning from any MCP client.
Hosted pay-per-use TTS: 54 neural voices, 9 languages incl. Brazilian Portuguese. $10 free credits.
AI content generation with 50+ models: image, video, TTS, voice cloning, and more.
ElevenLabs in natural language: generate speech in any language, create and manage voices, compose m
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to generate and play high-quality text-to-speech audio using the Kokoro model, with support for multiple voices, adjustable speaking speed, and audio caching.
- AlicenseNot gradedqualityDmaintenanceProvides text-to-speech generation using the Kokoro-82M model, enabling AI assistants to generate voiceovers and audio content directly within Claude Desktop and Cursor.14Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables text-to-speech, voice cloning, audio generation, and transcription using Kokoro TTS and Whisper STT.151MIT
- AlicenseNot gradedqualityDmaintenanceProvides text-to-speech functionality using OpenAI's TTS API, enabling text-to-speech conversion, voice listing, and model listing.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Simonlfr/mcp-coqui-tts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server