› cavi-ai/
GitHub ↗

Ableton MCP overview

Ableton MCP 0.3.1 gives MCP clients local control of Ableton Live. It has three parts:

  • CaviMcpBridge: a Live Remote Script. It runs inside Live and serves a Unix domain socket.
  • The MCP server: a stdio server that turns MCP tool calls into bridge requests.
  • The `ableton-mcp` CLI: installs the bridge, checks the connection, and calls tools, resources and prompts from a shell.

Everything runs on the local machine. The bridge opens no TCP port. The server makes no network requests.

What it covers

  • Reads: transport, tempo, key and scale, quantization, the groove pool, cue points, tracks, scenes, clips, notes, clip envelopes, devices and their parameters, mixer and routing state, freeze state, rack hierarchies, and the Live browser.
  • Guarded mutations: the same surfaces, plus track, scene and clip lifecycle, device loading and parameters, MIDI note editing and generation, undo and redo, and panic.
  • Music helpers: scale-aware chords, basslines, melodies, voicings, arpeggios, strums, drum patterns and variations, humanization, and velocity curves. They are planned against the observed Live Set.
  • Audio analysis: loudness, true peak, spectrum, pitch, transients and tuning of local audio files, using ffmpeg.
  • An optional NKS preset catalog: search, tags and favorites for presets discovered from local plug-in libraries.

The server publishes 9 concrete resources, 13 resource templates and 60 prompt templates. Agents can list and retrieve shared workflow instructions through the read-only get_producer_workflow tool in the default all profile. Start with a musical sketch, Set orientation, instrument comparison or MIDI clip variations. Retrieving instructions does not execute the workflow. Tools lists every tool.

Boundaries

Live's Remote Script API limits what can be controlled. In Live 12.4.5:

  • Arrangement automation envelopes are not exposed.
  • Per-note pitch bend, pressure and slide are not exposed.
  • Native Group creation uses the macOS English UI for consecutive ungrouped audio-producing tracks on Main; nested grouping and reparenting are not provided. Ungrouping removes a resolved Group and its processing stage while retaining descendants. See track grouping.
  • Grooves cannot be created or deleted through the public Groove Pool API.
  • Track.is_frozen has no setter.

The server reports each boundary. get_automation_capabilities and get_live_state.nativeApiSupport list the exact supported surface. The server fails closed instead of simulating a write that Live does not support.

These docs were generated for release v0.3.1 from commit 2694816bfd891b745a5bd22072db41c8e5a77034.