Skip to main content
Glama
ableton-live-mcp

ableton-live-mcp

by bschoepke

Ever wanted to control Ableton with just your voice? Me too! I made this MCP server so I could just ask Codex to do anything in Ableton Live for me, while I was nap-trapped by my baby.

Unlike other Ableton MCPs I tried, this one can do pretty much anything that is possible via Ableton's Object model; the agent can just eval arbitrary python that runs inside Ableton. It also has some tools defined for common tasks so those work faster and more reliably. I had Codex CLI optimize this for hours with the new /goal command to prioritize low end-to-end latency, high reliability, low token usage, while maintaining full flexibility.

Things you can use it for: create MIDI clips, insert audio files, general Ableton questions (with this, your agent can see your whole live set), add tracks with different devices and effects, analyze harmony, analyze audio signals at any point in the signal chain, generate spectrograms, clip automation, setting up mastering or vocal processing chains, insert MIDI the agent finds from the web... it's very general purpose, I'm not sure what the limits are.

How to setup

Just tell your AI agent (Codex, Claude Code, Cursor, Copilot, Gemini, etc.) to:

Set up the https://github.com/bschoepke/ableton-live-mcp MCP server for me

It should work on Mac and Windows with recent Ableton versions, but I have only tested it on Ableton Live Suite 12.3.8 on macOS Tahoe.

Back up your Live Set before using this. The MCP can edit your set directly and could corrupt it.

Related MCP server: Ableton Live MCP

How to update

git pull this repo or ask your agent to:

Update the https://github.com/bschoepke/ableton-live-mcp MCP server for me

Demos

Here are a couple examples of live sets made from scratch with Codex in just a few minutes, along with their prompts. After it makes something, you can ask for follow up changes.

Ableton Live MCP demo

https://www.youtube.com/watch?v=8dRRrIY7NI0

The chat messages I sent to Codex to make this:

in ableton, make a self reflective song, with audio vocals (via macos say) and chip tunes and 80's drum machines. should be a real edm banger

Follow up prompts:

i want midi for everything but vocals please, with ableton devices. not prerendered audio for instruments

needs some fills

and should hit way harder after "3-2-1 i become the sound"

the vocals are squished too much (read too quickly), give them a little more length

add some dynamics, the song is basically one volume. and some pumping side chain

improve dynamics of the clap, seems a bit flat and indistinguished, want it harder after the 3-2-1 drop

introduce a new element on a new track after the 3-2-1 drop, that comes in but then recedes before the final exit

doesn't seem like the new thing has any notes

the element is a bit muddy/indistinct. perhaps it needs simplification and more space, different instrument choice, i dunno

Ableton Live MCP piano demo https://youtu.be/cLCHEV1jWQo

Prompt used to make this:

In Ableton, make a piano duet that tells the story of people debating the positive and negative merits of AI. The composition should be both beautiful and dynamic but surprising and fresh. Use Keyscape devices.

Built in Agent Audio Tap Max for Live device

The MCP includes an "Agent Audio Tap" Max for Live device that enables the agent to capture audio signals at any part of the signal processing chain. This gives the agent a full feedback loop for mixing and mastering tasks: it can capture audio signals for further processing with custom python, then tweak your Ableton devices, and then repeat.

Example usage where I asked Codex to generate a spectrogram of two piano tracks I had:

Ideas

  • Control your external synthesizers and other hardware with the MCP

  • Ask it questions like "why does my mix sound muddy?" or "how do I sidechain my bass track?"

  • Ask it to do things like "add a chord track that fits with my melody" or "give me a basic backing track for me to noodle on my guitar with"

  • You can tell it use third party plugins (VSTs, audio units) like Serum and Keyscape

  • Tell your agent to incorporate your existing vocal samples, including asking it to trim silence and transcribe your audio samples before creatively incorporating them into your live set

  • Ask your agent to set up crazy user controlled DJ effects

  • Experiment with VJ plugins like Videosync to make music videos driven by your live set

Available Tools

27 tools
live_batchB

Run multiple generic bridge operations in one Live main-thread request; preserves full object-model flexibility.

Inputs: operations (required), continue_on_error, include_traceback, expected_set_signature, +5 more.

live_browser_capabilitiesD

Browser roots/filter types/semantic API exposure.

Inputs: no named parameters.

live_browser_loadB

Load BrowserItem from search by id, uri, or path.

