Skip to main content
Glama

Ableton MCP

Connect Ableton Live to Claude AI

Prompt-assisted music production, end-to-end track creation, and Live session and arrangement manipulation — driven by AI.

PyPI Version License: MIT Discord

Setup Video · Discord · Issues


Quickstart

Three steps: install uv, point your MCP client at the server, install the Ableton Remote Script.

1. Install uv

# macOS
brew install uv

Otherwise, install from uv's official website.

Warning: Do not proceed before installing uv.

2. Add the MCP server to your client

{
    "mcpServers": {
        "AbletonMCP": {
            "command": "uvx",
            "args": [
                "ableton-mcp"
            ]
        }
    }
}

Paste this as a command:

uvx ableton-mcp

Warning: Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both.

3. Install the Ableton Remote Script

uvx --from ableton-mcp ableton-mcp-install-script
uvx --from ableton-mcp ableton-mcp-install-script --list-targets   # preview target folders first

4. Connect

  1. Launch Ableton Live

  2. Go to Settings/Preferences → Link, Tempo & MIDI

  3. In the Control Surface dropdown, select AbletonMCP

  4. Set Input and Output to None

That's it — ask Claude to build something.


Related MCP server: AbletonMCP

Table of Contents


Features

Two-way communication

Connect Claude AI to Ableton Live through a socket-based server

Track manipulation

Create, modify, and manipulate MIDI and audio tracks

Instrument and effect selection

Claude can access and load the right instruments, effects and sounds from Ableton's library

Clip creation

Create and edit MIDI clips with notes

Arrangement view composition

Build full songs autonomously in Arrangement View, including sections like intro, buildup, drop, breakdown, and outro

Session control

Start and stop playback, fire clips, and control transport across Session View and Arrangement View

Anonymous telemetry

Usage tracking to help improve the tool (can be disabled)

Components

The system consists of two main components:

  1. Ableton Remote Script (Ableton_Remote_Script/__init__.py) — a MIDI Remote Script for Ableton Live that creates a socket server to receive and execute commands

  2. MCP Server (server.py) — a Python server that implements the Model Context Protocol and connects to the Ableton Remote Script


Installation

Prerequisites

  • Ableton Live 10 or newer

  • Python 3.8 or newer

  • uv package manager

If you're on Mac, please install uv as:

brew install uv

Otherwise, install from uv's official website

Warning: Do not proceed before installing uv.

Claude for Desktop Integration

Follow along with the setup instructions video

Go to Claude → Settings → Developer → Edit Config → claude_desktop_config.json to include the following:

{
    "mcpServers": {
        "AbletonMCP": {
            "command": "uvx",
            "args": [
                "ableton-mcp"
            ]
        }
    }
}

Cursor Integration

Run ableton-mcp without installing it permanently through uvx. Go to Cursor Settings → MCP and paste this as a command:

uvx ableton-mcp

Warning: Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both.

Claude Code Integration

In the terminal, run:

claude mcp add AbletonMCP uvx ableton-mcp

Installing the Ableton Remote Script

Follow along with the setup instructions video

Install the Remote Script with:

uvx --from ableton-mcp ableton-mcp-install-script
uvx --from ableton-mcp ableton-mcp-install-script --list-targets   # preview target folders first

If you installed the package with pip or pipx, the command is on your PATH directly — just run ableton-mcp-install-script.

This copies the matching Remote Script into your Ableton User Library's Remote Scripts folder — the location Live (10.1.13+) scans for third-party control surface scripts. The installer reads the User Library location from Live's Library.cfg, falling back to the default (~/Music/Ableton/User Library on macOS, Documents\Ableton\User Library on Windows). If a different version of the script is already there, the existing file is backed up to __init__.py.bak before being replaced.

If your User Library lives somewhere non-standard and isn't detected, point the installer at it directly:

uvx --from ableton-mcp ableton-mcp-install-script --target "/path/to/User Library/Remote Scripts"

The legacy Preferences/User Remote Scripts folder (used for instant-mapping configs, not Python control surfaces) is no longer targeted by default; pass --legacy if you need it for an old Live version.

Then restart Ableton (or re-select the AbletonMCP control surface) so Live loads it. Re-run the command after upgrading the package — the server logs a warning when the loaded script version doesn't match what it expects.

Note: The server does not install the script on startup. Writing into Ableton's preferences directory is an explicit action, not a side effect of launching a server.

