Ableton Live MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ableton Live MCPCreate a new MIDI track and add a chord progression"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ableton Live MCP
An MCP server for Ableton Live 12, built on the official Ableton Extensions SDK. The MCP server runs inside Live as an extension — no bridge process, no MIDI remote scripts. Any MCP client (Claude Code, Claude Desktop, Cursor, ...) connects over streamable HTTP and gets full programmatic control of the Live Set: tracks, clips, MIDI notes, devices, parameters, mixer, scenes, warping, rendering, and more.
MCP client (Claude, ...) ──streamable HTTP──▶ http://127.0.0.1:8722/mcp
│
Live Extension Host (Node.js)
│
Ableton Live 12Requirements
Ableton Live 12.4.5 or newer (Extensions support)
Node.js >= 24.14 (build only)
Related MCP server: ableton-mind
Install
npm install
npm run package # builds and produces Ableton-Live-MCP-<version>.ablxThen drag the .ablx file onto Settings → Extensions in Live. The MCP endpoint starts with
Live at http://127.0.0.1:8722/mcp (GET /health for a quick check).
Development mode
Enable Settings → Extensions → Developer Mode in Live, then:
npm start # builds and runs the extension against the running Live.env must point at your Live installation, e.g.
EXTENSION_HOST_PATH=/Applications/Ableton Live 12 Beta.app.
Connect a client
Claude Code:
claude mcp add --transport http ableton-live http://127.0.0.1:8722/mcpClaude Desktop (or any stdio-only client) via mcp-remote:
{
"mcpServers": {
"ableton-live": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:8722/mcp"]
}
}
}Configuration
The port is stored in config.json inside the extension's storage directory (created on first
run; the path is reported by song_get under environment.storage_directory). Default:
{ "port": 8722 }How it works
Every Live object (track, clip, device, parameter, ...) is addressed by a stable object id discovered through listing tools (
song_get,track_get,device_get, ...).Ids stay valid until the object is deleted or moved, or another Live Set is loaded. Stale ids return an error telling the client to re-list.
All times/positions are in beats; colors are
#RRGGBB; MIDI pitches are 0–127.Multi-value writes (
parameter_set) are grouped into a single undo step in Live.
Tools
Song
Tool | Description |
| Live Set state: tempo, scale, grid, tracks, return/main tracks, scenes, cue points, environment info. The entry point — returns the object ids used everywhere else. |
| Set song properties (tempo). |
Tracks
Tool | Description |
| Track detail: clip slots + clips, take lanes, arrangement clips, devices, mixer with values. Address by |
| Name / mute / solo / arm. |
| New audio or MIDI track. |
| Delete track. |
| Duplicate track. |
| Delete/truncate arrangement clips in a beat range. |
| Add a take lane to a track. |
| Rename a take lane. |
Scenes & cue points
Tool | Description |
| Manage scenes. |
| Manage arrangement locators. |
Clips
Tool | Description |
| Create MIDI or audio clips in a session slot (by id or track + |
| Full clip detail (audio: warp settings + markers; MIDI: note count). |
| Name, color, mute, looping, warping, warp mode. |
| Delete a session or arrangement clip. |
| Read all MIDI notes. |
| Write notes: |
| Server-side note transforms — transpose, time-shift, velocity scale/offset, quantize, delete — with pitch/time selection. No read-modify-write roundtrip. |
Devices & racks
Tool | Description |
| Device detail: parameters with ranges/value items ( |
| Insert a built-in Live device into a track or rack chain. |
| Remove or copy devices. |
| Rack chain detail: devices + chain mixer. |
| Add a chain to a rack. |
| Set the MIDI note of a drum rack pad. |
| Swap the sample in a Simpler. |
Parameters & mixing
Tool | Description |
| Read device/mixer parameter values (batch). |
| Write parameter values (batch, single undo step). |
| Volume / pan / sends of a track or chain, with parameter ids and unit hints. |
| Set volume / pan / sends of a track or chain in one call (single undo step). |
Files & rendering
Tool | Description |
| Copy a file into the Live project. |
| Render pre-FX audio of an audio track to a WAV. |
UI & commands
Tool | Description |
| Show a modal HTML dialog inside Live (ask the user, show reports). |
| Invoke Extension Host commands, e.g. |
Skills
skills/ableton-live/SKILL.md is an installable agent skill
that teaches an MCP client how to use these tools well (id discovery flow, beats vs. seconds,
note-editing patterns, device workflows). Install it for Claude Code with:
mkdir -p ~/.claude/skills && cp -r skills/ableton-live ~/.claude/skills/Typical things you can ask a connected assistant to do:
"Create a 4-bar house drum pattern on a new MIDI track with a Drum Rack"
"Warp all clips on the Drums track in Complex Pro mode"
"Turn down every track that isn't the vocal bus by 3 dB"
"Build a song skeleton: intro, verse, chorus scenes with locators"
"Replace the sample in Simpler with /path/to/kick.wav and map it to C1"
Limitations
The extension (and thus the MCP endpoint) only runs while Live is open.
Only built-in Live devices can be inserted; third-party plug-ins can't be loaded by the SDK.
No transport control (play/stop/record) or clip launching — the Extensions API v1.0.0 does not expose them. Same for browser access and parameter automation curves.
show_dialogblocks until the user closes the dialog in Live.
Tests
npm test # E2E against a mock Extension Host: MCP client ↔ HTTP ↔ all tools
node test/live-smoke.mjs # against a real running Live with the extension loadedThe live smoke test creates its own tracks/clips/devices, verifies every tool family (MIDI notes, warping, drum racks, rendering, ...), and deletes everything it created.
Extension Host quirks (worth knowing)
Two behaviors of the beta Extension Host that this project works around:
Bare VM context. Extensions are evaluated in a V8 context without
globalor web globals (Request,Response,ReadableStream,fetch,EventTarget, ...), which the MCP SDK needs at load time.build.tsinjects a banner that pulls them in from the main Node context (core-module functions are shared, so theirFunctionconstructor evaluates there). Seebuild.tsfor details.bigint numerics. The host returns
bigintfor some values the SDK types asnumber(clip colors, note pitches, ...).src/serialize.tsnormalizes withnum()before arithmetic/JSON.Asynchronous writes. SDK property setters (notes, names, values) return before Live has applied the change; a read within a few tens of ms can return the previous state. Agents rarely notice, but read-after-write tests must retry briefly (see
eventually()intest/live-smoke.mjs).
Also: if the dev Extension Host crashes, Live may refuse the next control-channel handshake
("bring-up timed out") — restart Live and run npm start again.
Troubleshooting
Endpoint not responding: check
curl http://127.0.0.1:8722/health. Right-click any track in Live — the "Ableton Live MCP: Status" context-menu action shows the endpoint the extension actually bound.Port already in use: if another process holds the configured port, the server logs the failure to
ExtensionHost.txtand does not start. Changeportin the extension'sconfig.json(path shown bysong_getunderenvironment.storage_directory) — the file is read once at startup, so restart Live afterwards.Changed config.json but nothing happened: config is only read when the extension starts. Restart Live (or the dev Extension Host).
License
MIT for the code in this repository. The vendor/ tarballs (Ableton Extensions SDK & CLI) are
Ableton's and covered by their own license (see sdk/LICENSE.md in the SDK distribution).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityBmaintenanceA Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.237992MIT
- AlicenseAqualityAmaintenanceMCP server for Ableton Live that exposes the Live Object Model to LLMs, enabling natural language control of music production.36714MIT
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.48
- AlicenseNot gradedqualityBmaintenanceAn MCP server that exposes Ableton Live control (session state, transport, tracks, devices, clips, MIDI note editing) as tools for LLM agents, enabling natural language manipulation of a Live session.1MIT
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ulm0/ableton-live-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server