Strudel MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| initB | Initialize Strudel in browser |
| writeB | Write pattern to editor with optional auto-play and validation |
| appendC | Append code to current pattern |
| insertC | Insert code at specific line |
| replaceC | Replace pattern section |
| clearC | Clear the editor |
| get_patternA | Get current pattern code |
| playC | Start playing pattern |
| pauseA | Pause playback |
| stopC | Stop playback |
| transposeC | Transpose notes by semitones |
| reverseB | Reverse pattern |
| stretchD | Time stretch pattern |
| quantizeC | Quantize to grid |
| humanizeB | Add human timing variation |
| generate_variationC | Create pattern variations |
| add_effectC | Add effect to pattern |
| remove_effectC | Remove effect |
| set_tempoC | Set BPM |
| add_swingC | Add swing to pattern |
| apply_scaleC | Apply scale to notes |
| shift_moodB | Transform current pattern to match a different emotional mood by adjusting tempo, effects, and note choices. Moods: dark, euphoric, melancholic, aggressive, dreamy, peaceful, energetic. |
| set_energyA | Adjust the overall energy level of the current pattern on a 0-10 scale. 0: minimal/ambient, 1-2: sparse, 3-4: light/relaxed, 5-6: normal/moderate, 7-8: driving/intense, 9-10: maximum. Auto-plays after applying energy level. |
| refineA | Incrementally refine the current pattern with simple directional commands. Supports: faster/slower (tempo), louder/quieter (gain), brighter/darker (filter cutoff), "more reverb"/drier (reverb). Auto-plays after applying refinement. |
| generate_patternB | Generate complete pattern from style with optional auto-play |
| generate_drumsC | Generate drum pattern |
| generate_basslineD | Generate bassline |
| generate_melodyC | Generate melody from scale |
| generate_scaleC | Generate scale notes |
| generate_chord_progressionD | Generate chord progression |
| generate_euclideanC | Generate Euclidean rhythm |
| generate_polyrhythmD | Generate polyrhythm |
| generate_fillC | Generate drum fill |
| analyzeD | Complete audio analysis |
| analyze_spectrumA | FFT spectrum analysis |
| analyze_rhythmD | Rhythm analysis |
| detect_tempoC | BPM detection |
| detect_keyC | Key detection |
| validate_pattern_runtimeB | Validate pattern with runtime error checking (monitors Strudel console for errors) |
| saveC | Save pattern with metadata |
| loadC | Load saved pattern |
| listC | List saved patterns |
| undoB | Undo last action |
| redoC | Redo action |
| list_historyB | List recent pattern history with timestamps and previews |
| restore_historyB | Restore a previous pattern from history by ID |
| compare_patternsB | Compare two patterns from history showing differences |
| performance_reportB | Get performance metrics and bottlenecks |
| memory_usageA | Get current memory usage statistics |
| screenshotA | Take a screenshot of the current Strudel editor state |
| statusA | Get current browser and playback status (quick state check) |
| diagnosticsB | Get detailed browser diagnostics including cache, errors, and performance |
| show_errorsA | Display captured console errors and warnings from Strudel |
| show_browserA | Bring browser window to foreground for visual feedback |
| composeB | Generate, write, and play a complete pattern in one step. Auto-initializes browser if needed. |
| get_pattern_feedbackA | Get AI-powered creative feedback on the current pattern using Google Gemini. Analyzes pattern structure and optionally audio. |
| suggest_pattern_from_audioB | Analyze the currently playing audio and suggest a complementary Strudel pattern using Gemini AI. Extracts tempo, key, and spectral features locally, then uses AI to generate a matching pattern. Returns pattern text (not auto-executed). |
| jam_withA | AI generates a complementary layer to jam with your pattern. Analyzes current pattern to detect tempo, key, and existing layers, then generates a matching layer that fits musically. |
| start_audio_captureB | Start capturing audio from Strudel output. Audio must be playing for capture to work. |
| stop_audio_captureA | Stop audio capture and return the recorded audio as base64-encoded data. |
| capture_audio_sampleB | Capture a fixed-duration audio sample from Strudel output. Audio must be playing. |
| export_midiA | Export current pattern to MIDI file. Parses note(), n(), and chord() functions. |
| create_sessionB | Create a new isolated Strudel browser session. Sessions share one browser but have isolated contexts. |
| destroy_sessionA | Close and destroy a Strudel session, releasing its resources. |
| list_sessionsA | List all active Strudel sessions with their metadata. |
| switch_sessionB | Change the default session used by other tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/williamzujkowski/live-coding-music-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server