音乐编程服务器

Sonic Pi MCP是一个基于自然语言的音乐编程服务器,通过LLM客户端生成Sonic Pi代码并通过OSC协议发送,适用于音乐创作和现场表演。

  • by abhishekjairath
  • TypeScript
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 abhishekjairath/sonic-pi-mcp

使用说明

Sonic Pi MCP

模型上下文协议(MCP)服务器 **索尼克Pi**用自然语言描述你的法学硕士客户的音乐;该模型生成Sonic Pi代码,该服务器将其发送 开源协作.使用随附的 队列管理器 Sonic Pi中用于分段之间的交叉射击。

特性

  • queue_segment --发送下一个完整的音乐片段(名为 live_loops use_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
  • Node.js 18+ (npx / node)
  • 支持MCP的客户端(Cursor、Claude Desktop、带MCP的VS Code等)

可选: 包子 促进地方发展(bun run dev).

一次性Sonic Pi设置(队列运行器)

  1. 打开Sonic Pi。
  2. 复制 sonic-pi-queue.rb 进入缓冲区。
  3. 按 跑 让它继续运行。

缓冲区在默认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 dev

OSC烟雾测试(Sonic Pi+转轮运行):

bun run test

MCP检查员

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错误 --生成的代码无法解析或运行;修复代码段(括号、示例、语法)并再次发送。队列运行器在失败时打印代码片段。

许可证

麻省理工学院——见 许可证.