ElevenLabs Text-to-Speech MCP
Integrates ElevenLabs Text-to-Speech capabilities, allowing text to be converted to speech via the ElevenLabs API with voice selection and management features
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ElevenLabs Text-to-Speech MCPconvert this text to speech using the Sarah voice"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Project Jessica (ElevenLabs TTS MCP)
This project integrates ElevenLabs Text-to-Speech capabilities with Cursor through the Model Context Protocol (MCP). It consists of a FastAPI backend service and a React frontend application.
Features
Text-to-Speech conversion using ElevenLabs API
Voice selection and management
MCP integration for Cursor
Modern React frontend interface
WebSocket real-time communication
Pre-commit hooks for code quality
Automatic code formatting and linting
Related MCP server: Resemble AI Voice Generation MCP Server
Project Structure
jessica/
├── src/
│ ├── backend/ # FastAPI backend service
│ └── frontend/ # React frontend application
├── terraform/ # Infrastructure as Code
├── tests/ # Test suites
└── docs/ # DocumentationRequirements
Python 3.11+
Poetry (for backend dependency management)
Node.js 18+ (for frontend)
Cursor (for MCP integration)
Local Development Setup
Backend Setup
# Clone the repository
git clone https://github.com/georgi-io/jessica.git
cd jessica
# Create Python virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install backend dependencies
poetry install
# Configure environment
cp .env.example .env
# Edit .env with your ElevenLabs API key
# Install pre-commit hooks
poetry run pre-commit installFrontend Setup
# Navigate to frontend directory
cd src/frontend
# Install dependencies
npm installDevelopment Servers
Starting the Backend
# Activate virtual environment if not active
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Start the backend
python -m src.backendThe backend provides:
REST API: http://localhost:9020
WebSocket: ws://localhost:9020/ws
MCP Server: http://localhost:9020/sse (integrated with the main API server)
Starting the Frontend
# In src/frontend directory
npm run devFrontend development server:
Environment Configuration
Backend (.env)
# ElevenLabs API
ELEVENLABS_API_KEY=your-api-key
# Server Configuration
HOST=127.0.0.1
PORT=9020
# Development Settings
DEBUG=false
RELOAD=trueFrontend (.env)
VITE_API_URL=http://localhost:9020
VITE_WS_URL=ws://localhost:9020/wsCode Quality Tools
Backend
# Run all pre-commit hooks
poetry run pre-commit run --all-files
# Run specific tools
poetry run ruff check .
poetry run ruff format .
poetry run pytestFrontend
# Lint
npm run lint
# Type check
npm run type-check
# Test
npm run testProduction Deployment
AWS ECR and GitHub Actions Setup
To enable automatic building and pushing of Docker images to Amazon ECR:
Apply the Terraform configuration to create the required AWS resources:
cd terraform terraform init terraform applyThe GitHub Actions workflow will automatically:
Read the necessary configuration from the Terraform state in S3
Build the Docker image on pushes to
mainordevelopbranchesPush the image to ECR with tags for
latestand the specific commit SHA
No additional repository variables needed! The workflow fetches all required configuration from the Terraform state.
How it Works
The GitHub Actions workflow is configured to:
Initially assume a predefined IAM role with S3 read permissions
Fetch and extract configuration values from the Terraform state file in S3
Re-authenticate using the actual deployment role from the state file
Build and push the Docker image to the ECR repository defined in the state
This approach eliminates the need to manually configure GitHub repository variables and ensures that the CI/CD process always uses the current infrastructure configuration.
Quick Overview
Frontend: Served from S3 via CloudFront at jessica.georgi.io
Backend API: Available at api.georgi.io/jessica
WebSocket: Connects to api.georgi.io/jessica/ws
Docker Image: Stored in AWS ECR and can be deployed to ECS/EKS
Infrastructure: Managed via Terraform in this repository
MCP Integration with Cursor
Start the backend server
In Cursor settings, add new MCP server:
Name: Jessica TTS
Type: SSE
Troubleshooting
Common Issues
API Key Issues
Error: "Invalid API key"
Solution: Check
.envfile
Connection Problems
Error: "Cannot connect to MCP server"
Solution: Verify backend is running and ports are correct
Port Conflicts
Error: "Address already in use"
Solution: Change ports in
.env
WebSocket Connection Failed
Error: "WebSocket connection failed"
Solution: Ensure backend is running and WebSocket URL is correct
For additional help, please open an issue on GitHub.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
ElevenLabs in natural language: generate speech in any language, create and manage voices, compose m
Manage ElevenLabs voice agents and generate speech, music, sound effects, images, and video.
Text to speech for your AI. Your AI can send text to Doc Player to read it aloud. You will see a reader window with the text and you can control the playback sentence by sentence. Find an example here: https://documentplayer.com/connect-ai/
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Related MCP Servers
- AlicenseAqualityFmaintenanceIntegrates with ElevenLabs text-to-speech API.6118MIT
- FlicenseNot gradedqualityDmaintenanceIntegrates with Claude and Cursor using the Model Context Protocol to generate voice audio from text using Resemble AI's voices.-
- FlicenseAqualityDmaintenanceIntegrates Piper TTS into the Model Context Protocol, allowing AI assistants to convert text to speech and play it through speakers with customizable voice settings and volume control.11-
- AlicenseNot gradedqualityDmaintenanceProvides text-to-speech generation using the Kokoro-82M model, enabling AI assistants to generate voiceovers and audio content directly within Claude Desktop and Cursor.14Apache 2.0