
Ableton MCP Server
io.github.ntwormv0.7.0Updated Oct 11, 2026
Inspect, analyze, and safely edit a running Ableton Live Set on Windows; 97 tools.
Overview
Lets an assistant inspect, analyze and safely edit a running Ableton Live 12 Set on Windows through 97 tools for transport, tracks, devices, clips, mix…
- What it does
- Exposes 97 tools grouped into transport and session control (get_session_info, set_tempo, start_playback, fire_clip), tracks and devices (get_track_list, live_find_track, get_device_list, set_parameter_value, create_clip, add_notes_to_clip, delete_clip), lifecycle and automation (save_set, quit_ableton, create_clip_automation), offline mix analysis (analyze_audio, find_frequency_masking, analyze_mix), Groove Intelligence (groove_search, groove_evidence, groove_generate, groove_compare, groove_apply) and inspection and batch execution (run_batch, get_locators, get_ableton_logs). It writes to Live's local socket and verifies object model state before returning, and returns structured error…
- When to use it
- Use it when you want an AI agent to query and drive an active Ableton Live 12 session on Windows: reading session and track state, adjusting tempo, parameters and colors, creating or editing MIDI clips, running grouped batch edits, analyzing a mix offline, or generating and comparing grooves before applying one. It is aimed at producers and audio developers working locally, not at cloud or headless setups. Read the known-bugs summary before relying on track indexes, run_batch or TCP loopback…
- Requirements
- Windows desktop only; runs as a local stdio process spawned by the MCP client. Needs Ableton Live 12, a Python environment (the setup script creates .venv-win), and the bundled Remote Script installed into Ableton's User Library, then selected as AbletonMCPServer under Preferences -> Link, Tempo & MIDI -> Control Surfaces. The server talks to the Remote Script on TCP 127.0.0.1:9888 and an Extension Host bridge on WebSockets 127.0.0.1:9889. The .mcpb bundle needs uv and network access on first…
Installation
In SourceWeft
- Open Ableton MCP Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
ableton-mcp-server
:globe_with_meridians: Live Landing Page & Interactive 97-Tool Catalog · Architecture Diagram · Agent Playbook · Tool Index
An open Model Context Protocol (MCP) server that enables AI agents (Antigravity, Gemini, Codex) and audio developers to query, analyze, drive, and automate a running Ableton Live 12 Set.
The current tool surface is 97 tools over TCP, WebSockets, composed routes, and local execution (with primary device resolution via device_name, track_index, and clip_index); the current v0.7.0 release ships 97 tools. Historical milestones exposed 65 certified tools in v0.5.2 , 88 tools in the v0.5.6 source milestone , and 96 tools in the v0.6.0 release . v0.7.0 adds plan_user_journey, an updated retrieval seed v3 with per-collection SD3/GM articulation mapping, and a dedicated UDP realtime control channel. Groove retrieval, evidence, generation, and comparison stay offline; only the guarded apply path reaches Live. A FastMCP server in Python communicates with a MIDI Remote Script on TCP 127.0.0.1:9888 and an Extension Host bridge over WebSockets on 127.0.0.1:9889.
Groove Intelligence is offline by default. Its deterministic generator needs no
provider installation; an optional neural provider is isolated behind a fixed
allowlist, bounded local IPC, resource limits, and signed laboratory gates.
Provider failures always return the equivalent deterministic artifact, and no
provider receives corpus paths, raw MIDI, notes, SQL, credentials, or network
access. See the provider laboratory contract.
The curated seed ships inside the wheel; ABLETON_GROOVE_SEED_BUNDLE can
override it explicitly, while derived artifacts stay in LocalAppData. Groove
retrieval, evidence, comparison, and deterministic generation are portable and
do not depend on the private source library. A generation request can use one
primary groove plus up to seven references; incompatible PPQ, meter, or rights
are rejected explicitly. Within the Groove Intelligence surface, the only Live
mutation is guarded groove_apply, which must be previewed against an explicit
target and empty slot before one commit.
⚡ What is Model Context Protocol (MCP) & How Agents Use It
Model Context Protocol (MCP) is an open standard for secure, local communication between Large Language Models (LLMs) and desktop applications.
Local IPC / stdio (Not a Cloud Service):
ableton-mcp-serverruns locally on your host OS over standard input/output (stdio) or IPC loopback. The AI agent spawns theableton-mcp-server.exeprocess directly. There are no external cloud endpoints or API keys required, guaranteeing zero network latency and maximum privacy.
How AI Agents Interact with Ableton Live:
- Tool Discovery (
tools/list): When an MCP client (Antigravity, Cursor, Windsurf) launches the server, it automatically discovers all 97 tool schemas . - Tool Execution (
tools/call): When the LLM decides to manipulate Ableton Live, it issues JSON-RPC messages (e.g.set_tempo(tempo=128.0)orcreate_clip(...)). - Write-Then-Verify Loop: The server writes to Live's local socket and verifies object model state before returning a result.
- Self-Correcting Error Taxonomy: If an error occurs, the server returns structured codes (
CAPABILITY_UNAVAILABLE,AMBIGUOUS_MATCH,VERIFICATION_FAILED), enabling the agent to reason and adapt.
Recommended System Prompt for AI Agents:
🛠️ Use It
License is MIT. Copy, fork, ship — see LICENSE.
Windows Install (one-shot):
Preview the exact Remote Script copy plan without creating .venv-win, installing
dependencies, or writing to Ableton's User Library:
If the environment already exists, the equivalent CLI preview is:
Then restart Live, select AbletonMCPServer under Preferences -> Link, Tempo & MIDI -> Control Surfaces, and verify the installation:
Verify Install
You can verify your installation integrity using either the built-in CLI tool or direct SHA-256 hash comparison:
1. CLI Remote Script Status
Run install-status to compare installed Remote Script files against the bundled source:
A healthy, up-to-date installation returns "status": "current":
2. SHA-256 Checksum Audit
During setup, setup_windows.ps1 automatically verifies and prints the Remote Script's SHA-256 hash:
To manually compute and verify the SHA-256 checksum of the installed __init__.py at any time:
- Windows (PowerShell):
- macOS / Linux:
Agent Configuration (mcp.json):
If you operate from WSL2, point the MCP client at the Windows binary so loopback stays in the host network namespace:
MCP Bundle (.mcpb)
scripts/build_mcpb.py packs the server as an MCP Bundle for Windows. The bundle carries the wheel and a locked launcher project; on first launch the host's uv installs Python and the dependencies from PyPI. It contains the server only, so the Remote Script and the Extension still install as described above.
build needs uv, Node.js (npx runs the pinned @anthropic-ai/mcpb CLI), and network access. smoke extracts the bundle, launches it over stdio, and checks initialize, tools/list against the catalog, and one offline tool, without Ableton Live.
📦 What It Does (97 MCP Tools)
v0.6.0 extends the certified 65-tool v0.5.2 baseline . v0.5.3 introduced colour writes, clip-target diagnostics, and five hierarchy tools that validate then return
CAPABILITY_UNAVAILABLE; v0.6.0 adds offline music generation, Groove retrieval, and guarded apply. See the offline music reference.
The 97 MCP tools are grouped into operational domains :
- Transport & Session:
get_session_info,set_tempo,start_playback,stop_playback,get_loop_settings,set_loop,set_loop_start,set_loop_length,set_current_song_time,get_song_length,get_session_overview,get_scenes,get_scene_state,fire_scene,fire_clip. - Tracks & Devices:
get_track_list,live_find_track,live_find_device,live_find_clip,get_track_state,get_device_list,list_device_params,get_parameter_value,get_plugin_presets,set_plugin_preset,get_clip_summary,set_parameter_value,create_clip,get_clip_notes,add_notes_to_clip,delete_clip,clear_clip_notes,set_clip_properties,get_clip_info,set_track_property,set_track_color,set_clip_color,diagnose_clip_targets,create_midi_track,create_audio_track,rename_track,move_track,reorder_tracks,move_track_to_group,ungroup_track,merge_groups,get_routing,diff_snapshots_tool,take_snapshot,get_selected_context,get_composition_structure,diagnose_midi_clip,search_browser,load_device_to_track,get_warp_state,set_warp_state. - Lifecycle & Automation:
lifecycle_status,save_set,quit_ableton,live_fade,create_clip_automation. - Offline Mix Analysis:
analyze_audio,find_frequency_masking,analyze_mix,extract_single_cycle(LUFS-I, True Peak, dynamic range, spectral collision). - Groove Intelligence (offline by default):
groove_search,groove_evidence,groove_generate,groove_compare,groove_apply(genre/subgenre/style/section taxonomy, V2 projections, deterministic multi-parent generation, late kit mapping, and one guarded Live commit). - Inspection & Batch Execution:
run_batch,get_locators,create_cue_point,delete_cue_point,bulk_create_cue_points,get_control_surfaces,get_browser_categories,get_project_metadata,get_ableton_logs,get_bridge_status.
Offline Music Generation
💡 Inspiration & Prior Art
This project builds on design insights from seminal open-source projects:
pnomolos/live-wire— TCP JSONL Remote Script layout, typed error envelopes, per-tick verification loop.hidingwill/AbletonBridge—run_batchtransaction semantics and attribute verification.ideoforms/AbletonOSC— OSC command naming and Extension Host bridge conventions.ideoforms/pylive— Python LOM introspection reference.Simon-Kansara/ableton-live-mcp-server— Tool boundary design (Remote Script for transport/devices vs WebSocket Extension for warping/browser loading).
Full notes in docs/INSPIRATION.md.
⚠️ Known Bugs
Live's Object Model exposes a number of traps (path-id drift, undo semantics, WSL loopback, protocol drift, allowlist surprises) that an AI agent can hit without warning. Each one has a known workaround in the codebase; every trap is documented in docs/KNOWN_BUGS.md. Read the executive summary at the top of that file before relying on track indexes, run_batch, or a TCP loopback to Live.
📜 License
MIT — Copyright (c) 2026 Gabriel Worm (ntworm). See LICENSE.
Source: README.md at commit d7ecfdf
Tools
0Version history
1- v0.7.0LatestOct 11, 2026


