mcp-tts


Namemcp-tts JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryMCP Text-to-Speech Server for Cursor IDE (and others) with cross-platform audio playback
upload_time2025-08-13 20:58:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
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"
}
        
Elapsed time: 1.99568s