Strudel Live Coding▌
by williamzujkowski
Strudel Live Coding offers real-time music generation in your browser with 40+ tools for pattern creation, theory, and l
Provides direct control over Strudel.cc for live coding music generation through browser automation, offering 40+ tools for pattern creation, music theory operations, genre-specific generators, and real-time audio analysis with session management.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / Musicians doing AI-assisted live coding
- / Algorithmic composition experiments
- / Music producers exploring generative patterns
- / Educational music theory practice
capabilities
- / Generate live coding music patterns
- / Control browser-based Strudel.cc sessions
- / Apply music theory operations and transformations
- / Create genre-specific music generators
- / Analyze audio patterns in real-time
- / Manage live coding sessions
what it does
Controls Strudel.cc in your browser to generate and manipulate live coding music patterns using AI assistance. Provides 65+ tools for pattern creation, music theory operations, and real-time audio control.
about
Strudel Live Coding is a community-built MCP server published by williamzujkowski that provides AI assistants with tools and capabilities via the Model Context Protocol. Strudel Live Coding offers real-time music generation in your browser with 40+ tools for pattern creation, theory, and l It is categorized under browser automation, other.
how to install
You can install Strudel Live Coding in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
MIT
Strudel Live Coding is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
Strudel MCP Server
<a href="https://glama.ai/mcp/servers/@williamzujkowski/strudel-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@williamzujkowski/strudel-mcp-server/badge" alt="Strudel Server MCP server" /> </a>🎵 Open source MCP server for AI-powered music generation with Strudel.cc
Status: Actively developed | Experimental | Contributions welcome
An experimental Model Context Protocol (MCP) server that enables Claude to control Strudel.cc for AI-assisted music generation, live coding, and algorithmic composition.
Current State: Functional but under active development. Core features work reliably, but expect rough edges. Test coverage is at 78% with 1470 tests passing (1521 total, 51 skipped). See open issues for known limitations.
Table of Contents
- Features
- Installation
- Quick Reference
- Quick Start
- Available Tools
- Usage Examples
- Architecture
- Advanced Usage
- Configuration
- Security
- Troubleshooting
- Development
- Contributing
✨ Features
🎹 Complete Music Control
- 65 MCP Tools: Comprehensive suite for music creation and manipulation
- Real Browser Automation: Direct control of Strudel.cc through Playwright
- Live Audio Analysis: Real-time frequency analysis via Web Audio API
- Pattern Generation: AI-powered creation across 8+ music genres
- Music Theory Engine: Scales, chords, progressions, euclidean rhythms
- Session Management: Save, load, undo/redo with pattern storage
🔧 Testing & Development Status
- ✅ Test Suite: 1470 tests passing (1521 total, 51 skipped)
- ✅ Code Coverage: 78% statement coverage (goal: 80%)
- ✅ Browser Integration: Works with live Strudel.cc website
- ✅ Audio Analysis: Real-time FFT analysis functional
- ✅ Pattern Generation: Core music generation features working
- ✅ OIDC Publishing: Secure npm publishing with provenance attestation
Not Production-Ready: This is experimental software under active development. Use for exploration and experimentation. Expect breaking changes, bugs, and incomplete features. See CONTRIBUTING.md to help improve it.
🎼 Example Patterns
Explore 17 curated example patterns across 10 genres in patterns/examples/:
- Techno: Hard techno, minimal techno
- House: Deep house, tech house
- Drum & Bass: Liquid, neurofunk
- Ambient: Dark ambient, drone
- Trap: Modern trap, cloud trap
- Jungle: Classic jungle, ragga jungle
- Jazz: Bebop, modal jazz
- Intelligent DnB: Atmospheric, liquid, LTJ Bukem style
- Trip Hop: Portishead, Massive Attack, Flying Lotus style
- Boom Bap: DJ Premier, Alchemist, golden era hip hop
Each example includes pattern code, BPM, key, and description. See patterns/examples/README.md for details.
📦 Installation
Prerequisites
| Requirement | Version | Notes |
|---|---|---|
| Node.js | 18.x or 20.x | LTS versions recommended |
| npm | 9+ | Comes with Node.js |
| Chromium | Latest | Auto-installed by Playwright |
| Audio output | Any | Required for playback (speakers/headphones) |
Optional: Docker for containerized deployment.
From npm
npm install -g @williamzujkowski/strudel-mcp-server
# Install browser (required once)
npx playwright install chromium
From Source
# Clone repository
git clone https://github.com/williamzujkowski/strudel-mcp-server.git
cd strudel-mcp-server
# Install dependencies
npm install
# Install Chromium for browser automation
npx playwright install chromium
# Build the project
npm run build
🚀 Quick Reference
Common commands for immediate use:
| Action | Command |
|---|---|
| Initialize browser | init |
| Create techno beat | generate_pattern with style: "techno" |
| Play pattern | play |
| Stop playback | stop |
| Get current pattern | get_pattern |
| Analyze audio | analyze |
| Save pattern | save with name: "my-pattern" |
| Undo last change | undo |
One-shot workflow:
compose with style: "dnb", key: "Am", bpm: 174, auto_play: true
🎯 Quick Start
1. Add to Claude
# If installed globally
claude mcp add strudel strudel-mcp
# If built from source
claude mcp add strudel node /path/to/strudel-mcp-server/dist/index.js
2. Start Using
claude chat
Then ask Claude:
- "Initialize Strudel and create a techno beat"
- "Generate a jazz chord progression in F major"
- "Create a drum & bass pattern at 174 BPM"
🛠️ Available Tools (65)
Core Control (10 tools)
| Tool | Description | Example |
|---|---|---|
init | Initialize Strudel in browser | "Initialize Strudel" |
write | Write pattern to editor | "Write pattern: s('bd*4')" |
play | Start playback | "Play the pattern" |
stop | Stop playback | "Stop playing" |
clear | Clear editor | "Clear the editor" |
get_pattern | Get current pattern | "Show current pattern" |
append | Add to pattern | "Add hi-hats" |
insert | Insert at line | "Insert at line 2" |
replace | Replace text | "Replace bd with sn" |
pause | Pause playback | "Pause" |
Pattern Generation & Manipulation (10 tools)
| Tool | Description | Options |
|---|---|---|
generate_pattern | Complete patterns | techno, house, dnb, ambient, trap, jungle, jazz, intelligent_dnb, trip_hop, boom_bap |
generate_drums | Drum patterns | All styles + complexity (0-1) |
generate_bassline | Bass patterns | techno, house, dnb, acid, dub, funk, jazz, intelligent_dnb, trip_hop, boom_bap |
generate_melody | Melodic lines | Any scale, custom length |
generate_variation | Pattern variations | subtle, moderate, extreme, glitch |
transpose | Transpose notes | ±12 semitones |
reverse | Reverse pattern | - |
stretch | Time stretch | Factor 0.1-10 |
quantize | Quantize to grid | 1/4, 1/8, 1/16, etc. |
humanize | Add timing variation | Amount 0-1 |
Music Theory (6 tools)
| Tool | Description | Options |
|---|---|---|
generate_scale | Generate scales | major, minor, modes, pentatonic, blues |
generate_chord_progression | Chord progressions | pop, jazz, blues, rock, folk |
generate_euclidean | Euclidean rhythms | hits/steps/sound |
generate_polyrhythm | Polyrhythms | Multiple patterns |
generate_fill | Generate drum fills | All styles, 1-4 bars |
apply_scale | Apply scale to notes | Any scale |
Effects (4 tools)
| Tool | Description |
|---|---|
add_effect | Add audio effect (reverb, delay, etc.) |
remove_effect | Remove an effect from the chain |
set_tempo | Set BPM (60-200) |
add_swing | Add swing feel (0-1 amount) |
Session Management (5 tools)
| Tool | Description |
|---|---|
save | Save pattern with tags |
load | Load saved pattern |
list | List all patterns |
undo | Undo last action |
redo | Redo action |
Pattern History (3 tools)
| Tool | Description |
|---|---|
list_history | Browse pattern history with timestamps and previews |
restore_history | Restore a previous pattern by ID |
compare_patterns | Compare two patterns showing line-by-line differences |
Audio Analysis (6 tools)
| Tool | Description |
|---|---|
analyze | Basic audio analysis (frequency, playing state) |
analyze_spectrum | FFT spectral analysis |
analyze_rhythm | Rhythm complexity analysis |
detect_tempo | BPM detection |
detect_key | Musical key detection |
validate_pattern_runtime | Validate pattern with browser error checking |
UX & Browser Control (6 tools)
| Tool | Description |
|---|---|
compose | One-shot pattern generation with auto-play |
status | Get current browser/playback state |
diagnostics | Detailed system diagnostics |
show_browser | Bring browser window to foreground |
screenshot | Capture browser screenshot |
show_errors | Display captured console errors |
Performance (2 tools)
| Tool | Description |
|---|---|
performance_report | Timing metrics and bottleneck analysis |
memory_usage | Memory consumption statistics |
AI Feedback (1 tool)
| Tool | Description | Options |
|---|---|---|
get_pattern_feedback | AI-powered creative feedback via Gemini | includeAudio: analyze audio (default: false), style: hint for context |
Note: Requires
GEMINI_API_KEYenvironment variable. Returns pattern complexity, estimated style, strengths, and suggestions.
🎵 Usage Examples
Basic Pattern Creation
Create a Simple Beat
You: Initialize Strudel and create a simple techno beat
Claude: [Initializes browser]
[Generates and writes pattern]
[Starts playback]
Pattern created:
setcpm(130)
stack(
s("bd*4"),
s("~ cp ~ cp"),
s("hh*8").gain(0.4)
).gain(0.8)
Generate a Bassline
You: Add a techno bassline in C
Claude: [Generates bassline]
[Appends to current pattern]
Added: note("c2 c2 c2 c2").s("sawtooth").cutoff(800)
FAQ
- What is the Strudel Live Coding MCP server?
- Strudel Live Coding is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for Strudel Live Coding?
- This profile displays 37 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.7 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Web Research & Information Gathering
Fetch and extract information from websites automatically
Example
Research competitor pricing, scrape product reviews, monitor news mentions
Automate 5-10 hours/week of manual web research
Content Monitoring & Alerts
Track website changes, new content, price updates
Example
Monitor competitor blog for new posts, track stock availability, watch for pricing changes
Stay informed without manual checking, never miss important updates
Data Extraction & Aggregation
Extract structured data from multiple websites
Example
Compile product listings from 10 e-commerce sites, aggregate job postings, collect real estate data
Build datasets 100x faster than manual copying
API-less Integration
Interact with services that don't offer APIs
Example
Check form submissions, validate website functionality, test user flows
Automate interactions with any website, even without API
Implementation Guide▌
Prerequisites
- ›Claude Desktop or Cursor with MCP support
- ›Understanding of web scraping ethics and robots.txt
- ›Rate limiting awareness to avoid overwhelming target sites
- ›Knowledge of legal restrictions on data collection
Time Estimate
20-40 minutes including configuration and testing
Installation Steps
- 1.Install web automation MCP server via npm or pip
- 2.Configure allowed domains and rate limits in MCP config
- 3.Test with simple fetch: 'Get content from example.com'
- 4.Progress to extraction: 'Extract all product prices from this page'
- 5.Set up monitoring: 'Check this URL daily for changes'
- 6.Parse structured data: 'Create CSV from this table'
- 7.Respect robots.txt and rate limits always
Troubleshooting
- ⚠403 Forbidden: Website blocks bots—respect their wishes, use official API instead
- ⚠Rate limit errors: Slow down requests, add delays between fetches
- ⚠Stale data: Target site changed HTML structure—update selectors
- ⚠Timeout errors: Site is slow or blocking—increase timeout, try different user agent
- ⚠JavaScript-rendered content: Use headless browser MCP servers for dynamic sites
Best Practices▌
✓ Do
- +Check robots.txt and respect crawl rules
- +Rate limit requests: 1-2 requests/second maximum
- +Use official APIs when available instead of scraping
- +Identify your bot with descriptive user agent
- +Cache results to minimize repeated requests
- +Handle errors gracefully with retries and fallbacks
- +Validate extracted data for accuracy
✗ Don't
- −Don't scrape sites that explicitly forbid it (robots.txt, ToS)
- −Don't overwhelm servers with rapid requests—use rate limiting
- −Don't scrape personal data without consent and legal basis
- −Don't ignore copyright on extracted content
- −Don't assume HTML structure is stable—handle changes
- −Don't use scraped data for commercial purposes without permission
💡 Pro Tips
- ★Use CSS selectors or XPath for robust data extraction
- ★Set up monitoring alerts for extraction failures (structure changed)
- ★Implement exponential backoff for retries on failures
- ★Store raw HTML for reprocessing if extraction logic changes
- ★Combine with data analysis tools for insights from extracted data
- ★Consider using official APIs or RSS feeds as more stable alternatives
Technical Details▌
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
- HTTP/HTTPS
- WebSocket (for real-time sites)
- Puppeteer/Playwright (for JavaScript sites)
Compatibility
- Static HTML sites
- JavaScript-rendered SPAs (with headless browser)
- REST APIs
- GraphQL endpoints
When to Use This▌
✓ Use When
Use for research automation, content monitoring, data aggregation from multiple sources, and when official APIs don't exist. Best for read-only information gathering.
✗ Avoid When
Avoid for sites with APIs (use API instead), sites that explicitly forbid scraping, when data is copyrighted, or for login-required content without proper authorization.
Integration▌
- →Scheduled monitoring with change detection
- →Multi-source data aggregation pipelines
- →Fallback to web scraping when API rate limits hit
- →Headless browser for JavaScript-heavy sites
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.7★★★★★37 reviews- ★★★★★Alexander Agarwal· Dec 20, 2024
According to our notes, Strudel Live Coding benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Chaitanya Patil· Dec 8, 2024
Strudel Live Coding is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
- ★★★★★Meera Shah· Nov 11, 2024
Strudel Live Coding has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
- ★★★★★Hassan Patel· Oct 2, 2024
We evaluated Strudel Live Coding against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Hassan Rao· Sep 25, 2024
Strudel Live Coding reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
- ★★★★★Naina Jackson· Sep 9, 2024
I recommend Strudel Live Coding for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Meera Garcia· Sep 9, 2024
Strudel Live Coding has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
- ★★★★★Piyush G· Sep 1, 2024
We evaluated Strudel Live Coding against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Naina Shah· Aug 28, 2024
Strudel Live Coding reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
- ★★★★★Charlotte Abebe· Aug 28, 2024
We evaluated Strudel Live Coding against two servers with overlapping tools; this profile had the clearer scope statement.
showing 1-10 of 37