Skip to main content
Glama

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 TTS

For 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 ffmpeg

Installation

From npm

npm install -g @s.lfr/mcp-coqui-tts

From Source

git clone https://github.com/yourusername/mcp-coqui-tts.git
cd mcp-coqui-tts
npm install
npm link

Usage

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 speech

  • model: TTS model to use (default: "tts_models/en/ljspeech/tacotron2-DDC")

  • output_path: Where to save the audio file

  • speaker_idx: Speaker index for multi-speaker models

  • language_idx: Language index for multi-language models

  • speed: 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 convert

  • model: TTS model to use

  • output_path: Where to save the final audio

  • chunk_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 voice

  • reference_audio (required): Path to reference audio for voice cloning

  • output_path: Where to save the output

  • language: 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"
}

English Models

  • tts_models/en/ljspeech/tacotron2-DDC - High quality English TTS

  • tts_models/en/ljspeech/fast_pitch - Fast English TTS

  • tts_models/en/vctk/vits - Multi-speaker English (110 speakers)

Multilingual Models

  • tts_models/multilingual/multi-dataset/xtts_v2 - Supports voice cloning

  • tts_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:

  1. Fork this repository

  2. Connect your GitHub account to Smithery

  3. Create a new MCP server on Smithery

  4. Select this repository

  5. Deploy

The server will be automatically available for use with any MCP-compatible client.

Development

Running Locally

npm start

Testing

You can test the server using the MCP inspector:

npx @modelcontextprotocol/inspector node index.js

Troubleshooting

Common Issues

  1. "tts: command not found"

    • Make sure Coqui TTS is installed: pip install TTS

    • Ensure Python/pip binaries are in your PATH

  2. "ffmpeg: command not found"

    • Install ffmpeg for your operating system (see Prerequisites)

  3. Model download fails

    • First run may take time as models are downloaded

    • Check internet connection

    • Ensure sufficient disk space (~1-5GB per model)

  4. 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

Support

For issues and questions, please open an issue on GitHub.

Available Tools

4 tools
clone_voiceB

Clone a voice from an audio sample (requires XTTS model)

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to speak in the cloned voice
languageNoLanguage code (e.g., 'en', 'es', 'fr')en
output_pathNoPath where the output audio will be saved
reference_audioYesPath to the reference audio file for voice cloning

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to convert to speech
modelNoTTS model to use (default: tts_models/en/ljspeech/tacotron2-DDC)tts_models/en/ljspeech/tacotron2-DDC
speedNoSpeed factor (1.0 is normal speed)
output_pathNoPath where the audio file will be saved (optional, defaults to temp file)
speaker_idxNoSpeaker index for multi-speaker models
language_idxNoLanguage index for multi-language models

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe long text to convert to speech
modelNoTTS model to usetts_models/en/ljspeech/tacotron2-DDC
chunk_sizeNoMaximum characters per chunk
output_pathNoPath where the audio file will be saved

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

A3.5/5.0
Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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