Strudel MCP Server

🎵 MCP server for AI-assisted live-coding music via strudel.cc Unofficial fan project. Not affiliated with, or endorsed by, the Strudel project. This adapter exists to make live-coding music…

Local serverstdioAGPL-3.0-or-later

What is the Strudel MCP Server?

Strudel is an MCP project maintained in the williamzujkowski/strudel-mcp-server repository. The maintainer describes its purpose as “🎵 MCP server for AI-assisted live-coding music via strudel.cc Unofficial fan project. Not affiliated with, or endorsed by, the Strudel project. This adapter exists to…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using live-coding-music-mcp. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
initInitialize Strudel in browser
edit_patternMutate the current session pattern. mode=write replaces the editor contents (default; mirrors the old write tool exactly, including optional pattern validation
get_patternGet current pattern code
playbackControl transport on the current session. action=play starts the editor pattern. action=pause halts the clock where it is, so play resumes mid-cycle.…
set_tempoSet BPM. Writes setcpm(bpm/4), assuming one bar of 4/4 per cycle.
pattern_storePersist patterns to disk and read them back. Use action=save to write the current session pattern under a name; action=load to restore a named pattern into the
import_midiConvert a .mid file into a playable Strudel pattern (Phase 1: literal transcription, 201). Use source="base64" with data= for inline bytes, or source="path"…
historyNavigate or inspect the pattern edit history. action=undo reverts the last edit on the targeted session. action=redo replays a previously-undone edit.…
composeGenerate, write, and play a complete pattern in one step. Auto-initializes default browser if needed.
generate_partGenerate a single instrumental layer and append it to the current session pattern. role=drums takes style (e.g. "techno"/"house") and optional complexity…
generate_rhythmGenerate a rhythmic pattern and append it to the current session. type=euclidean produces a Euclidean rhythm with hits evenly distributed across steps…
music_theoryMusic-theory queries. query=scale returns the notes of a scale (e.g. "C major scale: C, D, E, F, G, A, B"). query=chord_progression returns a chord progression
transformApply a single transform op to the current session pattern. op=transpose shifts notes by semitones. op=reverse appends .rev to the pattern. op=stretch slows by
effectAdd or remove a Strudel effect on the current session pattern. action=add appends . ( ). action=remove strips EVERY . (...) call from the pattern, not just the
shapeShape the current pattern along one of three high-level dimensions. dimension=mood applies a mood profile…
ai_assistGemini-backed pattern assistance. task=feedback returns creative critique on the current pattern (optionally with audio analysis). task=suggest analyzes the…
analyzeAudio analysis on the currently-playing pattern. include=["all"] (default) returns the full spectrum + features object, matching the pre-consolidation…
validate_pattern_runtimeValidate pattern with runtime error checking (monitors Strudel console for errors)
validate_pattern_localValidate pattern syntax against the local StrudelEngine, which runs in a sandboxed child process (no browser required)
analyze_pattern_localStatic analysis (events/cycle, complexity, optional BPM) without browser playback
query_pattern_eventsEnumerate events the pattern would emit between two cycle indices (max 16 cycles)
transpile_patternTranspile pattern source via StrudelEngine; returns transpiled code or syntax error
sessionManage isolated Strudel browser sessions (multi-session, 108). action=create starts a new named session (sessions share one browser but isolated contexts).…
export_midiExport current pattern to MIDI file. Parses note(), n(), and chord() functions.
browser_windowInteract with the visible Strudel browser window. action=show brings the window to the foreground. action=screenshot captures the current editor view to disk…
audio_captureRecord audio output from the live Strudel session. action=start begins streaming capture (optional format webm/opus, default webm). action=stop ends the stream
diagnosticsInspect server and browser state. level=status returns a quick state snapshot (cache read, <15ms SLA), plus which config.json was read and any warnings from…
export_audioRecord a window of live Strudel audio and write it to a file. Returns a path plus what was actually recorded, not a wall of base64 — prefer this over…

How to install the Strudel MCP Server

{
  "mcpServers": {
    "live-coding-music": {
      "command": "live-coding-music-mcp"
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.