sonicpi-mcp
Enables AI-powered music generation and control of Sonic Pi through natural language requests using OSC.
README
Sonic Pi MCP Server
A local MCP server that controls Sonic Pi via OSC with AI-powered music generation.
How It Works
- MCP Server receives natural language requests
- AI Generator converts requests to Sonic Pi code (patterns or OpenAI)
- OSC Client sends code to Sonic Pi via OSC
- Sonic Pi executes the code and plays music
Setup
1. Install Dependencies
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .
2. Configure Sonic Pi
Add this code to Sonic Pi and click "Run":
live_loop :mcp_listener do
use_real_time
code_message = sync "/osc*/mcp/code"
begin
eval(code_message[0])
rescue => e
puts "Error executing code: #{e.message}"
end
end
3. Optional: Add OpenAI API Key
cp .env_example .env
# Edit .env and add: OPENAI_API_KEY=your-key-here
4. Run Server
python -m sonicpi_mcp
Usage
Via Cursor (Recommended)
- Ensure server is running
- Use commands like: "create a rock beat", "make techno music", "play jazz piano"
Via Command Line
# Create and play music
echo '{"tool": "create_and_play", "args": {"request": "create a rock drum beat"}}' | python3 -m sonicpi_mcp
# Run Sonic Pi code directly
echo '{"tool": "run_code", "args": {"source": "play 60, amp: 2"}}' | python3 -m sonicpi_mcp
# Set BPM
echo '{"tool": "set_bpm", "args": {"bpm": 120}}' | python3 -m sonicpi_mcp
# Stop all
echo '{"tool": "stop_all", "args": {}}' | python3 -m sonicpi_mcp
Available Tools
create_and_play- Generate and play music from natural languagerun_code- Execute Sonic Pi code directlyset_bpm- Set tempostop_all- Stop all audiocue- Send cue messagesgenerate_music- Generate code without playinglist_patterns- Show available patternsget_pattern- Get specific patterntail_logs- View recent logsdiagnose- Check connection status
Troubleshooting
No sound? Ensure the Sonic Pi listener live_loop is running.
Port issues? Server auto-discovers Sonic Pi's port. Check with: echo '{"tool": "diagnose", "args": {}}' | python3 -m sonicpi_mcp
OSC not working? Check Sonic Pi's Network settings and enable "Allow incoming OSC messages".
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.