Sonic Pi MCP
模型上下文协议(MCP)服务器 索尼克Pi用自然语言描述你的法学硕士客户的音乐;该模型生成Sonic Pi代码,该服务器将其发送 开源协作.使用随附的 队列管理器 Sonic Pi中用于分段之间的交叉射击。
特性
queue_segment--发送下一个完整的音乐片段(名为live_loopsuse_bpm等等)。run_code--与queue_segment(兼容性)。stop_all--通过OSC进行硬停止(/stop-all-jobs)就像Sonic Pi的Stop一样。play_note--快速测试笔记。- 资源 --DJ会话技巧、词汇和工具使用(从MCP客户端读取)。
- 提示
next_performance_segment--帮助为更长的集合构建下一个块。 - 环境 —
OSC_HOST,OSC_PORT,OSC_CODE_PATH,OSC_STOP_ALL_PATH.
先决条件
- 索尼克Pi v4.x
- 18+ (
npx/node) - 支持MCP的客户端(Cursor、Claude Desktop、带MCP的VS Code等)
可选: 包子 促进地方发展(bun run dev).
一次性Sonic Pi设置(队列运行器)
- 打开Sonic Pi。
- 复制 sonic-pi-queue.rb 进入缓冲区。
- 按 跑 让它继续运行。
缓冲区在默认OSC端口上侦听,并在MCP发送的段之间交叉发送。
安装MCP服务器
npx -y sonic-pi-mcp将您的客户指向以下命令 标准 (见下文)。
光标
使用 ~/.cursor/mcp.json 和 .cursor/mcp.json 在一个项目中:
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "npx",
"args": ["-y", "sonic-pi-mcp"]
}
}
}本地克隆 (之后 npm install 或 bun install 和 bun run build):
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "node",
"args": ["/absolute/path/to/sonic-pi-mcp/bin/cli.mjs"]
}
}
}Bun无建筑 --一些客户忽略 cwd;使用 绝对的 通往 src/server.ts,或使用启动器:
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "/absolute/path/to/sonic-pi-mcp/bin/mcp-dev.sh",
"args": []
}
}
}跑 chmod +x bin/mcp-dev.sh 一次。脚本更改为repo并运行 bun run src/server.ts.
克劳德桌面版
~/Library/Application Support/Claude/claude_desktop_config.json (Windows上的路径不同):
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "npx",
"args": ["-y", "sonic-pi-mcp"]
}
}
}对于一个 本地克隆,更喜欢 bin/mcp-dev.sh (见上文)如果你看到 Module not found "src/server.ts" 或 spawn bunx ENOENT。如果缓存了旧定义,请在应用程序中删除并重新添加MCP。
VS Code
配置您的MCP扩展以运行 npx 随着 -y 和 sonic-pi-mcp, 标准 运输,根据扩展文件。
环境变量
| 变量 | 默认值 | 含义 |
|---|---|---|
OSC_HOST | 127.0.0.1 | Sonic Pi主机 |
OSC_PORT | 4560 | Sonic Pi OSC端口 |
OSC_CODE_PATH | /run-code | 代码的OSC路径(必须与Sonic Pi缓冲区匹配) |
OSC_STOP_ALL_PATH | /stop-all-jobs | 硬停车路径 |
允许 传入OSC 如果您从另一台机器连接,请使用Sonic Pi;集 OSC_HOST 因此。
发展
git clone https://github.com/abhishekjairath/sonic-pi-mcp.git
cd sonic-pi-mcp
bun install # or npm install
bun run build
bun run devOSC烟雾测试(Sonic Pi+转轮运行):
bun run testMCP检查员
npx @modelcontextprotocol/inspector使用 node 有争论 bin/cli.mjs 此目录作为工作目录(之后 bun run build).
故障排除
- 没有声音 --Sonic Pi打开了吗?队列缓冲区正在运行?港口 4560 可达成的?
- 无事发生 --Sonic Pi中启用了OSC;
OSC_HOST/OSC_PORT比赛。 - 层层堆积 --使用
queue_segment随着 命名live_loops、 使用stop_all仅用于完全重置。 Module not found "src/server.ts"(克劳德) --使用bin/mcp-dev.sh作为command与空args,或绝对路径;不要依赖cwd独自一人。resources/list/prompts/list→ 未找到方法 --您使用的是只公开工具的旧版本。从这个仓库或npm重新安装/重启MCP,以便注册资源和提示。- Sonic Pi日志中的Ruby错误 --生成的代码无法解析或运行;修复代码段(括号、示例、语法)并再次发送。队列运行器在失败时打印代码片段。
许可证
麻省理工学院——见 许可证.
