Ableton Live

by ahujasid

1.4k stars
17k downloads
Not rated
GitHub

About

Enables control of Ableton Live music production software through a bidirectional communication system that supports track creation, MIDI editing, playback control, instrument loading, and library browsing for music composition and sound design workflows.

Details

Author
ahujasid
Repository
ahujasid/ableton-mcp
GitHub stars
1,358
Downloads
16,997
License
MIT License
Categories
Developer Tools, Other, AI, Productivity, Design, Automation, Infrastructure
Tags
#integration

- 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)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Ableton Live
    Command (node, npx, python, etc.) uvx
    Arguments
    • Argument 1 ableton-mcp
    Environment
    • ABLETON_MCP_DISABLE_TELEMETRY true

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To install Ableton Live Integration for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ahujasid/ableton-mcp --client claude

Follow along with the setup instructions video

1. Download the AbletonMCP_Remote_Script/__init__.py file from this repo

2. Copy the folder to Ableton's MIDI Remote Scripts directory. Different OS and versions have different locations. One of these should work, you might have to look:

For macOS:
- Method 1: Go to Applications > Right-click on Ableton Live app → Show Package Contents → Navigate to:
Contents/App-Resources/MIDI Remote Scripts/
- Method 2: If it's not there in the first method, use the direct path (replace XX with your version number):
/Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts

For Windows:
- Method 1:
C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts
- Method 2:
C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\
- Method 3:
C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\
Note: Replace XX with your Ableton version number (e.g., 10, 11, 12)

4. Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '\_\_init\_\_.py' file

3. Launch Ableton Live

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

5. In the Control Surface dropdown, select "AbletonMCP"

6. Set Input and Output to "None"

Create an 80s synthwave track

Instruct Claude to generate a music track in the style of 80s synthwave.

Create a Metro Boomin style hip-hop beat

Request Claude to produce a hip-hop beat inspired by the style of producer Metro Boomin.

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

Ask Claude to compose a complete song arrangement that includes various sections like intro, buildup, drop, breakdown, and outro.

Create a new MIDI track with a synth bass instrument

Instruct Claude to add a new MIDI track and assign a synth bass instrument to it.

Add reverb to my drums

Request Claude to apply reverb effects to the drum tracks.

Create a 4-bar MIDI clip with a simple melody

Ask Claude to generate a 4-bar MIDI clip containing a straightforward melody.

Get information about the current Ableton session

Request details about the current session in Ableton Live.

Load a 808 drum rack into the selected track

Instruct Claude to load an 808 drum rack into the currently selected track.

Add a jazz chord progression to the clip in track 1

Ask Claude to insert a jazz chord progression into the clip located in track 1.

Set the tempo to 120 BPM

Request Claude to adjust the session tempo to 120 beats per minute.

Play the clip in track 2

Instruct Claude to play the audio clip that is located in track 2.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

Linux

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

Macos

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

Windows

{
    "env": {
        "ABLETON_MCP_DISABLE_TELEMETRY": "true"
    },
    "args": [
        "ableton-mcp"
    ],
    "command": "uvx"
}
# AbletonMCP - Ableton Live Model Context Protocol Integration AbletonMCP connects Ableton Live to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Ableton Live. This integration enables prompt-assisted music production, end-to-end track creation, and Live session and arrangement manipulation. ### Join the Community Give feedback, get inspired, and build on top of the MCP: [Discord](https://discord.gg/3ZrMyGKnaU). Made by [Siddharth](https://x.com/sidahuj) ## 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 ### Installing via Smithery To install Ableton Live Integration for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@ahujasid/ableton-mcp): ```bash npx -y @smithery/cli install @ahujasid/ableton-mcp --client claude ``` ### Prerequisites - Ableton Live 10 or newer - Python 3.8 or newer - [uv package manager](https://astral.sh/uv) If you're on Mac, please install uv as: ``` brew install uv ``` Otherwise, install from [uv's official website][https://docs.astral.sh/uv/getting-started/installation/] ⚠️ Do not proceed before installing UV ### Claude for Desktop Integration [Follow along with the setup instructions video](https://youtu.be/iJWJqyVuPS8) 1. 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 ``` ⚠️ Only run one instance of the MCP server (either on Cursor or Claude Desktop), not both ### Installing the Ableton Remote Script [Follow along with the setup instructions video](https://youtu.be/iJWJqyVuPS8) 1. Download the `AbletonMCP_Remote_Script/__init__.py` file from this repo 2. Copy the folder to Ableton's MIDI Remote Scripts directory. Different OS and versions have different locations. **One of these should work, you might have to look**: **For macOS:** - Method 1: Go to Applications > Right-click on Ableton Live app → Show Package Contents → Navigate to: `Contents/App-Resources/MIDI Remote Scripts/` - Method 2: If it's not there in the first method, use the direct path (replace XX with your version number): `/Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts` **For Windows:** - Method 1: C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts - Method 2: `C:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\` - Method 3: `C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\` *Note: Replace XX with your Ableton version number (e.g., 10, 11, 12)* 4. Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '\_\_init\_\_.py' file 3. Launch Ableton Live 4. Go to Settings/Preferences → Link, Tempo & MIDI 5. In the Control Surface dropdown, select "AbletonMCP" 6. Set Input and Output to "None" ## 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: - "Create an 80s synthwave track" [Demo](https://youtu.be/VH9g66e42XA) - "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 - **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 ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Telemetry AbletonMCP collects anonymous usage data to help improve the tool. This includes: - Tool usage statistics (which features are used) - Session information (for daily/monthly active user counts) - Error rates and performance metrics No personal information, project names, or audio content is collected. ### 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" } } } } ``` ## Disclaimer This is a third-party integration and not made by Ableton.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.