- Home
- MCP servers
- Text to Speech
Text to Speech
- python
3
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"josefgold-tts-mcp": {
"command": "/absolute/path/to/tts-mcp/.venv/bin/python",
"args": [
"/absolute/path/to/tts-mcp/tts_mcp_server.py"
],
"env": {
"LOG_LEVEL": "INFO",
"TTS_MODEL": "gpt-4o-mini-tts",
"PYTHONPATH": "/absolute/path/to/tts-mcp",
"OPENAI_API_KEY": "sk-..."
}
}
}
}The Text to Speech MCP Server turns written text into audible speech on your computer, letting your agent speak with a chosen voice, optional delivery instructions, and flexible blocking behavior. It’s built with Python and OpenAI’s TTS capabilities to provide a responsive, queueable audio experience for your workflows.
How to use
You use the spoken capabilities by invoking the speak tool from your MCP client. Pick a voice, optionally add delivery instructions, and choose whether the call should block until playback finishes or return immediately for ongoing agent activity. You can queue multiple messages so they play in order.
Basic usage patterns you can apply in conversations: select a voice with speak(text, voice=voiceName) and adjust delivery with instructions to guide tone and pace. If you want continuous operation while audio plays, rely on the non-blocking default. For fully synchronized interactions, request blocking playback.
Voice options
Choose a narrator from the following voices to match your desired tone and style: alloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse.
In Cursor with MCP
Tell Cursor to use the speak tool in your conversations. You can suggest a voice and style to maintain a consistent character across your interactions.
Usage examples in practice
Non-blocking example: speak("Hello, world! I’m now audible!")
Blocking example: speak("This message will finish before I return", blocking=True)
With a specific voice: speak("I’m feeling dramatic today!", voice="fable")
With delivery instructions: speak("You’re doing great—let’s take this one step at a time.", voice="shimmer", instructions="Speak in a warm, reassuring and unhurried tone and pace")
Available tools
speak
Speak a given text using a selected voice with optional delivery instructions and blocking behavior