MCP server for Microsoft Edge TTS — Remotion-optimised with word-timing JSON
Project description
edge-tts MCP Server
Wraps rany2/edge-tts as an MCP server.
No API key. No Windows. No Edge browser. Just Microsoft's TTS — free.
Built for Remotion video production: outputs MP3 + word-timing JSON.
Install & Use
The easiest way to use this in your MCP clients (like Cursor or VS Code) is via uvx:
{
"mcpServers": {
"edge-tts": {
"command": "uvx",
"args": [
"--from",
"saitrogen-edge-tts-mcp",
"edge-tts-mcp"
]
}
}
}
Or you can install it using pip:
pip install saitrogen-edge-tts-mcp
Tools
edgetts_synthesize
Converts text → .mp3 + optional word-timing .json (Remotion-ready).
| Param | Default | Description |
|---|---|---|
text |
required | Text or SSML to speak |
output_path |
required | Path ending in .mp3 |
voice |
en-US-AriaNeural |
Voice name (see list_voices) |
rate |
+0% |
Speed: +20% faster, -10% slower |
volume |
+0% |
Volume adjustment |
pitch |
+0Hz |
Pitch: +50Hz, -20Hz |
save_timings |
true |
Save <output>.mp3.json with word timings |
Word timing JSON (saved at voiceover.mp3.json):
[
{ "word": "Hello", "startMs": 0, "durationMs": 312, "endMs": 312 },
{ "word": "Remotion","startMs": 375, "durationMs": 480, "endMs": 855 }
]
edgetts_list_voices
Lists all available voices with optional locale/gender filter.
| Param | Example |
|---|---|
locale |
en-US, hi-IN, ta |
gender |
Male, Female |
Remotion Usage
import timings from './public/voiceover.mp3.json';
import { Audio, Sequence, staticFile, useVideoConfig } from 'remotion';
export const Scene = () => {
const { fps } = useVideoConfig();
return (
<>
<Audio src={staticFile('voiceover.mp3')} />
{timings.map((w, i) => (
<Sequence
key={i}
from={Math.floor((w.startMs / 1000) * fps)}
durationInFrames={Math.ceil((w.durationMs / 1000) * fps)}
>
<div style={{ color: 'white', fontSize: 48 }}>{w.word}</div>
</Sequence>
))}
</>
);
};
VS Code / Claude Desktop Config
Add to mcp_servers (stdio transport):
{
"edge-tts": {
"command": "python3",
"args": ["/path/to/edge-tts-mcp/server.py"]
}
}
Or with uv run:
{
"edge-tts": {
"command": "uv",
"args": ["run", "--with", "edge-tts", "--with", "mcp", "python3", "server.py"]
}
}
Popular Voices
| Voice | Language | Gender |
|---|---|---|
en-US-AriaNeural |
English (US) | Female |
en-US-GuyNeural |
English (US) | Male |
en-GB-SoniaNeural |
English (UK) | Female |
hi-IN-SwaraNeural |
Hindi | Female |
hi-IN-MadhurNeural |
Hindi | Male |
ta-IN-PallaviNeural |
Tamil | Female |
ml-IN-SobhanaNeural |
Malayalam | Female |
Run edgetts_list_voices with locale: "ml" to find Malayalam voices.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file saitrogen_edge_tts_mcp-0.1.1.tar.gz.
File metadata
- Download URL: saitrogen_edge_tts_mcp-0.1.1.tar.gz
- Upload date:
- Size: 108.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d0fc5c24ee0c4786cc69637b0bc58ce3c355b123df3c7d4cbacc96233423778
|
|
| MD5 |
c7a8bd3c65df2ec3656c213d306056e2
|
|
| BLAKE2b-256 |
49bdc97c136599481c6059f9ffb3bf42614f354a7f2d1f000a338793f466021c
|
File details
Details for the file saitrogen_edge_tts_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: saitrogen_edge_tts_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de523a2fb88e90a28d443248d04697088bd0793d0b650a73b910aaa1cca9c25c
|
|
| MD5 |
e02cf4dd006c5dd083aaf8d78c22b623
|
|
| BLAKE2b-256 |
7558344e165b8ff0a2d451abcebbee7405a6309cfeedef70dece8f30461313d5
|