
AbletonMCP integrates Ableton Live with Claude AI through the Model Context Protocol, enabling Claude to directly control music production tasks such as creating and modifying MIDI and audio tracks, managing instruments and effects, generating clips, and controlling playback. The server consists of an Ableton Remote Script that creates a socket-based connection and an MCP server that relays commands between Claude and Ableton Live, solving the problem of manual music production workflows by allowing AI-assisted prompt-based session manipulation. Key capabilities include two-way communication, track creation and editing, clip generation, and transport control for managing live sessions.
Connect Ableton Live to Claude AI
Prompt-assisted music production, end-to-end track creation, and Live session and arrangement manipulation — driven by AI.
Setup Video · Discord · Issues
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
That's it — ask Claude to build something.
| 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) |
The system consists of two main components:
Ableton_Remote_Script/__init__.py) — a MIDI Remote Script for Ableton Live that creates a socket server to receive and execute commandsserver.py) — a Python server that implements the Model Context Protocol and connects to the Ableton Remote ScriptIf 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.
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"
]
}
}
}
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.
In the terminal, run:
claude mcp add AbletonMCP uvx ableton-mcp
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
piporpipx, the command is on your PATH directly — just runableton-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 Scriptsfolder (used for instant-mapping configs, not Python control surfaces) is no longer targeted by default; pass--legacyif 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:
uvx --from ableton-mcp ableton-mcp-install-script~/Music/Ableton/User Library/Remote Scripts/AbletonMCP/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.
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.
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" |
| 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 |
The system uses a simple JSON-based protocol over TCP sockets:
type and optional paramsstatus and result or messageAbletonMCP collects usage data to help improve the tool. This includes:
Telemetry is on by default. To see exactly what data is collected, see the Terms & Data Use.
To disable telemetry, set one of these environment variables before starting the MCP server:
export ABLETON_MCP_DISABLE_TELEMETRY=true
Or use any of these alternatives:
DISABLE_TELEMETRY=trueMCP_DISABLE_TELEMETRY=trueFor Claude Desktop, add the environment variable to your config:
{
"mcpServers": {
"AbletonMCP": {
"command": "uvx",
"args": ["ableton-mcp"],
"env": {
"ABLETON_MCP_DISABLE_TELEMETRY": "true"
}
}
}
}
Give feedback, get inspired, and build on top of the MCP: Discord
Contributions are welcome! Please feel free to submit a Pull Request.
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