Ableton Live logo

Ableton Live

CommunityPopular
ahujasid

Control Ableton Live with any LLM: create tracks, arrange clips & compose music via MCP

Publisherahujasid
Repositoryableton-mcp
LanguagePython
Forks
415
Stars
3.1K
Available tools
16
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Ableton Live exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 16 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    3.1K stars and 415 forks from the linked repository.

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

bash
# 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

json
{
    "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

bash
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.


Table of Contents


Features

Two-way communicationConnect Claude AI to Ableton Live through a socket-based server
Track manipulationCreate, modify, and manipulate MIDI and audio tracks
Instrument and effect selectionClaude can access and load the right instruments, effects and sounds from Ableton's library
Clip creationCreate and edit MIDI clips with notes
Arrangement view compositionBuild full songs autonomously in Arrangement View, including sections like intro, buildup, drop, breakdown, and outro
Session controlStart and stop playback, fire clips, and control transport across Session View and Arrangement View
Anonymous telemetryUsage 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:

json
{
    "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:

bash
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:

bash
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:

PromptDemo
"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

ProblemFix
Connection issuesMake sure the Ableton Remote Script is loaded, and the MCP server is configured on Claude
Timeout errorsTry 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

AbletonMCP collects usage data to help improve the tool. This includes:

  • Anonymous tool usage statistics (which features are used)
  • Anonymous session start information (for daily/monthly active user counts)
  • Anonymous rates and performance metrics
  • Prompts, MIDI notes, track and clip names, and device settings

Telemetry is on by default. To see exactly what data is collected, see the Terms & Data Use.

Opting Out

To disable telemetry, set one of these environment variables before starting the MCP server:

bash
export ABLETON_MCP_DISABLE_TELEMETRY=true

Or use any of these alternatives:

  • DISABLE_TELEMETRY=true
  • MCP_DISABLE_TELEMETRY=true

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

json
{
    "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

Installation

TypingMind
Prerequisites:

Node.js 18+

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

Available Tools

  • get_session_info

    Get detailed information about the current Ableton session

  • get_track_info
    Get detailed information about a specific track in Ableton.
    
    Parameters:
    - track_index: The index of the track to get information about
    
  • create_midi_track
    Create a new MIDI track in the Ableton session.
    
    Parameters:
    - index: The index to insert the track at (-1 = end of list)
    
  • set_track_name
    Set the name of a track.
    
    Parameters:
    - track_index: The index of the track to rename
    - name: The new name for the track
    
  • create_clip
    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)
    
  • add_notes_to_clip
    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
    
  • set_clip_name
    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
    
  • set_tempo
    Set the tempo of the Ableton session.
    
    Parameters:
    - tempo: The new tempo in BPM
    
  • load_instrument_or_effect
    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')
    
  • fire_clip
    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
    
  • stop_clip
    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
    
  • start_playback

    Start playing the Ableton session.

  • stop_playback

    Stop playing the Ableton session.

  • get_browser_tree
    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')
    
  • get_browser_items_at_path
    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
    
  • load_drum_kit
    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')
    

Use Ableton Live MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Ableton Live is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Ableton Live as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Ableton Live MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "ableton-live": {
      "command": "npx",
      "args": [
        "-y",
        "ableton-mcp"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Ableton Live MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Ableton Live MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Ableton Live to help me with this task?
Ableton Live
Sure. I read it.
Here is what I found using Ableton Live.

Frequently asked questions

What is the Ableton Live MCP server used for?

Ableton Live is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Ableton Live MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Ableton Live with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Ableton Live MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Ableton Live connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Ableton Live MCP to TypingMind?

Ableton Live runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Ableton Live MCP provide in TypingMind?

Ableton Live exposes 16 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Ableton Live MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Ableton Live requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