A deterministic, low-latency Model Context Protocol gateway connecting AI developer agents directly to active Ableton Live 12 Sets. Exposes Live Object Model inspection, per-tick parameter mutations, grouped undo batching, and non-realtime mix analysis.
| DAW TARGET | Ableton Live 12.0 – 12.4.5+ Suite |
|---|---|
| INTERFACE | FastMCP via local stdio JSON-RPC 2.0 |
| BRIDGE A | TCP 127.0.0.1:9888 (MIDI Remote Script) |
| BRIDGE B | WS 127.0.0.1:9889 (Extension Host) |
| TOOL COUNT | 97 active typed contracts |
| LATENCY | < 2.0 ms local loopback roundtrip |
| DISCIPLINE | Per-tick readback verification & atomic batching |
| OFFLINE DSP | LUFS-I, True Peak, dynamic range, masking |
| LICENCE | MIT License · Independent open-source |
You are connected to an active Ableton Live 12 Set via ableton-mcp-server (97 tools).
Operational rules:
1. Always inspect live set topology first via `get_session_overview()` or `get_track_list()`.
2. Resolve target tracks by index or via fuzzy name matching (`live_find_track`).
3. Query device parameters via `get_device_list()` and `get_parameter_value()` before mutating values with `set_parameter_value()`.
4. Bundle multi-step modifications into `run_batch(operations)` for atomic execution with rollback protection.
5. If an error envelope returns `AMBIGUOUS_MATCH` or `VERIFICATION_FAILED`, inspect the track/device index and retry with precise targets.
{
"mcpServers": {
"ableton-live": {
"command": "C:/Users/Usuario/repos/ableton-mcp-server/.venv-win/Scripts/ableton-mcp-server.exe",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
| ERROR ENVELOPE CODE | TRIGGER CONDITION & RECOVERY PROTOCOL |
|---|---|
| CAPABILITY_UNAVAILABLE | Attempted operation is not supported by the connected Ableton Live version or required bridge is unavailable (e.g. calling warp adjustments on an unwarped audio clip). Agent should inspect capabilities before retrying. |
| AMBIGUOUS_MATCH | Fuzzy track or device lookup matched multiple candidates without sufficient specificity. Recovery: query track listing first with `get_track_list()` and provide an exact integer track index. |
| VERIFICATION_FAILED | Per-tick write-then-verify loop failed: the parameter value read back from Live did not match the requested target value after execution. Agent should check parameter min/max ranges and quantization steps. |
| ACCEPTANCE_GUARD_FAILED | Destructive operation blocked against a production Live Set. Test and verification operations must target an isolated disposable test project (e.g. TESTE_CODEX). |