Inputs: item (required), target_track, timeout, expected_set_signature.

live_browser_previewC

Preview or stop previewing a BrowserItem.

Inputs: item, stop.

live_browser_rootsB

List app.browser roots.

Inputs: no named parameters.

live_callC

Call one Live object method.

Inputs: ref (required), method (required), args, kwargs, +2 more.

live_childrenC

List child objects from a collection.

Inputs: ref (required), child (required), limit, detail, +4 more.

live_clip_add_notesC

Add MIDI notes to a clip from JSON note specs.

Inputs: ref (required), notes (required), clear, clear_range, +2 more.

live_clip_duplicate_to_arrangementB

Duplicate a Session clip to Arrangement on a target track.

Inputs: track (required), clip (required), destination_time (required), timeout, +1 more.

live_clip_envelopeC

Inspect or edit a clip automation envelope for one parameter.

Inputs: ref (required), parameter (required), create, clear, +6 more.

live_clip_notesC

List MIDI notes from a clip compactly.

Inputs: ref (required), limit, start_time, end_time, +5 more.

live_clip_update_notesC

Update existing MIDI notes by note_id.

Inputs: ref (required), updates (required), timeout, expected_set_signature.

live_clip_velocity_envelopeC

Create parameter automation from MIDI note velocities in a clip.

Inputs: ref (required), parameter (required), min_value, max_value, +7 more.

live_clip_warp_markersC

Inspect or edit audio clip warp state and markers.

Inputs: ref (required), warping, warp_mode, add_markers, +4 more.

live_device_parametersD

Compact Device parameter metadata.

Inputs: ref (required), query, limit, detail, +4 more.

live_evalA

Evaluate a Python expression inside Live with song, app, obj, and Live bindings. General Live object-model bridge; examples are heuristics, not limits. Use live_exec for statements; prefer installed browser/library assets before generated assets unless asked.

Inputs: expr (required), ref, detail, max_items, +3 more.

live_eventsC

Drain retained Live listener events.

Inputs: limit.

live_execC

Execute Python statements inside Live with song, app, obj, this, Live, and result bindings. Set result to a compact dict/list summary to return it. General Live object-model bridge; examples are heuristics, not limits.

Inputs: code (required), ref, detail, max_items, +4 more.

live_getC

Resolve object; read selected properties/children.

Inputs: ref (required), properties, children, child_limit, +5 more.

live_observeC

Add or remove a listener for an object's property.

Inputs: ref (required), property (required), enabled (required).

live_parameter_setB

Set one DeviceParameter value with min/max and quantized validation.

Inputs: ref (required), value (required), coerce, timeout, +1 more.

live_pingA

Check bridge health/version.

Inputs: no named parameters.

live_setC

Set a writable Live object property.

Inputs: ref (required), property (required), value (required), timeout, +1 more.

live_set_summaryD

Compact set summary.

Inputs: track_limit, clip_slot_limit, device_limit, arrangement_clip_limit, +8 more.

live_track_create_audio_clipC

Create an Arrangement audio clip on a track from a local audio file.

Inputs: ref (required), file_path (required), destination_time (required), name, +2 more.

live_track_insert_deviceC

Insert a named built-in Live device on a track.

Inputs: ref (required), device_name (required), device_index, timeout, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 27 tools

    Disambiguation3/5

    Many tools have clear, distinct purposes for specific resources like clips, devices, and browser. However, the generic object-model bridge tools (live_call, live_get, live_set, live_eval, live_exec, live_observe, live_batch) have overlapping functionality and subtle differences that could cause confusion for agents. Descriptions help but don't fully resolve ambiguity.

    Naming Consistency4/5

    All tools start with 'live_' and most follow a 'live_[resource]_[action]' pattern, e.g., live_clip_add_notes, live_browser_search. A few generic tools like live_call, live_children, and live_ping deviate from this pattern but are still readable. The naming is mostly consistent with minor exceptions.

    Tool Count4/5

    27 tools cover a broad range of Ableton Live functionality including clips, devices, browser, tracks, and a general object bridge. The count is slightly high but justified by the complexity of the domain. It is well-scoped and not excessive.

    Completeness5/5

    The tool set provides comprehensive coverage for major workflows: browser navigation, clip editing (notes, envelopes, warp), device control, and track management. The inclusion of general bridge tools (live_get, live_set, live_call, live_eval) fills any gaps, allowing agents to perform essentially any operation on the Live object model.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers