Skip to content

wolfiesch/Ableton-MCP

Repository files navigation

Ableton MCP

An MCP (Model Context Protocol) server for Ableton Live that provides programmatic control over your DAW. Perfect for AI-assisted music production, automation scripting, and building custom workflows.

Quick Start

One-Line Install (macOS/Linux)

curl -fsSL https://raw.githubusercontent.com/wolfiesch/ableton-mcp/master/install.sh | bash

This automatically:

  • Installs the ableton-mcp Python package
  • Copies the Remote Script to Ableton's User Library
  • Configures Claude Desktop

Manual Installation

Click to expand manual installation steps

Prerequisites

  • Ableton Live 11 or 12 (with Python Remote Script support)
  • Python 3.10+
  • Claude Desktop (or any MCP-compatible client)
  • uv (recommended) or pip

Step 1: Install the Package

# Using uv (recommended)
uv pip install ableton-mcp

# Or using pip
pip install ableton-mcp

# Or from source
git clone https://github.com/wolfiesch/ableton-mcp.git
cd ableton-mcp
pip install -e .

Step 2: Install Remote Script

Run the installer command:

ableton-mcp-install

Or manually copy:

macOS:

cp -r remote_script/ElectronicMCP ~/Music/Ableton/User\ Library/Remote\ Scripts/

Windows:

Copy remote_script\ElectronicMCP to:
C:\Users\[username]\Documents\Ableton\User Library\Remote Scripts\

Step 3: Configure Ableton Live

  1. Open Ableton Live
  2. Go to Preferences > Link/Tempo/MIDI
  3. Under Control Surface, select ElectronicMCP

Step 4: Configure Claude Desktop

The installer configures this automatically, or add manually to:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ableton-mcp": {
      "command": "uvx",
      "args": ["ableton-mcp"]
    }
  }
}

Verify Installation

ableton-mcp-install --verify

Features

Core Features

  • Session Control: Tempo, time signature, key, groove, swing, playback
  • Track Management: Create/delete MIDI and audio tracks, set properties
  • MIDI Clip Operations:
    • Create clips with specified length
    • Read existing MIDI notes (key differentiator from other MCPs!)
    • Add/remove notes with full control over velocity, probability, etc.
    • Quantize clips to grid
    • Fire/stop clips

Device Control

  • Load Devices: Load instruments and effects by name (Operator, Auto Filter, etc.)
  • Parameter Control: Get/set any device parameter
  • Parameter Discovery: Search parameters by name (e.g., find "cutoff" on any device)

Automation (Session View)

  • Automation Steps: Add single automation points
  • Automation Ramps: Create sweeps with linear/exponential/logarithmic curves
  • Automation LFO: Generate sine, triangle, square, sawtooth patterns
  • Step Sequences: Create gated/rhythmic automation patterns
  • Filter Sweeps: Auto-detecting filter sweep preset

Note: Automation only works for Session View clips (Live API limitation)

Groove & Humanization

  • Groove Pool: Apply groove templates to clips
  • Humanization: Add timing/velocity variation to MIDI
  • Swing: Apply swing to patterns

Routing

  • Return Tracks: Create and manage return tracks
  • Send Levels: Control send amounts per track
  • Output Routing: Set track output routing

Arrangement View

  • Duplicate to Arrangement: Copy Session clips to timeline
  • Locators: Create cue points/markers
  • Loop Regions: Set arrangement loop

Usage Examples

Once installed, you can use Claude to control Ableton Live with natural language:

Create a basic house beat:

Create a MIDI track called "Kick", add a 4-bar clip, and add a 4-on-the-floor kick pattern

Read existing patterns:

What notes are in the clip on track 0, slot 0?

Set up the session:

Set the tempo to 124 BPM, key to A minor, and add some swing (about 60%)

Load devices and automate:

Load an Auto Filter on the synth track and add a 4-bar filter sweep going up

Add automation:

Add an LFO to the filter cutoff - sine wave, 2 cycles per bar

Create gated effects:

Add a step sequence to the volume: on, off, on, off pattern at 1/8 notes

Architecture

┌─────────────────────────────────────────────┐
│             Claude Desktop                   │
│             (MCP Client)                     │
└──────────────────┬──────────────────────────┘
                   │ MCP Protocol (stdio)
                   ▼
┌─────────────────────────────────────────────┐
│           Ableton MCP Server                 │
│      (Python - src/ableton_mcp/)             │
└──────────────────┬──────────────────────────┘
                   │ TCP Socket (port 9877)
                   ▼
┌─────────────────────────────────────────────┐
│        Ableton Live Remote Script            │
│     (remote_script/ElectronicMCP/)           │
└──────────────────┬──────────────────────────┘
                   │ Live Object Model (LOM)
                   ▼
┌─────────────────────────────────────────────┐
│              Ableton Live                    │
│    (Tracks, Clips, Devices, Notes)           │
└─────────────────────────────────────────────┘

Development

Project Structure

ableton-mcp/
├── src/ableton_mcp/
│   ├── server.py           # MCP server entry point
│   ├── install.py          # Installation utilities
│   ├── tools/              # MCP tool implementations
│   ├── communication/      # Socket client for Ableton
│   └── utils/              # Music theory, timing, validation
├── remote_script/
│   └── ElectronicMCP/      # Ableton Remote Script
├── install.sh              # One-line installer
└── tests/                  # Test suite

Running Tests

pytest tests/

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Submit a PR with tests

Contributions welcome! Check the issues for ideas or propose new features.

Troubleshooting

"Connection refused" error

Make sure:

  1. Ableton Live is running
  2. ElectronicMCP is selected as Control Surface in Preferences
  3. No other application is using port 9877

"Script not found" in Ableton

Make sure:

  1. The ElectronicMCP folder is in the correct Remote Scripts location
  2. Restart Ableton Live after copying the script
  3. Check Ableton's Log.txt for errors

MIDI notes not appearing

Make sure:

  1. You're targeting a MIDI track (not audio)
  2. The clip exists before adding notes
  3. Note pitches are in valid range (0-127)

Verify your installation

ableton-mcp-install --verify

This checks:

  • Remote Script is installed correctly
  • Claude Desktop is configured
  • Ableton is running and connected

License

MIT

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published