mcp-edge-tts - Give Claude a Voice!
Minimal cross-platform MCP server for text-to-speech using Microsoft Edge TTS.
Let Claude speak! Works with Claude Code and Claude Desktop.
Слава Україні!
Features
- 🎙️ 300+ voices in 50+ languages
- 🖥️ Cross-platform: Windows, macOS, Linux
- 🔑 Zero API keys required
- ⚙️ Customizable: speed, volume, pitch
- 🤖 Works with Claude Code and Claude Desktop
Installation
Via pip (recommended)
pip install mcp-edge-tts
From source
Windows
git clone https://github.com/s-n-n/edge-tts-mcp.git
cd edge-tts-mcp
python -m venv venv
venv\Scripts\activate
pip install -e .
macOS / Linux
git clone https://github.com/s-n-n/edge-tts-mcp.git
cd edge-tts-mcp
python3 -m venv venv
source venv/bin/activate
pip install -e .
Setup
Add to your MCP configuration:
If installed via pip
{
"mcpServers": {
"edge-tts": {
"command": "python",
"args": ["-m", "mcp_edge_tts"]
}
}
}
If installed from source
Claude Code (.mcp.json)
Windows:
{
"mcpServers": {
"edge-tts": {
"command": "C:\\path\\to\\edge-tts-mcp\\venv\\Scripts\\python.exe",
"args": ["-m", "mcp_edge_tts"]
}
}
}
macOS / Linux:
{
"mcpServers": {
"edge-tts": {
"command": "/path/to/edge-tts-mcp/venv/bin/python",
"args": ["-m", "mcp_edge_tts"]
}
}
}
Usage
speak
Speak text aloud.
speak("Hello, world!")
speak("Привіт!", voice="uk-UA-PolinaNeural")
speak("Fast!", rate="+50%")
Parameters:
| Parameter | Description | Example |
|---|---|---|
text |
Text to speak | "Hello" |
voice |
Voice name | "en-US-AriaNeural" |
rate |
Speed (-50% to +100%) | "+20%" |
volume |
Volume (-50% to +100%) | "+10%" |
pitch |
Pitch (-50Hz to +50Hz) | "+5Hz" |
list_available_voices
List voices, optionally filtered by language.
list_available_voices()
list_available_voices("uk")
get_config
Show current settings and available audio players.
Configuration
Set defaults via environment variables or .env file:
EDGE_TTS_VOICE=uk-UA-OstapNeural
EDGE_TTS_RATE=+0%
EDGE_TTS_VOLUME=+0%
EDGE_TTS_PITCH=+0Hz
EDGE_TTS_PLAYER=auto
Audio Players
Auto-detected by platform:
| Platform | Default Player | Alternatives |
|---|---|---|
| Windows | PowerShell MediaPlayer (built-in) | ffplay, mpv |
| macOS | afplay (built-in) | ffplay, mpv |
| Linux | ffplay | mpv, paplay |
Popular Voices
| Language | Voice | Gender |
|---|---|---|
| Ukrainian | uk-UA-OstapNeural | Male |
| Ukrainian | uk-UA-PolinaNeural | Female |
| English (US) | en-US-AriaNeural | Female |
| English (US) | en-US-GuyNeural | Male |
| German | de-DE-ConradNeural | Male |
| French | fr-FR-DeniseNeural | Female |
| Spanish | es-ES-AlvaroNeural | Male |
| Chinese | zh-CN-XiaoxiaoNeural | Female |
Run list_available_voices() for full list.
Requirements
- Python 3.10+
- No additional software on Windows/macOS (uses built-in players)
- Linux:
ffmpegormpvrecommended
License
MIT
Made with ❤️ in Ukraine
Metadata
Release files for mcp-edge-tts 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_edge_tts-0.1.1.tar.gz | 15.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_edge_tts-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.4 MB
Release files / mcp_edge_tts-0.1.1.tar.gz
| Download URL | mcp_edge_tts-0.1.1.tar.gz |
|---|---|
| Size | 15.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b475f29954d2b86d36b9420ab6366b1fce52104d16ef0d30859d37f44353c1a
|
|
BLAKE2b-256 checksum How to use checksums |
ae7510844cd4b40718ec357043747f55264d71ad49730e0b0458480e17cb5054
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / mcp_edge_tts-0.1.1-py3-none-any.whl
| Download URL | mcp_edge_tts-0.1.1-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f76557456787a5a92626caf49deb931ee4a9e9ab312111497708cecad0188a39
|
|
BLAKE2b-256 checksum How to use checksums |
7c2904bfa303c1571e368fca8703b6679d2f042634b020ee18e61d343b2d33af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|