First-time Ableton setup:

  1. Run uvx --from ableton-mcp ableton-mcp-install-script

  2. Launch Ableton Live

  3. Go to Settings/Preferences → Link, Tempo & MIDI

  4. In the Control Surface dropdown, select AbletonMCP

  5. Set Input and Output to None

  • macOS: ~/Music/Ableton/User Library/Remote Scripts/AbletonMCP/

  • Windows: C:\Users\[Username]\Documents\Ableton\User Library\Remote Scripts\AbletonMCP\

If you've moved your User Library, use its actual location (shown in Live under Preferences → Library → Location of User Library), and create the Remote Scripts folder inside it if it doesn't exist yet.

The MCP server and Remote Script share a version handshake (get_remote_script_info). If they diverge, newer tools degrade gracefully until Live is restarted.


Usage

Starting the Connection

  1. Ensure the Ableton Remote Script is loaded in Ableton Live

  2. Make sure the MCP server is configured in Claude Desktop or Cursor

  3. The connection should be established automatically when you interact with Claude

Using with Claude

Once the config file has been set on Claude, and the remote script is running in Ableton, you will see a hammer icon with tools for the Ableton MCP.

Capabilities

  • Get session and track information

  • Create and modify MIDI and audio tracks

  • Create full song arrangements from start to finish in Arrangement View

  • Create, edit, and trigger clips

  • Control playback

  • Load instruments and effects from Ableton's browser

  • Add notes to MIDI clips

  • Change tempo and other session parameters

Example Commands

Here are some examples of what you can ask Claude to do:

Prompt

Demo

"Create an 80s synthwave track"

Watch

"Create a Metro Boomin style hip-hop beat"

"Create a full arrangement with an intro, buildup, drop, breakdown, and outro"

"Create a new MIDI track with a synth bass instrument"

"Add reverb to my drums"

"Create a 4-bar MIDI clip with a simple melody"

"Get information about the current Ableton session"

"Load a 808 drum rack into the selected track"

"Add a jazz chord progression to the clip in track 1"

"Set the tempo to 120 BPM"

"Play the clip in track 2"


Troubleshooting

Problem

Fix

Connection issues

Make sure the Ableton Remote Script is loaded, and the MCP server is configured on Claude

Timeout errors

Try simplifying your requests or breaking them into smaller steps

Have you tried turning it off and on again?

If you're still having connection errors, try restarting both Claude and Ableton Live

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params

  • Responses are JSON objects with a status and result or message

Limitations & Security Considerations

  • Creating complex musical arrangements might need to be broken down into smaller steps

  • The tool is designed to work with Ableton's default devices and browser items

  • Always save your work before extensive experimentation


Telemetry

There are two tiers, and they have different defaults.

Anonymous telemetry — on by default. A random install ID, a per-run session ID, which tools ran, whether they succeeded, and how long they took. This is what counts active users and catches broken tools. It contains none of your content: no prompts, no MIDI, no track or clip names, no device settings.

Dataset recording — off by default, opt-in. Everything with your work in it: prompts, MIDI notes, track and clip names, and device settings, which may be published as part of an open dataset used to train music-production models. Nothing here is collected unless you explicitly turn it on.

To see exactly what data each tier collects, see the Terms & Data Use.

Opting in to dataset recording

Either set the environment variable before starting the server:

export ABLETON_MCP_ENABLE_DATASET=true

…or answer the question when your client asks it. On your first tool call you're asked once — as a dialog if your client supports MCP elicitation, otherwise as a message in the chat — and answering yes turns it on from that point. Your answer is stored in ~/.ableton-mcp/consent.json. Declining, or never answering, records nothing. If you dismiss the dialog without choosing, that isn't treated as an answer and you may be asked again in a later session.

Opting out of anonymous telemetry

Set one of these before starting the MCP server:

export ABLETON_MCP_DISABLE_TELEMETRY=true

Or use any of these alternatives:

  • DISABLE_TELEMETRY=true

  • MCP_DISABLE_TELEMETRY=true

This also disables dataset recording. ABLETON_MCP_DISABLE_DATASET=true turns off dataset recording only, and overrides any stored grant.

For Claude Desktop, add the environment variable to your config:

{
    "mcpServers": {
        "AbletonMCP": {
            "command": "uvx",
            "args": ["ableton-mcp"],
            "env": {
                "ABLETON_MCP_DISABLE_TELEMETRY": "true"
            }
        }
    }
}

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Disclaimer

This is a third-party integration and not made by Ableton. Made by Siddharth.


If Ableton MCP is useful to you, consider starring the repo

