关于 MCP TTS VOICEVOX
MCP TTS VOICEVOX 是基于 VOICEVOX 的文本转语音 MCP 服务,面向希望让 AI 助手朗读文本的 MCP 客户端用户。除服务端播放外,它还提供可在聊天界面播放和编辑音频的 MCP Apps 播放器。
主要功能
- 01将文本转换为语音
- 02聊天内交互式音频播放器
- 03多角色分段对话
- 04队列管理与流式播放
- 05编辑语调并导出 WAV
- 06管理 VOICEVOX 用户词典
适用场景
- 01让 AI 助手朗读回复
- 02在聊天中播放多角色对话
- 03调整分段语速和音调
- 04生成并导出 WAV 音频
MCP 相关
通过 MCP 工具向客户端提供语音合成、播放、说话人和词典管理功能。MCP Apps 支持的客户端可在聊天内显示播放器并播放音频。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
VOICEVOX TTS MCP
English | 日本語
使用 VOICEVOX 的文本转语音 MCP 服务
🎮 试用浏览器演示 — 直接在浏览器中测试 VoicevoxClient
可以做什么
- 让 AI 助手开口说话 — 通过 Claude Desktop 等 MCP 客户端将文本转换为语音
- UI 音频播放器(MCP Apps) — 在聊天中通过交互式播放器直接播放音频(ChatGPT / Claude Desktop / Claude Web 等)
- 多角色对话 — 在一次调用中为不同片段切换说话人
- 流畅播放 — 队列管理、即时播放、预取、流式传输
- 跨平台 — 支持 Windows、macOS、Linux(包括 WSL)
UI 音频播放器(MCP Apps)

