Sonic Pi MCP
Interact with Sonic Pi, the live coding music synth, using OSC messages.
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 (namedlive_loops,use_bpm, etc.).run_code— same asqueue_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)
- Open Sonic Pi.
- Copy sonic-pi-queue.rb into a buffer.
- 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-mcp
Point 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 dev
OSC smoke test (Sonic Pi + runner running):
bun run test
MCP Inspector
npx @modelcontextprotocol/inspector
Use 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_PORTmatch. - Layers pile up — Use
queue_segmentwith namedlive_loops; usestop_allonly for a full reset. Module not found "src/server.ts"(Claude) — Usebin/mcp-dev.shascommandwith emptyargs, or absolute paths; don’t rely oncwdalone.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.
関連サーバー
Alpha Vantage MCP Server
スポンサーAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Memorix
Cross-agent memory bridge with knowledge graph, workspace sync, and auto-memory hooks. Supports Windsurf, Cursor, Claude Code, Codex, and VS Code Copilot.
Knowledge Graph Memory Server
Enables persistent memory for Claude using a local knowledge graph of entities, relations, and observations.
Shell Executor
Execute shell commands safely on a remote server.
BundlerMCP
Query information about dependencies in a Ruby project's Gemfile.
Crypto_MCP
A server for cryptographic operations like encryption, decryption, and hashing.
portkey-admin-mcp
Full MCP server for the https://portkey.ai AI Gateway Admin API with 151 tools across 18 domains.
S3 Documentation MCP Server
A lightweight Model Context Protocol (MCP) server that brings RAG (Retrieval-Augmented Generation) capabilities to your LLM over Markdown documentation stored on S3.
Agile Planner MCP Server
An AI-powered server for generating agile artifacts like backlogs, features, and user stories.
Criage MCP Server
An MCP server for the Criage package manager, providing full client functionality via the MCP protocol.
Hyper MCP
A fast, secure, and extensible MCP server using WebAssembly plugins.