Skip to main content

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

Metadata

Release files for ableton-mcp-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ableton-mcp-server 0.1.0
File Size Uploaded Provenance
ableton_mcp_server-0.1.0.tar.gz 34.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ableton-mcp-server 0.1.0
File Interpreter ABI Platform
ableton_mcp_server-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.3 kB

Release files / ableton_mcp_server-0.1.0.tar.gz

Download URL ableton_mcp_server-0.1.0.tar.gz
Size 34.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f3a0c7dd14fed7038e63611e620eb50d5e38925f2f60084ef3d217579741858a
BLAKE2b-256 checksum
How to use checksums
b26939a8f4229e54864d4b7a3f8efd8e562f9965e1d3eff1ca55b286c0471e2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.13.7 Darwin/25.2.0

Release files / ableton_mcp_server-0.1.0-py3-none-any.whl

Download URL ableton_mcp_server-0.1.0-py3-none-any.whl
Size 39.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
96394aaff3fe781ce006ed7a644e7df66f8cf104e4a34fbef09797193a1fd345
BLAKE2b-256 checksum
How to use checksums
c7e5688e5e73d8d59f8a42c8fb290ea11b2dcd41565a108a7663c7e487099055
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.13.7 Darwin/25.2.0

Security for ableton-mcp-server 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page