strudel-mcp

griederer/strudel-mcp

3.2

If you are the rightful owner of strudel-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Strudel MCP is a server that allows natural language control of the Strudel live coding music environment using the Model Context Protocol.

Tools
9
Resources
0
Prompts
0

🎵 Strudel MCP - AI Music Director

Natural language control of Strudel live coding from Claude Code

License: MIT Node Version MCP Compatible


Overview

Strudel MCP is a Model Context Protocol (MCP) server that enables natural language control of the Strudel live coding music environment directly from Claude Code. Create, modify, and control algorithmic music patterns by simply describing your musical intentions in plain language.

No need to learn Strudel syntax - just talk to Claude, and the music happens.


Features

  • 🗣️ Natural Language Interface: Create music by describing what you want
  • 🎹 Real-time Playback: Hear your patterns immediately
  • 🔄 Iterative Composition: Modify existing patterns incrementally
  • 💾 Pattern Persistence: Save and load your musical creations
  • 🎚️ Global Controls: Adjust tempo, volume, and playback state
  • 🔌 Seamless Integration: Works natively with Claude Code CLI

Quick Start

Installation

# Clone repository
git clone https://github.com/griederer/strudel-mcp.git
cd strudel-mcp

# Install dependencies
npm install

# Add to Claude Code MCP config
claude mcp add strudel-mcp --command "node /path/to/strudel-mcp/src/index.js"

Usage

# Start Claude Code
claude

# Start creating music with natural language
> "Create a 4 on the floor kick drum"
🔊 Playing: s("bd bd bd bd")

> "Add a snare on beats 2 and 4"
🔊 Playing: stack(s("bd bd bd bd"), s("~ sd ~ sd"))

> "Add some reverb"
🔊 Playing: stack(s("bd bd bd bd"), s("~ sd ~ sd")).room(0.5)

> "Save this as techno-beat-v1"
✓ Pattern saved to patterns/techno-beat-v1.strudel

Example Interactions

Building a Techno Beat

User: "Create a techno kick on every beat"
🔊 Four-on-floor kick plays

User: "Add fast hi-hats"
🔊 Kick + hi-hats play

User: "Create a dark bass line in C minor"
🔊 Full techno groove plays

User: "Make it 128 BPM"
🔊 Tempo adjusts to 128 BPM

User: "Save this as my-techno-groove"
✓ Pattern saved

Loading and Modifying

User: "Load my pattern called my-techno-groove"
🔊 Pattern resumes playing

User: "Add more reverb to the kick"
🔊 Modified pattern plays

User: "Stop the music"
✓ Playback stopped

MCP Tools

The server exposes 9 MCP tools for complete control:

ToolDescription
strudel_createCreate new pattern from natural language
strudel_modifyModify current active pattern
strudel_set_tempoSet global tempo (BPM)
strudel_stopStop audio playback
strudel_startResume audio playback
strudel_save_patternSave current pattern to file
strudel_load_patternLoad saved pattern
strudel_list_patternsList all saved patterns
strudel_get_currentGet current pattern state

Architecture

┌─────────────────┐
│   Claude Code   │  Natural language input
└────────┬────────┘
         │ MCP Protocol
         ▼
┌─────────────────────────┐
│  Strudel MCP Server     │  Code generation
│  (Node.js)              │  State management
└────────┬────────────────┘
         │ Puppeteer
         ▼
┌─────────────────────────┐
│  Headless Chromium      │  Pattern execution
│  https://strudel.cc     │  Audio playback
└─────────────────────────┘
         │
         ▼
    🔊 Audio Output

Project Status

Current Phase: Planning / PRD Complete

  • ✅ Product Requirements Document (PRD) complete
  • ✅ Repository structure created
  • ⏳ Implementation in progress
  • ⏳ Documentation in progress

See for complete product requirements.


Documentation

  • - Installation and configuration
  • - Usage examples and workflows
  • - MCP tool reference
  • - Product Requirements Document

Requirements

  • Node.js 18 or higher
  • macOS / Linux (Windows with WSL)
  • 2GB RAM minimum
  • Audio output device
  • Internet connection (for strudel.cc)

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Run tests
npm test

# Lint code
npm run lint

Technology Stack

  • Runtime: Node.js 18+
  • MCP SDK: @modelcontextprotocol/sdk
  • Browser Automation: Puppeteer
  • Audio Platform: Strudel.cc (Web Audio API)
  • Pattern Storage: File system (.strudel files)

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

MIT License - see file for details


Credits

  • Strudel: Created by Felix Roos and the TidalCycles community
  • TidalCycles: Original pattern language by Alex McLean
  • MCP: Model Context Protocol by Anthropic

Links


Made with ❤️ for the live coding community