更好的tts-mcp
](https://pypi.org/project/better-tts-mcp/) ](https://python.org)   
用于Microsoft Edge文本到语音的功能丰富的MCP(模型上下文协议)服务器。 不需要API密钥。50多种语言的300多种声音。零配置。
______________________________________________________________________
特性
- 列出声音 --浏览50多种语言的300多种声音,按语言和性别过滤
- 文本转语音 --将文本转换为MP3,可自定义速率、音量和音高
- 字幕 --在音频旁边生成SRT字幕文件
- 批处理 --在一次通话中合成多条文本
- 多语音合成 --在一个输出MP3中混合多个声音
[voice]text标记物
快速开始
安装
# Using uvx (recommended)
uvx better-tts-mcp
# Or install via pip
pip install better-tts-mcp克劳德代码
claude mcp add edge-tts -- uvx better-tts-mcp克劳德桌面
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"edge-tts": {
"command": "uvx",
"args": ["better-tts-mcp"]
}
}
}如果克劳德桌面找不到 uvx,它可能使用不同的 PATH 从您的终端。
运行:
which uvx然后更换 "command": "uvx" 使用命令输出的绝对路径,例如:
{
"mcpServers": {
"edge-tts": {
"command": "/Users/yourname/.local/bin/uvx",
"args": ["better-tts-mcp"]
}
}
}______________________________________________________________________
可用工具
list_voices
列出具有可选过滤功能的可用Edge TTS语音。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
language | string | 否 | 按语言代码筛选,例如。 "zh", "en" |
gender | string | 否 | 按性别筛选: "Male" 或 "Female" |
text_to_speech
将文本转换为语音并另存为MP3。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
text | string | 是 | -- | 要转换的文本 |
voice | string | 否 | zh-CN-XiaoxiaoNeural | 语音名称 |
rate | string | 否 | -- | 速度,例如。 "+50%", "-30%" |
volume | string | 否 | -- | 音量,例如。 "+20%", "-50%" |
pitch | string | 否 | -- | 音高,例如。 "+10Hz", "-5Hz" |
output_dir | string | 否 | . (当前目录) | 输出目录 |
text_to_speech_with_subtitles
参数与 text_to_speech。生成MP3和SRT文件。
batch_text_to_speech
将多个文本转换为语音,每个文本另存为单独的MP3文件。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
texts | string\[\] | 是 | -- | 要转换的文本列表 |
voice | string | 否 | zh-CN-XiaoxiaoNeural | 语音名称(所有文本共享) |
rate | string | 否 | -- | 速度(共享) |
volume | string | 否 | -- | 卷(共享) |
pitch | string | 否 | -- | 音高(共享) |
output_dir | string | 否 | . (当前目录) | 输出目录 |
text_to_speech_multi_voice
将带有语音标记的文本转换为一个合并的MP3文件。
格式示例:
[zh-CN-XiaoxiaoNeural]你好。[en-US-AriaNeural]Hello.| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
text | string | 是 | -- | 输入可选文本 [voice] 标记 |
default_voice | string | 否 | zh-CN-XiaoxiaoNeural | 没有标记时使用的语音 |
rate | string | 否 | -- | 速度调节 |
volume | string | 否 | -- | 音量调节 |
pitch | string | 否 | -- | 音高调整 |
output_dir | string | 否 | . (当前目录) | 输出目录 |
______________________________________________________________________
MCP集成合同(适用于外部呼叫者)
此服务器遵循标准MCP客户端使用的MCP工具调用流程:
initialize->能力谈判tools/list->发现工具名称和JSON模式tools/call->按名称和参数调用工具
运输:
- 默认传输方式为
stdio(入口点:better-tts-mcp)
工具调用示例(tools/call)
{
"method": "tools/call",
"params": {
"name": "text_to_speech",
"arguments": {
"text": "Hello from MCP",
"voice": "en-US-AriaNeural",
"rate": "+0%",
"volume": "+0%",
"pitch": "+0Hz",
"output_dir": "./outputs"
}
}
}典型成功结果文本:
Audio saved to: /absolute/path/to/outputs/20260307_123456_Hello_from_MCP.mp3返回值约定
- 所有工具都返回人类可读的文本
content. - 所有工具也返回机器可读
structuredContent有稳定的田地(ok,message等)以实现稳健的LLM/工具集成。 - 合成工具返回的路径是绝对路径。
text_to_speech_with_subtitles返回两行(音频路径+字幕路径)。batch_text_to_speech返回摘要标头以及每个项目的一个输出路径。
错误行为
- 格式错误的请求(JSON-RPC或模式级别)是协议错误。
- 输入验证和业务/运行时失败将作为工具执行错误返回
isError: true,因此LLM客户端可以自我更正并重试。 - 错误有效载荷包括
error_code,error_message,以及retryable在structuredContent.
常见错误代码:
EMPTY_TEXTEMPTY_TEXTSEMPTY_TEXT_ITEMEMPTY_TEXT_SEGMENTSINVALID_RATEINVALID_VOLUMEINVALID_PITCHSYNTHESIS_FAILED
API消费者稳定性说明
- 工具名称被视为稳定的API表面:
- list_voices - text_to_speech - text_to_speech_with_subtitles - batch_text_to_speech - text_to_speech_multi_voice
- 在未来的版本中,可以添加新的可选参数,而不会中断现有的调用者。
______________________________________________________________________
需求
- Python>=3.10
- 互联网连接(用于访问Microsoft Edge TTS服务)
