Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Make sound with SuperCollider: synths, drums, chords, melodies and soundscapes over OSC.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SC_HOST, SC_PORTYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"supercollider": {
"command": "uvx",
"args": [
"supercollider-mcp"
],
"env": {
"SC_HOST": "your-value",
"SC_PORT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add supercollider --env SC_HOST=your-value --env SC_PORT=your-value -- uvx supercollider-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"supercollider": {
"command": "uvx",
"args": [
"supercollider-mcp"
],
"env": {
"SC_HOST": "your-value",
"SC_PORT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"supercollider": {
"type": "stdio",
"command": "uvx",
"args": [
"supercollider-mcp"
],
"env": {
"SC_HOST": "your-value",
"SC_PORT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
SC_HOST envSC_PORT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account Tok, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.1) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, LexPact UK Contracts
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Generate UK-law contracts: NDA, service, freelance, recruiter terms of business, IR35.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A Model Context Protocol server that lets AI assistants make sound with SuperCollider. Ask for "a dark ambient drone with slow swells" or "a breakbeat at 170 under a Cm7-Fm7 arpeggio" and it plays on your SuperCollider server.
default synth or on sc3-plugins.Am7, Bbmaj9 and G/B, drum patterns are readable step strings the assistant can write itself, and generative tools take a seed so a result you like can be replayed exactly.stop_all silences everything this server started.scsynth, has to be running.1. Install and boot SuperCollider. Install it from the downloads page (or brew install --cask supercollider on macOS, sudo apt install supercollider on Debian/Ubuntu), then boot the server:
s.boot;)scsynth -u 571102. Add the MCP server to your assistant.
Claude Code:
claude mcp add supercollider -- uvx supercollider-mcp
Claude Desktop, Cursor, Cline, Roo Code and other clients that use an mcpServers config:
{
"mcpServers": { "supercollider": { "command": "uvx", "args": ["supercollider-mcp"] } } }
To run the latest code from GitHub instead of the PyPI release, use "args": ["--from", "git+https://github.com/Tok/SuperColliderMCP", "supercollider-mcp"].
3. Ask for something. Start with "play a test sound" to check the connection, then try the prompts below.
| Setting | Flag | Environment | Default |
|---|---|---|---|
| scsynth host | --host | SC_HOST | 127.0.0.1 |
| scsynth UDP port | --port | SC_PORT | 57110 |
| log level (stderr) | --log-level | WARNING |
For example "args": ["supercollider-mcp", "--port", "57111"].
| Tool | What it does |
|---|---|
server_status | Connection check: scsynth version, CPU, running playbacks, recent server errors |
stop_all | Silence everything this server started and cancel scheduled notes |
play_example_osc | A short test chime |
play_synth | One note on sine, saw, square, noise, fm, pad or pluck |
create_layered_synth | A thick unison: several detuned copies of one note spread in stereo |
create_lfo_modulation | A held note with a server-side LFO on pitch, volume, filter or pan |
create_granular_texture | A cloud of 5–100 tiny grains per second, scattered in pitch and space |
play_melody | A generated melody in one of 14 scales that resolves to the tonic |
create_sequence | A melody you spell out: "C4 E4_ G4_ . C5+" |
create_chord_progression | Chord symbols as pads, staccato stabs, 8th-note arpeggios or power chords |
create_drum_pattern | four_on_floor, breakbeat, shuffle, half_time, two_step, random, or your own |
create_generative_rhythm | Drums that keep mutating: minimal, techno, glitch, jazz, ambient |
create_ambient_soundscape | A drone with overlapping swells in a calm, dark, bright, mysterious or chaotic mood |
Most tools also take volume (0–1) and an optional effects object:
{"reverb": 0.6, "delay": 0.3, "delay_time": 0.25, "distortion": 0.0, "filter": 0.2}
All amounts are 0–1, and 0 means off. filter darkens the sound with a low-pass filter. delay_time is in seconds and defaults to three quarters of a beat.
Notes are names like C4 (middle C), F#3 or Bb2, or frequencies like "440" or "440hz".
Sequences separate notes with spaces or dashes. _ halves a note, + doubles it, :1.5 sets its length in beats, and . is a rest.
Drum patterns use one character per 16th note: X accent, x hit, o ghost note, . rest. Lanes (kick, snare, hat, open_hat, perc) can have different lengths and loop independently:
{"custom": {"kick": "X..x..X...x.....", "snare": "....X.......X..o", "hat": "x.x.x.x.x.x.x.x."}, "tempo": 92, "swing": 0.2}
assistant ──MCP (stdio)──▶ supercollider-mcp ──OSC/UDP──▶ scsynth ──▶ speakers
On first use the server checks that scsynth answers, uploads its SynthDefs (/d_recv) and creates its own node group with a voice group, an effects group and a limiter. Node IDs sit far above the ranges sclang uses, so your own SuperCollider work is not affected. If scsynth restarts, the setup runs again on the next call.
Each tool call turns into a *phrase*: a time-ordered stream of synth events (supercollidermcp/compose.py, pure Python). A background task sends each event about half a second ahead as an OSC bundle with an NTP timetag, and scsynth starts it at exactly that time. Every synth frees itself when its envelope ends. When a call asks for effects, its voices go to a private bus that one mcp_fx synth reads.
uvx supercollider-mcp as shown above. Old configs that run mcp run path/to/server.py still work through a small compatibility server.py.default synth.create_drum_pattern takes bars (16 steps each) instead of beats. effects is an object instead of a JSON string. detune is now ±50 cents at 1.0 instead of up to an octave. The sc-osc command-line tool is gone.See CHANGELOG.md for everything else.
SC_PORT.server_status shows synths while something plays.sudo apt install pipewire-jack) and start SuperCollider through it: pw-jack scide, or pw-jack scsynth -u 57110 without the IDE. Otherwise scsynth tries to start its own jackd, which conflicts with PipeWire.git clone https://github.com/Tok/SuperColliderMCP.git
cd SuperColliderMCP uv sync uv run pytest # unit and protocol tests run anywhere uv run ruff check . && uv run ruff format --check .
Some tests need SuperCollider:
tests/test_synthdefs_nrt.py renders every SynthDef with scsynth -N (no audio device needed) and checks the audio. It runs automatically when scsynth is on PATH, or set SCSYNTH=/path/to/scsynth.tests/test_live_server.py runs every tool against a live server. Start a silent one with scsynth -u 57199 -i 0 -o 0, then run SC_TEST_PORT=57199 uv run pytest.The SynthDefs are written in SuperCollider itself, in supercollidermcp/synthdefs/synthdefs.scd. After editing that file, rebuild the compiled .scsyndef files with python scripts/build_synthdefs.py (needs sclang; it runs headless).
supercollidermcp/
├── server.py MCP tools: validation and wiring ├── compose.py musical logic: requests → timed events (pure, unit-tested) ├── theory.py notes, scales, chords ├── patterns.py drum patterns as step strings ├── engine.py server setup, buses, streaming playback, stop_all ├── osc.py async OSC client that also reads scsynth's replies └── synthdefs/ synthdefs.scd (source) + compiled .scsyndef files
Contributions are welcome. New sounds usually mean a SynthDef in synthdefs.scd plus a composer function in compose.py.
MIT. See LICENSE.