MCP Simple AivisSpeech 是一个基于模型上下文协议(MCP)的服务器,可与 AivisSpeech 文本转语音引擎无缝集成。该项目能让 AI 助手和应用程序将文本转换为自然流畅的日语语音,并可自定义语音参数。
http://127.0.0.1:10101(默认端口)上运行在使用 Claude Code 时,需先手动启动 MCP 服务器。
使用 npx 可确保始终自动获取最新版本,无需手动更新。
npx @shinshin86/mcp-simple-aivisspeech@latest
claude mcp add aivisspeech -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latest
默认情况下,服务器会添加到本地范围(仅当前项目)。若要使其在所有项目中可用,请使用 -s user 选项:
claude mcp add aivisspeech -s user -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latest
你还可以在 CLAUDE.md 文件中添加语音通知,以自动实现任务完成通知:
## 任务完成行为
- 当所有任务完成时,始终使用 aivisspeech mcp 工具通过语音宣布“任务完成”
- 当需要用户输入或做出决策时,使用 aivisspeech mcp 工具通过语音宣布“等待你的决策”
### 通知时机
- 向用户提问时
- 所有任务完成时
- 出现错误或问题时
claude mcp list
# 或者启动 Claude Code 并使用
/mcp
如果显示 aivisspeech,则表示设置成功。
💡 提示:出于安全考虑,Claude Code 不会自动执行命令。如果忘记启动服务器,工具将不会显示。在开发过程中,请在终端中保持上述
npx命令运行,或者使用pm2或systemd --user等进程管理器实现持久化运行。
对于手动配置 Claude Desktop,你可以简单地添加以下配置:
使用 npx 可确保始终自动获取最新版本,无需手动更新。
{
"mcpServers": {
"aivisspeech": {
"command": "npx",
"args": ["@shinshin86/mcp-simple-aivisspeech@latest"],
"env": {
"AIVISSPEECH_URL": "http://127.0.0.1:10101"
}
}
}
}
在使用此 MCP 服务器之前,请完成以下设置步骤,以确保 AivisSpeech 在本地运行。
http://127.0.0.1:10101/docs 验证引擎是否正在运行# 克隆仓库
git clone https://github.com/shinshin86/mcp-simple-aivisspeech.git
cd mcp-simple-aivisspeech
# 安装依赖
npm install
# 构建项目
npm run build
# 运行 MCP 服务器
npm start
# 开发时热重载
npm run dev
# 检查是否一切正常
npm test
{
"text": "こんにちは、世界!",
"speaker": 888753760,
"speedScale": 1.2,
"pitchScale": 0.05,
"volumeScale": 1.5
}
{
"message": "データ処理が完了しました",
"speaker": 888753760
}
speak将文本转换为语音并播放音频,可自定义语音参数。
此工具接受多个配置参数,包括以下选项:
text (必需):要转换为语音的文本speaker (可选):说话者/语音 ID(默认:888753760 - Anneli ノーマル)speedScale (可选):语音速度乘数(0.5 - 2.0,默认:1.0)pitchScale (可选):音高调整(-0.15 - 0.15,默认:0.0)volumeScale (可选):音量级别(0.0 - 2.0,默认:1.0)playAudio (可选):是否播放生成的音频(默认:true)get_speakers检索所有可用的语音角色及其风格列表。
此函数返回:包含说话者 ID、名称和可用语音风格的列表。
notify_completion任务完成时播放语音通知。
此工具接受多个配置参数,包括以下选项:
message (可选):要宣布的完成消息(默认:"処理が完了しました")speaker (可选):通知语音的说话者 ID(默认:888753760 - Anneli ノーマル)check_engine_status检查 AivisSpeech 引擎的当前状态和版本。
此函数返回:引擎状态、版本信息和连接详细信息。
| 平台 | 音频命令 | 要求 |
|---|---|---|
| macOS | afplay |
内置(无需额外设置) |
| Windows | PowerShell Media.SoundPlayer | Windows PowerShell |
| Linux | aplay |
ALSA utils(sudo apt install alsa-utils) |
# 开发与构建
npm run dev # 热重载运行(tsx)
npm run build # 将 TypeScript 编译到 dist/
npm start # 运行编译后的服务器
# 代码质量
npm run lint # 运行 ESLint
npm run test # 运行 Vitest 测试(单次运行)
npm run test:watch # 以监视模式运行测试
npm run test:ui # 以 UI 模式运行测试
npm run test:coverage # 运行测试并生成覆盖率报告
# 实用工具
npm run clean # 清理 dist/ 目录
在生产环境中使用 MCP 客户端时,在 MCP 配置中使用 npx @shinshin86/mcp-simple-aivisspeech@latest。无需本地设置,且始终获取最新版本。
对于开发,克隆仓库并使用 npm run dev 进行热重载,或使用 npm run build && npm start 测试生产构建。
mcp-simple-aivisspeech/
├── src/
│ ├── index.ts # MCP 服务器和工具处理程序
│ └── aivisspeech-client.ts # AivisSpeech API 客户端
├── tests/
│ └── aivisspeech-client.test.ts # 单元测试
├── dist/ # 编译输出
├── docs/ # 文档
└── config files # TS、ESLint、Vitest 配置文件
AivisSpeechClient 类提供了全面的功能,具备以下关键能力:
src/index.ts 的 CallToolRequestSchema 中添加处理程序AivisSpeechClient 类aivisspeech-client.ts 中的接口Error: Failed to get version: connect ECONNREFUSED 127.0.0.1:10101
解决此问题可考虑以下故障排除方法:确保 AivisSpeech 引擎在正确的端口上运行。
Error: Audio player exited with code 1
解决此问题可考虑以下故障排除方法:
afplay 是否可用sudo apt install alsa-utils)Error: spawn afplay EACCES
解决此问题可考虑以下故障排除方法:检查文件权限和系统音频设置。
要启用详细日志记录,请运行以下命令:
DEBUG=mcp-aivisspeech npm run dev
本项目采用 Apache 许可证 2.0 - 详情请参阅 LICENSE 文件。
我们欢迎社区的贡献。贡献者可以通过完成以下基本步骤开始:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)❤️ 为日语 TTS 社区精心打造