sonic-pi-mcp
Model Context Protocol (MCP) server for controlling Sonic Pi through AI assistants
Documentation
Sonic Pi MCP
Model Context Protocol (MCP) server for **Sonic Pi. Describe music in natural language in your LLM client; the model generates Sonic Pi code and this server sends it over OSC. Use the included queue runner** in Sonic Pi for crossfades between segments.
Features
- `queue_segment` — send the next full musical segment (named `live_loop`s, `use_bpm`, etc.).
- `run_code` — same as `queue_segment` (compatibility).
- `stop_all` — hard stop via OSC (`/stop-all-jobs`), like Sonic Pi’s Stop.
- `play_note` — quick test note.
- Resource — DJ session craft, vocabulary, and tool usage (read from the MCP client).
- Prompt `next_performance_segment` — help frame the next block for longer sets.
- Env — `OSC_HOST`, `OSC_PORT`, `OSC_CODE_PATH`, `OSC_STOP_ALL_PATH`.
Prerequisites
- Sonic Pi v4.x
- Node.js 18+ (`npx` / `node`)
- An MCP-capable client (Cursor, Claude Desktop, VS Code with MCP, etc.)
Optional: Bun for local development (`bun run dev`).
One-time Sonic Pi setup (queue runner)
1. Open Sonic Pi.
2. Copy **sonic-pi-queue.rb** into a buffer.
3. Press Run and leave it running.
The buffer listens on the default OSC port and crossfades between segments sent by the MCP.
Install the MCP server
npx -y sonic-pi-mcpPoint your client at this command over stdio (see below).
Cursor
Use `~/.cursor/mcp.json` and/or `.cursor/mcp.json` in a project:
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "npx",
"args": ["-y", "sonic-pi-mcp"]
}
}
}Local clone (after `npm install` or `bun install` and `bun run build`):
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "node",
"args": ["/absolute/path/to/sonic-pi-mcp/bin/cli.mjs"]
}
}
}Bun without building — some clients ignore `cwd`; use an absolute path to `src/server.ts`, or use the launcher:
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "/absolute/path/to/sonic-pi-mcp/bin/mcp-dev.sh",
"args": []
}
}
}Run `chmod +x bin/mcp-dev.sh` once. The script changes into the repo and runs `bun run src/server.ts`.
Claude Desktop
`~/Library/Application Support/Claude/claude_desktop_config.json` (paths differ on Windows):
{
"mcpServers": {
"sonic_pi_mcp": {
"command": "npx",
"args": ["-y", "sonic-pi-mcp"]
}
}
}For a local clone, prefer `bin/mcp-dev.sh` (see above) if you see `Module not found "src/server.ts"` or `spawn bunx ENOENT`. Remove and re-add the MCP in the app if an old definition is cached.
VS Code
Configure your MCP extension to run `npx` with `-y` and `sonic-pi-mcp`, stdio transport, per the extension’s docs.
Environment variables
| Variable | Default | Meaning |
|---|---|---|
| `OSC_HOST` | `127.0.0.1` | Sonic Pi host |
| `OSC_PORT` | `4560` | Sonic Pi OSC port |
| `OSC_CODE_PATH` | `/run-code` | OSC path for code (must match your Sonic Pi buffer) |
| `OSC_STOP_ALL_PATH` | `/stop-all-jobs` | Hard stop path |
Allow incoming OSC in Sonic Pi if you connect from another machine; set `OSC_HOST` accordingly.
Development
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 smoke test (Sonic Pi + runner running):
bun run testMCP Inspector
npx @modelcontextprotocol/inspectorUse `node` with argument `bin/cli.mjs` and this directory as the working directory (after `bun run build`).
Troubleshooting
- No sound — Sonic Pi open? Queue buffer running? Port 4560 reachable?
- Nothing happens — OSC enabled in Sonic Pi; `OSC_HOST` / `OSC_PORT` match.
- Layers pile up — Use `queue_segment` with named `live_loop`s; use `stop_all` only for a full reset.
- `Module not found "src/server.ts"` (Claude) — Use `bin/mcp-dev.sh` as `command` with empty `args`, or absolute paths; don’t rely on `cwd` alone.
- `resources/list` / `prompts/list` → Method not found — You’re on an older build that only exposed tools. Reinstall/restart the MCP from this repo or npm so resources and prompts are registered.
- Ruby errors in Sonic Pi log — The generated code failed to parse or run; fix the snippet (brackets, samples, syntax) and send again. The queue runner prints a code snippet on failure.
License
MIT — see LICENSE.
Frequently asked questions
What is sonic-pi-mcp?
sonic-pi-mcp is Model Context Protocol (MCP) server for controlling Sonic Pi through AI assistants
How do I install sonic-pi-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is sonic-pi-mcp open source?
Yes — it is hosted on GitHub at https://github.com/abhishekjairath/sonic-pi-mcp and has 8 stars.
Related MCP tools
🍒 Cherry Studio is a desktop client that supports for multiple LLM providers. Built for the Model Context Protocol to enhance AI capabilities.
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini...
FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, ...
Composio equips your AI agents & LLMs with 100+ high-quality integrations via function calling for the Model Context Protocol. Enhance AI assistants with powerf
📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Lan...
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Ag...
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP