Skip to content

alexlanderzander/ableton-mcp

 
 

Repository files navigation

AbletonMCP - Ableton Live Model Context Protocol Integration

smithery badge

AbletonMCP connects Ableton Live to AI models through the Model Context Protocol (MCP), allowing AI to directly interact with and control Ableton Live. This integration enables prompt-assisted music production, track creation, and Live session manipulation.

Join the Community

Give feedback, get inspired, and build on top of the MCP: Discord. Made by Siddharth

Features

  • Two-way communication: Connect AI models to Ableton Live through a socket-based server
  • Multiple AI Model Support: Works with both Claude and Google's Gemini
  • Track manipulation: Create, modify, and manipulate MIDI and audio tracks
  • Instrument and effect selection: AI can access and load the right instruments, effects and sounds from Ableton's library
  • Clip creation: Create and edit MIDI clips with notes
  • Session control: Start and stop playback, fire clips, and control transport

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 automatically via Smithery:

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

Prerequisites

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

API Key Setup

  1. For Gemini API:
    • Get your API key from Google AI Studio
    • Add it to your .env file:
      GEMINI_API_KEY=your_api_key_here
      

Claude for Desktop Integration

Follow along with the setup instructions video

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

⚠️ 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

  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)
  3. Create a folder called 'AbletonMCP' in the Remote Scripts directory and paste the downloaded '__init__.py' file

  4. Launch Ableton Live

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

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

  7. 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 the AI

Model-Specific Features

Claude

  • Full access to all Ableton Live features
  • Natural language understanding of musical concepts
  • Complex musical arrangement capabilities

Gemini

  • All core Ableton Live control features
  • Optimized for real-time interaction
  • Enhanced pattern recognition for musical analysis

Example Commands

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

  • "Create an 80s synthwave track" Demo
  • "Create a Metro Boomin style hip-hop beat"
  • "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 correctly
  • API key errors: Verify your Gemini API key is correctly set in the .env file
  • 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 the AI client 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
  • API keys are stored locally and never transmitted

Contributing

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

Disclaimer

This is a third-party integration and not made by Ableton or Google.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • Dockerfile 0.6%