Name | mcp-tts JSON |
Version |
0.3.0
JSON |
| download |
home_page | None |
Summary | MCP Text-to-Speech Server for Cursor IDE (and others) with cross-platform audio playback |
upload_time | 2025-08-13 20:58:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | MIT |
keywords |
cursor
ide
mcp
text-to-speech
tts
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# MCP Text-to-Speech for Cursor IDE
Add text-to-speech capabilities to Cursor IDE. Let your AI assistant speak responses, summaries, and explanations out loud.
## 🚀 Quick Start
**Prerequisites:** [Cursor IDE](https://cursor.sh) and either an [OpenAI API key](https://platform.openai.com/api-keys) or an [ElevenLabs API key](https://elevenlabs.io)
**Setup:** Add one of these to your Cursor MCP settings (`~/.cursor/mcp.json`):
```json
{
"mcpServers": {
"mcp_tts_server": {
"command": "uvx",
"args": ["--from", "mcp-tts", "mcp-tts-server-stdio"],
"env": {
"OPENAI_API_KEY": "your-openai-api-key-here",
"ELEVENLABS_API_KEY": "your-elevenlabs-api-key-here",
"MCP_TTS_PROVIDER": "openai",
"MCP_TTS_VOICE": "ballad",
"MCP_TTS_VOICE_PRESET": "default",
"MCP_TTS_CUSTOM_INSTRUCTIONS": "",
"MCP_TTS_SPEED": "1.0",
"MCP_TTS_VOLUME": "0.8",
"MCP_TTS_DEVICE_NAME": "",
"MCP_TTS_DEVICE_INDEX": "",
"PYTHONIOENCODING": "utf-8"
}
}
}
}
```
OpenAI (voices/presets/speed apply):
```json
{
"mcpServers": {
"mcp_tts_server": {
"command": "uvx",
"args": ["--from", "mcp-tts", "mcp-tts-server-stdio"],
"env": {
"MCP_TTS_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-...",
"MCP_TTS_VOICE": "alloy",
"MCP_TTS_VOICE_PRESET": "professional",
"MCP_TTS_CUSTOM_INSTRUCTIONS": "",
"MCP_TTS_SPEED": "1.0",
"MCP_TTS_VOLUME": "0.9",
"PYTHONIOENCODING": "utf-8"
}
}
}
}
```
ElevenLabs (use voice_id or exact name; presets/speed are ignored):
```json
{
"mcpServers": {
"mcp_tts_server": {
"command": "uvx",
"args": ["--from", "mcp-tts", "mcp-tts-server-stdio"],
"env": {
"MCP_TTS_PROVIDER": "elevenlabs",
"ELEVENLABS_API_KEY": "eleven-...",
"MCP_TTS_VOICE": "Adam",
"MCP_TTS_VOLUME": "0.8",
"PYTHONIOENCODING": "utf-8"
}
}
}
}
```
**That's it!** Restart Cursor and try asking: *"Can you read me a summary using text-to-speech?"*
## ⚙️ Configuration Options
You can control the TTS system using these environment variables in your MCP config:
| Variable | Description | Example Values | Default |
|----------|-------------|----------------|---------|
| `OPENAI_API_KEY` | Your OpenAI API key (required if using OpenAI) | `sk-proj-abc123...` | - |
| `ELEVENLABS_API_KEY` | Your ElevenLabs API key (required if using ElevenLabs) | `eleven-xxx...` | - |
| `MCP_TTS_PROVIDER` | TTS provider to use | `openai`, `elevenlabs` | `openai` |
| `MCP_TTS_VOICE` | Voice selection | OpenAI: `alloy`, `echo`, ... • ElevenLabs: `voice_id` or exact name (case-insensitive) | `ballad` |
| `MCP_TTS_VOICE_PRESET` | Voice style preset | `default`, `professional`, `calm`, `nyc_cabbie`, `chill_surfer`, `cheerleader`, `emo_teenager`, `eternal_optimist`, `dramatic` | `default` |
| `MCP_TTS_CUSTOM_INSTRUCTIONS` | Custom voice instructions (overrides preset) | `"Speak like a pirate"` | - |
| `MCP_TTS_SPEED` | Speech speed | OpenAI: `0.25` to `4.0` • ElevenLabs: ignored | `1.0` |
| `MCP_TTS_VOLUME` | Playback volume | `0.0` to `1.0` | `0.8` |
| `MCP_TTS_DEVICE_NAME` | Audio device name (partial match) | `"Speakers"`, `"Headphones"` | - |
| `MCP_TTS_DEVICE_INDEX` | Audio device index | `0`, `1`, `2`, etc. | - |
Tips:
- Open the local Config page to pick an ElevenLabs voice from your account (with previews), or call their API and paste a `voice_id`.
- OpenAI accepts built-in voice names and presets; ElevenLabs uses `voice_id` or exact voice name. Presets/instructions/speed are ignored by ElevenLabs.
### Voice Presets
You can use these built-in voice style presets:
- `default` - Clear, friendly, and conversational
- `professional` - Authoritative business voice
- `calm` - Composed, reassuring with quiet authority
- `nyc_cabbie` - Fast-talking New Yorker with edge
- `chill_surfer` - Laid-back, mellow, effortlessly cool
- `cheerleader` - High-energy, enthusiastic, motivational
- `emo_teenager` - Sarcastic, disinterested, melancholic
- `eternal_optimist` - Positive, solution-oriented
- `dramatic` - Low, hushed, suspenseful with theatrical flair
## 🎵 Usage Examples
- *"Use text-to-speech to explain this code"*
- *"Read me the changes you just made"*
- *"List my audio devices"*
- *"Switch to a professional voice style"*
## 📚 Full Documentation
For advanced configuration, voice presets, troubleshooting, and development setup, see [SETUP_GUIDE.md](SETUP_GUIDE.md).
---
**Status:** ✅ Working with Cursor IDE • 🎵 7 TTS tools available • 🔊 Cross-platform audio • 🧩 Providers: OpenAI, ElevenLabs
## 🛠️ Available Tools
This MCP server provides the following tools in Cursor:
- **text_to_speech** — Convert text to speech and play it through your speakers using the current configuration.
- **list_audio_devices** — List all available audio output devices on your system.
- **test_audio_device** — Play a test tone on a selected audio device to verify it works.
- **stop_speech** — Stop any current speech playback immediately.
- **get_tts_status** — Show the current TTS server status, provider, volume, and device info.
- **get_current_config** — Display the current voice, preset, device, and all active TTS settings.
- **set_volume** — Change the playback volume for speech output.
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-tts",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "cursor, ide, mcp, text-to-speech, tts",
"author": null,
"author_email": "Lucas Morgan <enviraldesign@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ea/d3/6d4a9bdcaf17aa929e8650c5060b41c7951d351c9eb0c45c6cfebce86dc1/mcp_tts-0.3.0.tar.gz",
"platform": null,
"description": "# MCP Text-to-Speech for Cursor IDE\n\nAdd text-to-speech capabilities to Cursor IDE. Let your AI assistant speak responses, summaries, and explanations out loud.\n\n## \ud83d\ude80 Quick Start\n\n**Prerequisites:** [Cursor IDE](https://cursor.sh) and either an [OpenAI API key](https://platform.openai.com/api-keys) or an [ElevenLabs API key](https://elevenlabs.io)\n\n**Setup:** Add one of these to your Cursor MCP settings (`~/.cursor/mcp.json`):\n\n```json\n{\n \"mcpServers\": {\n \"mcp_tts_server\": {\n \"command\": \"uvx\",\n \"args\": [\"--from\", \"mcp-tts\", \"mcp-tts-server-stdio\"],\n \"env\": {\n \"OPENAI_API_KEY\": \"your-openai-api-key-here\",\n \"ELEVENLABS_API_KEY\": \"your-elevenlabs-api-key-here\",\n \"MCP_TTS_PROVIDER\": \"openai\",\n \"MCP_TTS_VOICE\": \"ballad\",\n \"MCP_TTS_VOICE_PRESET\": \"default\",\n \"MCP_TTS_CUSTOM_INSTRUCTIONS\": \"\",\n \"MCP_TTS_SPEED\": \"1.0\",\n \"MCP_TTS_VOLUME\": \"0.8\",\n \"MCP_TTS_DEVICE_NAME\": \"\",\n \"MCP_TTS_DEVICE_INDEX\": \"\",\n \"PYTHONIOENCODING\": \"utf-8\"\n }\n }\n }\n}\n```\n\nOpenAI (voices/presets/speed apply):\n\n```json\n{\n \"mcpServers\": {\n \"mcp_tts_server\": {\n \"command\": \"uvx\",\n \"args\": [\"--from\", \"mcp-tts\", \"mcp-tts-server-stdio\"],\n \"env\": {\n \"MCP_TTS_PROVIDER\": \"openai\",\n \"OPENAI_API_KEY\": \"sk-...\",\n \"MCP_TTS_VOICE\": \"alloy\",\n \"MCP_TTS_VOICE_PRESET\": \"professional\",\n \"MCP_TTS_CUSTOM_INSTRUCTIONS\": \"\",\n \"MCP_TTS_SPEED\": \"1.0\",\n \"MCP_TTS_VOLUME\": \"0.9\",\n \"PYTHONIOENCODING\": \"utf-8\"\n }\n }\n }\n}\n```\n\nElevenLabs (use voice_id or exact name; presets/speed are ignored):\n\n```json\n{\n \"mcpServers\": {\n \"mcp_tts_server\": {\n \"command\": \"uvx\",\n \"args\": [\"--from\", \"mcp-tts\", \"mcp-tts-server-stdio\"],\n \"env\": {\n \"MCP_TTS_PROVIDER\": \"elevenlabs\",\n \"ELEVENLABS_API_KEY\": \"eleven-...\",\n \"MCP_TTS_VOICE\": \"Adam\",\n \"MCP_TTS_VOLUME\": \"0.8\",\n \"PYTHONIOENCODING\": \"utf-8\"\n }\n }\n }\n}\n```\n\n**That's it!** Restart Cursor and try asking: *\"Can you read me a summary using text-to-speech?\"*\n\n## \u2699\ufe0f Configuration Options\n\nYou can control the TTS system using these environment variables in your MCP config:\n\n| Variable | Description | Example Values | Default |\n|----------|-------------|----------------|---------|\n| `OPENAI_API_KEY` | Your OpenAI API key (required if using OpenAI) | `sk-proj-abc123...` | - |\n| `ELEVENLABS_API_KEY` | Your ElevenLabs API key (required if using ElevenLabs) | `eleven-xxx...` | - |\n| `MCP_TTS_PROVIDER` | TTS provider to use | `openai`, `elevenlabs` | `openai` |\n| `MCP_TTS_VOICE` | Voice selection | OpenAI: `alloy`, `echo`, ... \u2022 ElevenLabs: `voice_id` or exact name (case-insensitive) | `ballad` |\n| `MCP_TTS_VOICE_PRESET` | Voice style preset | `default`, `professional`, `calm`, `nyc_cabbie`, `chill_surfer`, `cheerleader`, `emo_teenager`, `eternal_optimist`, `dramatic` | `default` |\n| `MCP_TTS_CUSTOM_INSTRUCTIONS` | Custom voice instructions (overrides preset) | `\"Speak like a pirate\"` | - |\n| `MCP_TTS_SPEED` | Speech speed | OpenAI: `0.25` to `4.0` \u2022 ElevenLabs: ignored | `1.0` |\n| `MCP_TTS_VOLUME` | Playback volume | `0.0` to `1.0` | `0.8` |\n| `MCP_TTS_DEVICE_NAME` | Audio device name (partial match) | `\"Speakers\"`, `\"Headphones\"` | - |\n| `MCP_TTS_DEVICE_INDEX` | Audio device index | `0`, `1`, `2`, etc. | - |\n\nTips:\n- Open the local Config page to pick an ElevenLabs voice from your account (with previews), or call their API and paste a `voice_id`.\n- OpenAI accepts built-in voice names and presets; ElevenLabs uses `voice_id` or exact voice name. Presets/instructions/speed are ignored by ElevenLabs.\n\n### Voice Presets\n\nYou can use these built-in voice style presets:\n- `default` - Clear, friendly, and conversational\n- `professional` - Authoritative business voice\n- `calm` - Composed, reassuring with quiet authority\n- `nyc_cabbie` - Fast-talking New Yorker with edge\n- `chill_surfer` - Laid-back, mellow, effortlessly cool\n- `cheerleader` - High-energy, enthusiastic, motivational\n- `emo_teenager` - Sarcastic, disinterested, melancholic\n- `eternal_optimist` - Positive, solution-oriented\n- `dramatic` - Low, hushed, suspenseful with theatrical flair\n\n## \ud83c\udfb5 Usage Examples\n\n- *\"Use text-to-speech to explain this code\"*\n- *\"Read me the changes you just made\"* \n- *\"List my audio devices\"*\n- *\"Switch to a professional voice style\"*\n\n## \ud83d\udcda Full Documentation\n\nFor advanced configuration, voice presets, troubleshooting, and development setup, see [SETUP_GUIDE.md](SETUP_GUIDE.md).\n\n---\n\n**Status:** \u2705 Working with Cursor IDE \u2022 \ud83c\udfb5 7 TTS tools available \u2022 \ud83d\udd0a Cross-platform audio \u2022 \ud83e\udde9 Providers: OpenAI, ElevenLabs\n\n## \ud83d\udee0\ufe0f Available Tools\n\nThis MCP server provides the following tools in Cursor:\n\n- **text_to_speech** \u2014 Convert text to speech and play it through your speakers using the current configuration.\n- **list_audio_devices** \u2014 List all available audio output devices on your system.\n- **test_audio_device** \u2014 Play a test tone on a selected audio device to verify it works.\n- **stop_speech** \u2014 Stop any current speech playback immediately.\n- **get_tts_status** \u2014 Show the current TTS server status, provider, volume, and device info.\n- **get_current_config** \u2014 Display the current voice, preset, device, and all active TTS settings.\n- **set_volume** \u2014 Change the playback volume for speech output.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "MCP Text-to-Speech Server for Cursor IDE (and others) with cross-platform audio playback",
"version": "0.3.0",
"project_urls": {
"Homepage": "https://github.com/EnviralDesign/mcp-tts",
"Issues": "https://github.com/EnviralDesign/mcp-tts/issues",
"Repository": "https://github.com/EnviralDesign/mcp-tts"
},
"split_keywords": [
"cursor",
" ide",
" mcp",
" text-to-speech",
" tts"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c0dbb86ab4bf1cf0eb9575464f8469c2ad5b988c7ff2884b8daf4d20baf8b248",
"md5": "03fbb1a9a6d444b7648a09cbab7ae3ab",
"sha256": "eac677d801a63908fa5c6337e2b721a2805571eeae77912b952ddc939d980b4a"
},
"downloads": -1,
"filename": "mcp_tts-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "03fbb1a9a6d444b7648a09cbab7ae3ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 38192,
"upload_time": "2025-08-13T20:58:55",
"upload_time_iso_8601": "2025-08-13T20:58:55.974933Z",
"url": "https://files.pythonhosted.org/packages/c0/db/b86ab4bf1cf0eb9575464f8469c2ad5b988c7ff2884b8daf4d20baf8b248/mcp_tts-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ead36d4a9bdcaf17aa929e8650c5060b41c7951d351c9eb0c45c6cfebce86dc1",
"md5": "bd9b73997e078e1cb7ed5e0b58a0c3d1",
"sha256": "9e290fbb0dd3eae6f114bdc76b9d83fadb5f35e27e0d0bad18e15b93ed27f227"
},
"downloads": -1,
"filename": "mcp_tts-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "bd9b73997e078e1cb7ed5e0b58a0c3d1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 40013,
"upload_time": "2025-08-13T20:58:57",
"upload_time_iso_8601": "2025-08-13T20:58:57.161673Z",
"url": "https://files.pythonhosted.org/packages/ea/d3/6d4a9bdcaf17aa929e8650c5060b41c7951d351c9eb0c45c6cfebce86dc1/mcp_tts-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-13 20:58:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "EnviralDesign",
"github_project": "mcp-tts",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "mcp-tts"
}