sonic-pi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SONIC_PI_HOME | No | Custom Sonic Pi user-home root for logs and configuration. Optional. | |
| SONIC_PI_ROOT | Yes | Path to the Sonic Pi root directory, required for the server to locate daemon.rb and other resources. | |
| SONIC_PI_MCP_RUNTIME_DIR | No | Writable directory for temporary run_file buffers. Defaults to platform-specific cache directory (e.g., ~/.cache/sonic-pi-mcp). | |
| SONIC_PI_MCP_STARTUP_TIMEOUT | No | Timeout in seconds for Sonic Pi startup. Default: 60. | |
| SONIC_PI_MCP_EVENT_BUFFER_SIZE | No | Maximum number of events stored in the event buffer. Default: 5000. | |
| SONIC_PI_MCP_DEFAULT_COLLECT_MS | No | Default collection time in milliseconds for tool calls. Default: 1500. | |
| SONIC_PI_MCP_KEEPALIVE_INTERVAL | No | Interval in seconds for keep-alive messages. Default: 4. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sonic_startC | Start a managed local Sonic Pi runtime. |
| sonic_statusB | Return current Sonic Pi session status. |
| sonic_preflightB | Check whether the local environment looks ready to start Sonic Pi. |
| sonic_run_codeC | Run Sonic Pi code in the managed runtime and return newly collected events. |
| sonic_play_fileB | Run a local Sonic Pi .rb file in the managed runtime. |
| sonic_start_recordingC | Start Sonic Pi's built-in WAV recorder. |
| sonic_stop_recordingC | Stop Sonic Pi's built-in WAV recorder. |
| sonic_save_recordingC | Save the current Sonic Pi recording to a WAV file. |
| sonic_delete_recordingC | Delete Sonic Pi's temporary recording. |
| sonic_record_fileC | Start Sonic Pi if needed, record a .rb file for a fixed duration, and save WAV output. |
| sonic_stopC | Stop all running Sonic Pi jobs. |
| sonic_shutdownA | Shut down the managed Sonic Pi runtime. |
| sonic_read_eventsC | Read buffered Sonic Pi events after an optional sequence number. |
| sonic_get_logsB | Read Sonic Pi log tails. Source can be gui, spider, daemon, supersonic, or scsynth. |
| sonic_send_cueC | Send an external OSC cue into Sonic Pi's cue server. |
| sonic_search_docsC | Search local Sonic Pi markdown documentation and snippets. |
| sonic_list_samplesC | List bundled Sonic Pi sample names. |
| sonic_list_synthsB | List bundled Sonic Pi synth names. |
| sonic_list_fxB | List bundled Sonic Pi FX names. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools have a clear, distinct purpose, such as runtime lifecycle versus recording versus code execution. The only mild overlap is between sonic_shutdown and sonic_stop, which could confuse an agent about whether to stop jobs or shut down the entire runtime.
All tools follow the same sonic_ prefix with snake_case verb_noun or verb naming. The pattern is highly predictable and consistent across lifecycle, recording, and inspection tools.
With 19 tools, the set is on the heavier side but well-scoped for the domain. The number reflects the broad functionality (runtime, recording, code execution, and resource listing) without being excessive or redundant.
The tool surface covers the main workflows: starting and stopping the runtime, executing code, recording audio, and inspecting bundled resources. Minor gaps exist, such as no per-job management or a dedicated tool to list running jobs, but these are not critical for typical usage.