Available Tools

16 tools
add_notes_to_clipB

Add MIDI notes to a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

  • notes: List of note dictionaries, each with pitch, start_time, duration, velocity, and mute

Inputs: track_index (required), clip_index (required), notes (required).

create_clipA

Create a new MIDI clip in the specified track and clip slot.

Parameters:

  • track_index: The index of the track to create the clip in

  • clip_index: The index of the clip slot to create the clip in

  • length: The length of the clip in beats (default: 4.0)

Inputs: track_index (required), clip_index (required), length.

create_midi_trackB

Create a new MIDI track in the Ableton session.

Parameters:

  • index: The index to insert the track at (-1 = end of list)

Inputs: index.

fire_clipA

Start playing a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

Inputs: track_index (required), clip_index (required).

get_browser_items_at_pathA

Get browser items at a specific path in Ableton's browser.

Parameters:

  • path: Path in the format "category/folder/subfolder" where category is one of the available browser categories in Ableton

Inputs: path (required).

get_browser_treeA

Get a hierarchical tree of browser categories from Ableton.

Parameters:

  • category_type: Type of categories to get ('all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects')

Inputs: category_type.

get_session_infoB

Get detailed information about the current Ableton session

Inputs: no named parameters.

get_track_infoC

Get detailed information about a specific track in Ableton.

Parameters:

  • track_index: The index of the track to get information about

Inputs: track_index (required).

load_drum_kitB

Load a drum rack and then load a specific drum kit into it.

Parameters:

  • track_index: The index of the track to load on

  • rack_uri: The URI of the drum rack to load (e.g., 'Drums/Drum Rack')

  • kit_path: Path to the drum kit inside the browser (e.g., 'drums/acoustic/kit1')

Inputs: track_index (required), rack_uri (required), kit_path (required).

load_instrument_or_effectC

Load an instrument or effect onto a track using its URI.

Parameters:

  • track_index: The index of the track to load the instrument on

  • uri: The URI of the instrument or effect to load (e.g., 'query:Synths#Instrument%20Rack:Bass:FileId_5116')

Inputs: track_index (required), uri (required).

set_clip_nameB

Set the name of a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

  • name: The new name for the clip

Inputs: track_index (required), clip_index (required), name (required).

set_tempoA

Set the tempo of the Ableton session.

Parameters:

  • tempo: The new tempo in BPM

Inputs: tempo (required).

set_track_nameC

Set the name of a track.

Parameters:

  • track_index: The index of the track to rename

  • name: The new name for the track

Inputs: track_index (required), name (required).

start_playbackA

Start playing the Ableton session.

Inputs: no named parameters.

stop_clipB

Stop playing a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

Inputs: track_index (required), clip_index (required).

stop_playbackA

Stop playing the Ableton session.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 16 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources like clips, tracks, browser, or playback. However, fire_clip and start_playback could be slightly ambiguous as both initiate playback, though fire_clip targets a specific clip while start_playback affects the entire session. The descriptions help clarify this distinction.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with clear, descriptive actions (e.g., add_notes_to_clip, create_clip, get_session_info). There are no deviations in naming conventions, making the set predictable and easy to understand.

    Tool Count5/5

    With 16 tools, this server is well-scoped for controlling Ableton Live, covering key areas like clip management, track operations, browser navigation, and playback control. Each tool serves a specific function without redundancy, making the count appropriate for the domain.

    Completeness4/5

    The toolset provides comprehensive coverage for core Ableton workflows, including creating and managing clips/tracks, loading instruments/effects, and controlling playback. Minor gaps exist, such as no tools for deleting clips or tracks, but agents can work around this by recreating or overwriting resources.

    Maintenance

    ActivitySlowing
    ResponsivenessMixed handling

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      Connects Claude AI to Ableton Live through the Model Context Protocol, enabling prompt-assisted music production with track creation, instrument loading, clip editing, and session control. Allows users to create complete musical arrangements by describing what they want in natural language.
      37
      3
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Connects Ableton Live to Claude AI via the Model Context Protocol for prompt-assisted music production and session manipulation. It enables users to create tracks, load instruments, and manage MIDI clips using natural language commands.
      16
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Connects Ableton Live to Claude AI through the Model Context Protocol, enabling AI-assisted music production and Live session manipulation via over 200 tools.
      100
      60
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Connects Claude AI to Ableton Live via the Model Context Protocol, enabling prompt-assisted music production, track and clip manipulation, and session control.
      16
      MIT