Skip to main content

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 and either an OpenAI API key or an ElevenLabs API key

Setup: Add one of these to your Cursor MCP settings (~/.cursor/mcp.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):

{
  "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):

{
  "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.


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.

Metadata

Release files for mcp-tts 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-tts 0.3.0
File Size Uploaded Provenance
mcp_tts-0.3.0.tar.gz 40.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-tts 0.3.0
File Interpreter ABI Platform
mcp_tts-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.2 kB

Release files / mcp_tts-0.3.0.tar.gz

Download URL mcp_tts-0.3.0.tar.gz
Size 40.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9e290fbb0dd3eae6f114bdc76b9d83fadb5f35e27e0d0bad18e15b93ed27f227
BLAKE2b-256 checksum
How to use checksums
ead36d4a9bdcaf17aa929e8650c5060b41c7951d351c9eb0c45c6cfebce86dc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.13

Release files / mcp_tts-0.3.0-py3-none-any.whl

Download URL mcp_tts-0.3.0-py3-none-any.whl
Size 38.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eac677d801a63908fa5c6337e2b721a2805571eeae77912b952ddc939d980b4a
BLAKE2b-256 checksum
How to use checksums
c0dbb86ab4bf1cf0eb9575464f8469c2ad5b988c7ff2884b8daf4d20baf8b248
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.13

Security for mcp-tts 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page