voicevox_speak_player 工具使用 MCP Apps,在聊天中直接呈现交互式音频播放器。与在服务端播放音频的标准 voicevox_speak 工具不同,音频在客户端(浏览器/应用)播放,服务端无需音频设备。
功能
- 客户端播放 — 音频在 Claude Desktop 的聊天中播放,而不是在服务端播放。远程连接也可使用。
- 播放/暂停控制 — 在对话中内嵌完整的播放控制
- 多说话人对话 — 在一个播放器中依次播放多个说话人的音频,并支持曲目导航
- 切换说话人 — 直接在播放器 UI 中更改任意片段的语音
- 编辑片段 — 单独调整每个片段的速度、音量、语调、停顿时长以及前后静音
- 编辑重音短语 — 直接在 UI 中编辑重音位置和 mora 音高
- 添加 / 删除 / 重新排序片段 — 拖放即可调整曲目顺序;可直接添加新片段
- 导出 WAV — 将所有曲目保存为带编号的 WAV 文件,并自动打开输出文件夹
- 用户词典管理器 — 添加、编辑和删除 VOICEVOX 用户词典词条,并支持预览播放
- 跨会话状态恢复 — 播放器状态会保存在服务端;重新打开聊天即可恢复之前的曲目
不同环境下的导出行为:
Save and open始终导出 WAV 文件。如果不支持打开文件资源管理器,导出仍会成功,并在 UI 中显示保存路径。Choose output folder在 Windows/macOS 上使用原生目录选择器。在不支持的环境中,此操作会回退到默认导出目录。
| 多说话人播放 | 曲目列表 | 编辑片段 |
|---|---|---|
![]() | ![]() | ![]() |
| 选择说话人 | 词典管理器 | 导出 WAV |
|---|---|---|
![]() | ![]() | ![]() |
支持的客户端
| 客户端 | 连接方式 | 备注 |
|---|---|---|
| ChatGPT | HTTP(远程) | 需要 VOICEVOX_PLAYER_DOMAIN |
| Claude Desktop | stdio(本地) | 开箱即用 |
| Claude Desktop | HTTP(通过 mcp-remote) | 不要设置 VOICEVOX_PLAYER_DOMAIN |
注意:
speak_player需要支持 MCP Apps 的宿主。在不支持 MCP Apps 的宿主中,此工具不可用,可改用speak(服务端播放)。
播放器 MCP 工具
| 工具 | 描述 |
|---|---|
voicevox_speak_player | 创建新的播放器会话并显示 UI。返回 viewUUID。 |
voicevox_resynthesize_player | 更新现有播放器的所有片段(每次调用都会生成新的 viewUUID)。 |
voicevox_get_player_state | 读取当前播放器状态(分页),供 AI 调整参数。 |
voicevox_open_dictionary_ui | 打开用户词典管理器 UI。 |
快速开始
要求
- Node.js 24.0.0 或更高版本(或 Bun)或 Docker
- VOICEVOX Engine(必须正在运行;Docker Compose 中已包含)
- ffplay(可选,建议安装;使用 Docker 时不需要)
安装 FFplay
ffplay 是 FFmpeg 附带的轻量级播放器,支持从 stdin 播放。安装后会自动启用低延迟流式播放。
💡 FFplay 是可选的。 不安装时,将改用基于临时文件的播放方式(Windows:PowerShell,macOS:afplay,Linux:aplay 等)。
- 轻松设置:为每种操作系统提供一行命令即可完成安装(参见下方步骤)
- 必需条件:
ffplay必须位于 PATH 中(安装后重启终端/应用)
FFplay 安装与 PATH 设置
安装示例:
-
Windows(任选其一)
- Winget:
winget install --id=Gyan.FFmpeg -e - Chocolatey:
choco install ffmpeg - Scoop:
scoop install ffmpeg - 官方构建版本:从 https://www.gyan.dev/ffmpeg/builds/ 或 https://github.com/BtbN/FFmpeg-Builds 下载,并将
bin文件夹添加到 PATH
- Winget:
-
macOS
- Homebrew:
brew install ffmpeg
- Homebrew:
-
Linux
- Debian/Ubuntu:
sudo apt-get update && sudo apt-get install -y ffmpeg - Fedora:
sudo dnf install -y ffmpeg - Arch:
sudo pacman -S ffmpeg
- Debian/Ubuntu:
PATH 设置:
- Windows:将
...\ffmpeg\bin添加到环境变量,然后重启 PowerShell/终端和编辑器(Claude/VS Code 等)- 验证:
powershell -c "$env:Path"输出中应包含 ffmpeg 路径
- 验证:
- macOS/Linux:通常会自动检测。必要时使用
echo $PATH检查,并重启 shell。 - MCP 客户端(Claude Desktop/Code):重启应用以重新加载 PATH。
验证:
ffplay -version
如果显示版本信息,则表示安装完成。CLI/MCP 将自动检测 ffplay 并使用 stdin 流式播放。
3 步快速上手
1. 启动 VOICEVOX Engine
2. 添加到 Claude Desktop 配置文件
配置文件位置:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"tts-mcp": {
"command": "npx",
"args": ["-y", "@kajidog/mcp-tts-voicevox"]
}
}
}
💡 如果使用 Bun,只需将
npx替换为bunx:"command": "bunx", "args": ["@kajidog/mcp-tts-voicevox"]
3. 重启 Claude Desktop
完成!让 Claude「说声你好」,它就会开口说话!
使用 Docker 快速启动
使用 Docker Compose,只需一条命令即可同时运行 MCP 服务和 VOICEVOX Engine。无需安装 Node.js 或 VOICEVOX。
1. 启动容器
docker compose up -d
此操作将启动 VOICEVOX Engine 和 MCP 服务(HTTP 模式,端口为 3000)。
2. 添加到 Claude Desktop 配置文件(使用 mcp-remote)
{
"mcpServers": {
"tts-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
}
}
}
3. 重启 Claude Desktop
安全性(Docker):
docker-compose.yml会发布端口 3000,且未启用身份验证。MCP_ALLOWED_HOSTS在此处无法提供保护——非浏览器客户端可以发送任意Host标头——因此,任何能够访问该端口的人都可以使用此服务。请设置MCP_API_KEY(并通过X-API-Key发送),或将端口绑定到可信网络/仅限 localhost 访问。还可考虑设置VOICEVOX_ALLOWED_OUTPUT_DIRS,以限制文件写入工具可写入的位置。
限制(Docker): Docker 容器没有音频设备,因此默认禁用
voicevox_speak工具(服务端播放)。请改用voicevox_speak_player——它会在客户端(Claude Desktop)播放音频,且不需要服务端具备音频设备。详情请参阅 UI 音频播放器。
MCP 工具
voicevox_speak — 文本转语音
可由 Claude 调用的主要功能。
| 参数 | 描述 | 默认值 |
|---|---|---|
text | 要朗读的文本(多个片段以换行符分隔) | 必填 |
phrases | 内联音调标记(优先于 text) | (未设置) |
speaker | 说话人 ID | 1 |
speedScale | 播放速度 | 1.0 |
immediate | 立即播放(清空队列) | true |
waitForStart | 等待播放开始 | false |
waitForEnd | 等待播放完成 | false |
设置匹配的
--restrict-*选项后,immediate/waitForStart/waitForEnd将从工具架构中移除。
示例:
// Simple text
{ "text": "Hello" }
// Specify speaker
{ "text": "Hello", "speaker": 3 }
// Different speakers per segment
{ "text": "1:Hello\n3:Nice weather today" }
// Wait for completion (synchronous processing)
{ "text": "Wait for this to finish before continuing", "waitForEnd": true }
// Control the accent with inline notation (`,` separates phrases, `[` marks the accent)
{ "text": "こんにちは世界", "phrases": "コン[ニ]チワ,セ[カ]イ" }
内联音调标记
phrases(以及用户词典工具中的读音字段)接受带有内联音调标记的片假名:
,分隔音调短语 —コン[ニ]チワ,セ[カ]イ[标记音高下降的位置;コン[ニ]チワ表示音调在ニ处下降- 如果某个短语省略方括号,VOICEVOX 将保留其自身的音调估算结果
即使提供了 phrases,仍必须填写 text — 在其中传入纯文本,实际朗读的则是标记内容。
voicevox_get_accent_phrases 会以相同格式返回给定文本的音调标记,因此你可以查看估算出的音调、调整方括号,再将结果传回 phrases。
其他工具
| 工具 | 描述 |
|---|---|
voicevox_speak_player | 使用 UI 音频播放器朗读(参见播放器 MCP 工具) |
voicevox_ping | 检查 VOICEVOX Engine 连接 |
voicevox_get_speakers | 获取可用说话人列表 |
voicevox_stop_speaker | 停止播放并清空队列 |
voicevox_synthesize_file | 生成音频文件 |
用户词典工具(dictionary 组):
| 工具 | 描述 |
|---|---|
voicevox_get_accent_phrases | 以内联标记形式获取文本的读音和音调位置 |
voicevox_get_user_dictionary | 列出用户词典词条(筛选 + 分页) |
voicevox_add_user_dictionary_word | 添加词条(读音接受内联音调标记) |
voicevox_update_user_dictionary_word | 更新词条(省略字段将保留原值) |
voicevox_delete_user_dictionary_word | 按 UUID 删除词条 |
voicevox_add_user_dictionary_words | 一次添加多个词条 |
voicevox_update_user_dictionary_words | 一次更新多个词条 |
可以通过 --disable-tools / VOICEVOX_DISABLED_TOOLS 单独关闭任何工具,也可以通过 --disable-groups / VOICEVOX_DISABLED_GROUPS 按组关闭工具。
配置
环境变量
VOICEVOX 设置
| 变量 | 描述 | 默认值 |
|---|---|---|
VOICEVOX_URL | Engine URL | http://localhost:50021 |
VOICEVOX_DEFAULT_SPEAKER | 默认说话人 ID | 1 |
VOICEVOX_DEFAULT_SPEED_SCALE | 播放速度 | 1.0 |
VOICEVOX_RETRY_COUNT | API 请求失败时的重试次数(0 表示禁用) | 2 |
VOICEVOX_RETRY_DELAY_MS | 初始重试延迟,单位为 ms(指数退避) | 250 |
VOICEVOX_TIMEOUT_MS | 单次 VOICEVOX API 请求的超时时间,单位为 ms。长文本或引擎运行缓慢时请调高此值 | 30000 |
播放选项
| 变量 | 描述 | 默认值 |
|---|---|---|
VOICEVOX_USE_STREAMING | 流式播放(需要 ffplay) | false |
VOICEVOX_DEFAULT_POST_PHONEME_LENGTH | 每个片段末尾的静音时长,单位为秒。调高此值可延长排队片段之间的停顿(也可在流式播放时避免语音结尾被截断) | 引擎默认值 |
VOICEVOX_DEFAULT_IMMEDIATE | 立即播放 | true |
VOICEVOX_DEFAULT_WAIT_FOR_START | 等待播放开始 | false |
VOICEVOX_DEFAULT_WAIT_FOR_END | 等待播放结束 | false |
限制 AI 指定某些选项。
| 变量 | 描述 |
|---|---|
VOICEVOX_RESTRICT_IMMEDIATE | 限制 immediate 选项 |
VOICEVOX_RESTRICT_WAIT_FOR_START | 限制 waitForStart 选项 |
VOICEVOX_RESTRICT_WAIT_FOR_END | 限制 waitForEnd 选项 |
禁用工具
# Disable individual tools
export VOICEVOX_DISABLED_TOOLS=speak_player,synthesize_file
# Disable a built-in group of tools
export VOICEVOX_DISABLED_GROUPS=player
# Combine groups and individual tools
export VOICEVOX_DISABLED_GROUPS=dictionary
export VOICEVOX_DISABLED_TOOLS=synthesize_file
VOICEVOX_DISABLED_GROUPS / --disable-groups 的内置分组:
| 分组 | 工具 |
|---|---|
player | speak_player、resynthesize_player、get_player_state、open_dictionary_ui |
dictionary | get_accent_phrases、get_user_dictionary、add_user_dictionary_word、update_user_dictionary_word、delete_user_dictionary_word、add_user_dictionary_words、update_user_dictionary_words |
file | synthesize_file |
apps | speak_player、resynthesize_player、open_dictionary_ui(MCP App UI 工具) |
UI 播放器设置
| 变量 | 描述 | 默认值 |
|---|---|---|
VOICEVOX_PLAYER_DOMAIN | UI 播放器的 Widget 域名(ChatGPT 必填,例如 https://your-app.onrender.com) | (未设置) |
VOICEVOX_AUTO_PLAY | 在 UI 播放器中自动播放音频 | true |
VOICEVOX_PLAYER_EXPORT_ENABLED | 启用从 UI 播放器导出音轨(下载)(设为 false 可禁用) | true |
VOICEVOX_PLAYER_EXPORT_DIR | 导出音轨的默认输出目录(文件夹选择器不可用时也会用作回退目录) | ./voicevox-player-exports |
VOICEVOX_PLAYER_CACHE_DIR | 播放器缓存文件(*.txt)和默认播放器状态文件的目录 | ./.voicevox-player-cache |
VOICEVOX_PLAYER_AUDIO_CACHE_ENABLED | 启用磁盘上的持久音频缓存(false 会禁用磁盘缓存的读写) | true |
VOICEVOX_PLAYER_AUDIO_CACHE_TTL_DAYS | 音频缓存保留天数(0:禁用磁盘缓存,-1:不清理 TTL) | 30 |
VOICEVOX_PLAYER_AUDIO_CACHE_MAX_MB | 音频缓存大小上限(MB)(0:禁用磁盘缓存,-1:无限制) | 512 |
VOICEVOX_PLAYER_STATE_FILE | 持久化播放器状态 JSON 的路径 | <VOICEVOX_PLAYER_CACHE_DIR>/player-state.json |
文件输出设置
| 变量 | 描述 | 默认值 |
|---|---|---|
VOICEVOX_ALLOWED_OUTPUT_DIRS | 以逗号分隔的目录列表,文件写入工具(voicevox_synthesize_file、播放器音轨导出)可在这些目录中写入。目录列表以外的路径会被拒绝并报错。未设置表示不限制——通过 HTTP 暴露服务时建议设置 | (未设置) |
服务端设置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_HTTP_MODE | 启用 HTTP 模式 | false |
MCP_HTTP_PORT | HTTP 端口 | 3000 |
MCP_HTTP_HOST | HTTP 主机 | 0.0.0.0 |
MCP_ALLOWED_HOSTS | 允许的主机(逗号分隔) | localhost,127.0.0.1,[::1] |
MCP_ALLOWED_ORIGINS | 允许的来源(逗号分隔) | http://localhost,http://127.0.0.1,... |
MCP_API_KEY | /mcp 所需的 API 密钥(通过 X-API-Key 或 Authorization: Bearer 发送) | (未设置) |
命令行参数
命令行参数的优先级高于环境变量。
完整且最新的选项列表始终可通过 npx @kajidog/mcp-tts-voicevox --help 查看。
# Basic settings
npx @kajidog/mcp-tts-voicevox --url http://192.168.1.100:50021 --speaker 3 --speed 1.2
# HTTP mode
npx @kajidog/mcp-tts-voicevox --http --port 8080
# With restrictions
npx @kajidog/mcp-tts-voicevox --restrict-immediate --restrict-wait-for-end
# Disable individual tools
npx @kajidog/mcp-tts-voicevox --disable-tools speak_player,synthesize_file
# Disable a tool group
npx @kajidog/mcp-tts-voicevox --disable-groups player
| 参数 | 描述 |
|---|---|
--help, -h | 显示帮助 |
--version, -v | 显示版本 |
--init | 使用默认设置生成 .voicevoxrc.json |
--config <path> | 配置文件路径 |
--url <value> | VOICEVOX Engine URL |
--speaker <value> | 默认说话人 ID |
--speed <value> | 播放速度 |
--use-streaming / --no-use-streaming | 流式播放 |
--post-phoneme-length <sec> | 每段末尾的静音时长(排队片段之间的暂停) |
--immediate / --no-immediate | 立即播放 |
--wait-for-start / --no-wait-for-start | 等待开始 |
--wait-for-end / --no-wait-for-end | 等待结束 |
--restrict-immediate | 限制 immediate |
--restrict-wait-for-start | 限制 waitForStart |
--restrict-wait-for-end | 限制 waitForEnd |
--allowed-output-dirs <dirs> | 文件写入工具可写入的目录(逗号分隔;未设置 = 不限制) |
--disable-tools <tools> | 禁用工具(逗号分隔的工具名称) |
--disable-groups <groups> | 禁用工具组:player、dictionary、file、apps |
--auto-play / --no-auto-play | 在 UI 播放器中自动播放 |
--player-export / --no-player-export | 启用/禁用 UI 播放器中的曲目导出(下载) |
--player-export-dir <dir> | 导出曲目的默认输出目录 |
--player-cache-dir <dir> | 播放器缓存目录 |
--player-state-file <path> | 播放器状态持久化文件路径 |
--player-audio-cache / --no-player-audio-cache | 启用/禁用播放器的磁盘音频缓存 |
--player-audio-cache-ttl-days <days> | 音频缓存保留天数(0:禁用,-1:不进行 TTL 清理) |
--player-audio-cache-max-mb <mb> | 音频缓存大小上限(MB)(0:禁用,-1:无限制) |
--http | HTTP 模式 |
--port <value> | HTTP 端口 |
--host <value> | HTTP 主机 |
--allowed-hosts <hosts> | 允许的主机(逗号分隔) |
--allowed-origins <origins> | 允许的来源(逗号分隔) |
--api-key <key> | /mcp 所需的 API 密钥 |
配置文件(.voicevoxrc.json)
你可以使用 JSON 配置文件代替环境变量和 CLI 参数,也可以与它们一同使用。设置项较多时,这种方式会很有用。
优先级顺序: CLI 参数 > 环境变量 > 配置文件 > 默认值
生成配置文件
npx @kajidog/mcp-tts-voicevox --init
这会在当前目录中创建包含所有默认设置的 .voicevoxrc.json。可按需编辑。
使用自定义配置文件路径
npx @kajidog/mcp-tts-voicevox --config ./my-config.json
也可以通过环境变量设置:
VOICEVOX_CONFIG=./my-config.json npx @kajidog/mcp-tts-voicevox
.voicevoxrc.json 示例
{
"url": "http://192.168.1.50:50021",
"speaker": 3,
"speed": 1.2,
"http": true,
"port": 8080,
"disable-tools": ["synthesize_file"],
"disable-groups": ["dictionary"]
}
键可以使用 kebab-case(use-streaming)、camelCase(useStreaming)或内部键名(defaultSpeaker)。如果当前目录中存在 .voicevoxrc.json,系统会自动加载。
HTTP 模式
用于远程连接:
启动服务端:
# Linux/macOS
MCP_HTTP_MODE=true MCP_HTTP_PORT=3000 npx @kajidog/mcp-tts-voicevox
# Windows PowerShell
$env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox
Claude Desktop 配置(使用 mcp-remote):
{
"mcpServers": {
"tts-mcp-proxy": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:3000/mcp"]
}
}
}
使用 Claude Code 时,可以在 .mcp.json 中通过自定义标头为不同项目配置不同的默认说话人:
| 标头 | 说明 |
|---|---|
X-Voicevox-Speaker | 此项目的默认说话人 ID |
X-API-Key | 配置了 MCP_API_KEY 时使用的 API 密钥 |
.mcp.json 示例:
{
"mcpServers": {
"tts": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"X-Voicevox-Speaker": "113",
"X-API-Key": "your-api-key"
}
}
}
}
这样,每个项目都会自动使用不同的语音角色。
优先级顺序:
- 工具调用中明确指定的
speaker参数(最高) - 来自
X-Voicevox-Speaker标头的项目默认值 - 全局
VOICEVOX_DEFAULT_SPEAKER设置(最低)
WSL 到 Windows 主机的连接
从 WSL 连接到在 Windows 上运行的 MCP 服务:
1. 从 WSL 获取 Windows 主机 IP
# Method 1: From default gateway
ip route show | grep -oP 'default via \K[\d.]+'
# Usually in the format 172.x.x.1
# Method 2: From /etc/resolv.conf (WSL2)
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
2. 在 Windows 上启动服务
将 WSL 网关 IP 添加到 MCP_ALLOWED_HOSTS,以允许从 WSL 访问:
$env:MCP_HTTP_MODE='true'
$env:MCP_ALLOWED_HOSTS='localhost,127.0.0.1,172.29.176.1'
npx @kajidog/mcp-tts-voicevox
或使用 CLI 参数:
npx @kajidog/mcp-tts-voicevox --http --allowed-hosts "localhost,127.0.0.1,172.29.176.1"
3. WSL 配置(.mcp.json)
{
"mcpServers": {
"tts": {
"type": "http",
"url": "http://172.29.176.1:3000/mcp"
}
}
}
⚠️ 在 WSL 中,
localhost指的是 WSL 本身。请使用 WSL 网关 IP 访问 Windows 主机。
与 ChatGPT 搭配使用
要与 ChatGPT 搭配使用,请将 MCP 服务以 HTTP 模式部署到云端,并确保其能够访问 VOICEVOX Engine。
1. 部署到云端
使用 Docker 部署到 Render、Railway 等平台(已包含 Dockerfile)。
2. 设置 VOICEVOX Engine
在本地运行 VOICEVOX Engine 并通过 ngrok 暴露,或将其与 MCP 服务一同部署。
3. 配置环境变量
| 变量 | 示例 | 说明 |
|---|---|---|
VOICEVOX_URL | https://xxxx.ngrok-free.app | VOICEVOX Engine URL |
MCP_HTTP_MODE | true | 启用 HTTP 模式 |
MCP_ALLOWED_HOSTS | your-app.onrender.com | 部署的主机名 |
VOICEVOX_PLAYER_DOMAIN | https://your-app.onrender.com | UI 播放器的组件域名(ChatGPT 必需) |
VOICEVOX_DISABLED_TOOLS | speak | 禁用服务端播放(无音频设备) |
VOICEVOX_PLAYER_EXPORT_ENABLED | false | 禁用导出功能(无法从云端下载文件) |
4. 在 ChatGPT 中添加连接器
前往 ChatGPT 设置 → 连接器 → 添加 MCP 服务 URL(https://your-app.onrender.com/mcp)。
与 Claude Web 搭配使用
基本步骤与 ChatGPT 相同,但 VOICEVOX_PLAYER_DOMAIN 的值不同。
Claude Web 要求 ui.domain 使用基于哈希的专用域名。使用以下命令计算:
node -e "console.log(require('crypto').createHash('sha256').update('Your MCP server URL').digest('hex').slice(0,32)+'.claudemcpcontent.com')"
示例:如果 MCP 服务 URL 为 https://your-app.onrender.com/mcp:
node -e "console.log(require('crypto').createHash('sha256').update('https://your-app.onrender.com/mcp').digest('hex').slice(0,32)+'.claudemcpcontent.com')"
# Example output: 48fb73a6...claudemcpcontent.com
将此输出值设置为 VOICEVOX_PLAYER_DOMAIN。
注意:由于 ChatGPT 和 Claude Web 要求使用不同的
VOICEVOX_PLAYER_DOMAIN值,单个实例无法同时为两个客户端提供服务。请分别部署独立实例,或根据目标客户端切换环境变量。
故障排除
没有播放音频
1. 检查 VOICEVOX Engine 是否正在运行
curl http://localhost:50021/speakers
2. 检查平台专用的播放工具
| 操作系统 | 所需工具 |
|---|---|
| Linux | aplay、paplay、play、ffplay 中的任意一个 |
| macOS | afplay(预装) |
| Windows | PowerShell(预装) |
MCP 客户端无法识别
- 检查软件包是否已安装:
npm list -g @kajidog/mcp-tts-voicevox - 确认配置文件中的 JSON 语法正确
- 重启客户端
Package 结构
| Package | 描述 |
|---|---|
@kajidog/mcp-tts-voicevox | MCP 服务(apps/mcp-tts) |
@kajidog/voicevox-client | 通用 VOICEVOX 客户端库(可独立使用) |
@kajidog/mcp-core | 共享 MCP 基础设施(配置架构、HTTP/stdio 启动器)。不发布 — 随 MCP 服务一起打包 |
@kajidog/player-ui | 基于 React 的音频播放器 UI,打包为单个 HTML 文件。不发布 |
开发者信息
设置
git clone https://github.com/kajidog/mcp-tts-voicevox.git
cd mcp-tts-voicevox
pnpm install
命令
包管理器为 pnpm(不支持 npm / yarn)。
| 命令 | 描述 |
|---|---|
pnpm build | 构建所有 Package |
pnpm test | 运行测试 |
pnpm lint | 运行 lint(对整个工作区执行一次 Biome 检查) |
pnpm typecheck | 对每个 Package 进行类型检查 |
pnpm changeset | 为面向用户的更改添加 changeset |
开发服务器位于 MCP 服务 Package 中,因此请使用筛选器运行:
| 命令 | 描述 |
|---|---|
pnpm --filter @kajidog/mcp-tts-voicevox dev | 启动开发服务器(stdio) |
pnpm --filter @kajidog/mcp-tts-voicevox dev:http | 以 HTTP 模式启动开发服务器 |
pnpm --filter @kajidog/mcp-tts-voicevox dev:bun | 使用 Bun 启动开发服务器 |
pnpm --filter @kajidog/mcp-tts-voicevox dev:bun:http | 使用 Bun 启动 HTTP 开发服务器 |
许可证
ISC
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。





