Skip to main content

MCP server for controlling Ableton Live via Claude Code

Project description

Ableton MCP Server

Control Ableton Live with AI through natural conversation.

An MCP (Model Context Protocol) server that exposes 260+ tools for controlling Ableton Live from Claude Code. Create tracks, manipulate MIDI, load instruments, and produce music—all through natural language.

Quick Start

# 1. Clone and install
git clone https://github.com/ldraney/ableton-mcp.git
cd ableton-mcp
poetry install

# 2. Start Ableton Live 12 with AbletonOSC enabled

# 3. Start Claude Code in this directory
claude

# 4. Just ask for what you want!

That's it. Claude reads the project documentation and knows how to guide you through creating music. Try:

  • "Create a lo-fi beat"
  • "Make a simple drum pattern"
  • "Help me set up audio export"

Why This Exists

Traditional DAW workflows require clicking through menus and dialogs. This project lets you describe what you want in plain English:

"Create a MIDI track, load a drum kit, and add a four-on-the-floor kick pattern at 120 BPM"

Claude Code executes the sequence of operations in Ableton while you watch it happen in real-time.

Features

Comprehensive Control

  • 80+ Song Tools - Transport, tempo, time signature, loop regions, cue points, recording
  • 70+ Track Tools - Volume, pan, mute/solo, routing, sends, device management
  • 50+ Clip Tools - MIDI note manipulation, audio warping, launch modes, loop settings
  • 40+ Device Tools - Parameter control, enable/disable, MIDI mapping
  • 20+ Browser Tools - Search instruments, load presets, explore packs

Key Capabilities

  • Full transport control (play, stop, record, loop)
  • Create and delete MIDI/audio tracks
  • Add, edit, and remove MIDI notes programmatically
  • Load any Ableton instrument, effect, or preset by name
  • Control device parameters in real-time
  • Navigate session view (select tracks, scenes, clips)
  • Query song state (tempo, time signature, track counts)

Architecture

┌─────────────────────────────────────────────────────────┐
│                     Claude Code                         │
│              (or any MCP-compatible client)             │
└───────────────────────┬─────────────────────────────────┘
                        │ MCP Protocol (stdio)
                        ▼
┌─────────────────────────────────────────────────────────┐
│              ableton-mcp (this project)          │
│                   FastMCP + Python                      │
└───────────────────────┬─────────────────────────────────┘
                        │ Python imports
                        ▼
┌─────────────────────────────────────────────────────────┐
│                  abletonosc-client                      │
│         github.com/ldraney/abletonosc-client    │
└───────────────────────┬─────────────────────────────────┘
                        │ UDP (ports 11000/11001)
                        ▼
┌─────────────────────────────────────────────────────────┐
│                      AbletonOSC                         │
│            MIDI Remote Script in Ableton Live           │
└───────────────────────┬─────────────────────────────────┘
                        │ Live Object Model
                        ▼
┌─────────────────────────────────────────────────────────┐
│                    Ableton Live 12                      │
└─────────────────────────────────────────────────────────┘

Quick Example

Once configured, you can have conversations like:

You: Create a simple beat Claude: Creates MIDI track → Loads 808 Core Kit → Adds kick on 1 and 3, snare on 2 and 4 → Sets tempo to 90 BPM → Hits play

Behind the scenes, Claude calls tools like:

song_set_tempo(bpm=90)
song_create_midi_track(index=0)
track_set_name(track_index=0, name="Drums")
track_insert_device(track_index=0, device_name="808 Core Kit")
clip_slot_create_clip(track_index=0, scene_index=0, length=4)
clip_add_notes(track_index=0, clip_index=0, notes=[
    {"pitch": 36, "start_time": 0, "duration": 0.5, "velocity": 100},  # Kick
    {"pitch": 38, "start_time": 1, "duration": 0.5, "velocity": 100},  # Snare
    {"pitch": 36, "start_time": 2, "duration": 0.5, "velocity": 100},  # Kick
    {"pitch": 38, "start_time": 3, "duration": 0.5, "velocity": 100},  # Snare
])
clip_fire(track_index=0, clip_index=0)

Prerequisites

  • Python 3.11+
  • Ableton Live 12 with AbletonOSC installed and enabled
  • Claude Code (or any MCP-compatible client)

Installation

# Clone the repository
git clone https://github.com/ldraney/ableton-mcp.git
cd ableton-mcp

# Install with Poetry
poetry install

Configuration

Add to your Claude Code MCP settings (~/.claude/settings.json or project .mcp.json):

{
  "mcpServers": {
    "ableton": {
      "command": "poetry",
      "args": ["run", "ableton-mcp"],
      "cwd": "/path/to/ableton-mcp"
    }
  }
}

WSL2 Support

The server auto-detects WSL2 environments and configures the correct Windows host IP. No manual configuration needed.

Documentation

Related Projects

Project Description
song-schema Define songs as JSON, execute them in Ableton (included as dependency)
abletonosc-client Python OSC client wrapper for Ableton
AbletonOSC The MIDI Remote Script that makes this possible

Development

# Run tests
poetry run pytest

# Run the server directly (for debugging)
poetry run ableton-mcp

# Check Python syntax
poetry run python -m py_compile src/ableton_mcp/server.py

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ableton_mcp_server-0.1.0.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ableton_mcp_server-0.1.0-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file ableton_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: ableton_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.7 Darwin/25.2.0

File hashes

Hashes for ableton_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f3a0c7dd14fed7038e63611e620eb50d5e38925f2f60084ef3d217579741858a
MD5 201830c3df2cd579cc74298f4668c396
BLAKE2b-256 b26939a8f4229e54864d4b7a3f8efd8e562f9965e1d3eff1ca55b286c0471e2e

See more details on using hashes here.

File details

Details for the file ableton_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ableton_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.7 Darwin/25.2.0

File hashes

Hashes for ableton_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96394aaff3fe781ce006ed7a644e7df66f8cf104e4a34fbef09797193a1fd345
MD5 285d872e392ca6fe0ed775786143cb63
BLAKE2b-256 c7e5688e5e73d8d59f8a42c8fb290ea11b2dcd41565a108a7663c7e487099055

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page