关于 mcp-kokoro-tts
mcp-kokoro-tts 是基于 Kokoro-82M 的本地语音合成 MCP 服务,可将 Agent 提供的文本合成为语音并在本机播放。它面向希望收听语音输出的 MCP 客户端用户,合成过程在本地运行且无需 API 密钥。
主要功能
- 01本地合成语音并播放
- 02配置语音和播放速度
- 03列出可用语音与默认项
- 04自动准备模型权重和 spaCy 英文模型
适用场景
- 01收听 Agent 对文本的朗读
- 02选择语音并调整播放速度
- 03在无 API 密钥配置下进行本地语音合成
MCP 相关
服务向 MCP 客户端提供 speak 和 list_voices 工具。客户端调用 speak 后,服务器本地合成语音、写入 WAV 文件并播放。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-kokoro-tts
本地 Kokoro-82M 文本转语音 MCP 服务。当你的 Agent 调用 speak 时,它会合成语音并在你的机器上播放,让你听见运行环境开口说话。
适用于任何 MCP 客户端:Claude Desktop、Claude Code、Cursor、VS Code、opencode、Cline 等。只需一段简短的配置,无需 API 密钥——语音合成由 Kokoro-82M 在本地运行。
首次启动时,服务会配置两项 PyPI 上没有的内容:将 Kokoro-82M 权重(约 312 MB)下载到本地缓存,并将 spaCy 的英语模型(en_core_web_sm)安装到服务运行所在的同一 Python 环境中。第二项安装是必需的,因为 Kokoro 的 G2P 流程会加载 spaCy,而 uvx / uv tool 环境中没有该模型,除非此软件包将其安装到环境中。
安装
添加到客户端的 MCP 配置中:
{
"mcpServers": {
"mcp-kokoro-tts": {
"command": "uvx",
"args": ["mcp-kokoro-tts"]
}
}
}
需要 Python 3.12 和 uv。首次启动服务时会自动配置 Kokoro 权重和 spaCy 英语模型。
如需在不启动 MCP 服务的情况下预先下载两者:
uvx mcp-kokoro-tts-provision
让 Agent 调用它
在 AGENTS.md / CLAUDE.md / 系统提示词中添加一行:
When the user wants to hear something spoken aloud, call the `speak` tool with clear, natural text.
工具
speak
合成语音、写入 WAV 文件,并在本地播放。
| 参数 | 必需 | 描述 |
|---|---|---|
text | 是 | 要朗读的文本(最多 500 个字符) |
voice | 否 | 语音 ID(例如 af_heart)或 .pt 语音文件的绝对路径 |
speed | 否 | 播放速度倍率(默认值为 1.0) |
list_voices
列出可用的 Kokoro 语音和当前选定的默认语音。
选择语音
解析顺序:
TTS_VOICE环境变量——语音 ID 或.pt文件的绝对路径- 软件包
voices/文件夹中名称以default开头的文件 voices/中按字母顺序排列的第一个.pt文件- 模型自带的
af_heart语音
{
"mcpServers": {
"mcp-kokoro-tts": {
"command": "uvx",
"args": ["mcp-kokoro-tts"],
"env": {
"TTS_VOICE": "af_heart"
}
}
}
}
环境变量
| 变量 | 描述 |
|---|---|
TTS_VOICE | 默认语音 ID 或 .pt 文件的绝对路径 |
TTS_MODEL_DIR | 覆盖模型缓存目录 |
TTS_HF_CACHE_DIR | 覆盖 Hugging Face Hub 缓存目录 |
TTS_OUTPUT_DIR | 生成的 WAV 文件目录 |
TTS_PLAY | 设为 0 可在合成时不进行本地播放 |
HF_TOKEN | 可选的 Hugging Face 令牌,用于加快下载 |
平台
| 操作系统 | 合成 | 播放 |
|---|---|---|
| macOS | 是 | afplay |
| Linux | 是 | ffplay、paplay 或 aplay |
| Windows | 是 | PowerShell MediaPlayer |
espeak-ng 是可选项。英语语音无需它即可使用;安装它可提升词汇表外词语的覆盖率,并支持部分非英语语言。
发布
为版本打标签会运行 GitHub Actions publish.yml,先上传到 PyPI,再上传到 MCP Registry。
向 PyPI 发布时会使用仓库密钥 PYPI_TOKEN(PyPI API 令牌)。也可以在 PyPI 项目中配置 GitHub 可信发布;此工作流使用令牌进行身份验证,因此首次发布无需依赖待处理发布者匹配。
发布版本
- 在
pyproject.toml中更新version(如果尚未打标签,也要更新server.json) - 提交并打标签:
git tag v0.1.2 && git push origin v0.1.2 - GitHub Actions 运行
publish.yml:release— 类型检查、测试、构建 wheel/sdistpypi-publish— 使用PYPI_TOKEN上传到 PyPImcp-registry— OIDC → MCP Registry(PyPI 发布成功后)
开发
cd mcps-tts
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pyright
pytest
python -m mcp_kokoro_tts
许可证
Apache-2.0。请参阅 LICENSE 和 NOTICE。Kokoro-82M 模型权重会根据其 Apache-2.0 许可证单独下载。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。