Skip to main content
Glama

Ableton Live 12 MCP (ableton-live12-mcp)

CI Pages Python 3.11+ License: MIT OR Apache-2.0 DAW: Ableton Live 12.4.6 Suite MCP Tools: 77 LOM Classes: 49 Clean-Room

Production-grade Model Context Protocol (MCP) server and in-process Control Surface bridge engineered specifically for Ableton Live 12.4.6 Suite on macOS.

Enables autonomous AI coding and production agents such as Antigravity (agy) to orchestrate complete electronic music production workflows: multi-track composition, session clip triggering, arrangement locator cue jumping, algorithmic MIDI transformations, take-lane comping, macro variations, flagship Live 12 synth/effect sound design (Meld, Roar, Drift, Wavetable), microtonal .ascl tuning systems, and automated Cocoa NSSavePanel audio export.


⚑ Studio Showcase & Visual Assets

Multimedia Artifacts

  • 🌐 Interactive Documentation Site: https://juancruzmunozalbelo.github.io/ableton-live12-mcp/ β€” Dark-luxury studio UI with interactive 77-tool search and 49-class LOM explorer.

  • 🎬 Video Telemetry (assets/demo_overview.mp4): 1280x720 video with dynamic waveforms and logarithmic spectrum visualizers synchronized to synthesized showcase audio.

  • πŸ”Š Audio Showcase (assets/showcase_demo.wav): 8-bar 124 BPM Melodic Techno demo in C Minor (-17.1 LUFS / -1.0 dBFS Peak) generated via MCP tool pipeline.

  • πŸ“‹ Session Recipe Manifest (assets/showcase_session_manifest.json): Exact JSON tool sequence reproducing the showcase session in Live 12.

  • πŸ“ System Vector Diagram (assets/architecture.svg): 3-layer topology diagram.


Related MCP server: Ableton MCP

πŸ›οΈ Architectural Benchmark

Feature Dimension

Ableton Live 12 MCP (This Project)

ahujasid/ableton-mcp

AbletonOSC (Generic OSC)

Manual Chapter Coverage

100% (All 20 Chapters)

~20% (Partial Session View)

~35% (Basic Transport & Clips)

Dedicated MCP Tools

77 Dedicated Tools

15 Basic Tools

0 (Requires external bridge)

Live 12 Extended Notes

βœ“ Probability, Deviation, Release

βœ— Pitch & Velocity Only

βœ— Pitch & Velocity Only

Live 12 Flagship Devices

βœ“ Meld, Roar, Drift, CC Control

βœ— None

βœ— Generic Parameters Only

Take Lanes & Comping

βœ“ Live.TakeLane & Comp Regions

βœ— Not Supported

βœ— Not Supported

Microtonal Tuning (.ascl)

βœ“ TuningSystem Loading & Cents

βœ— Not Supported

βœ— Not Supported

Thread Safety Model

5ms Live.Base.Timer Main-Thread Queue

Un-synchronized Remote Socket

Async UDP (Prone to Race Conditions)

Memory Pointer Safety

βœ“ Strict liveobj_valid Verification

βœ— Unchecked Access

βœ— Occasional C++ Access Violations

OS & Dialog Automation

βœ“ Cocoa NSSavePanel & Export Scripting

βœ— None

βœ— None

Dynamic LOM Reflection

βœ“ Full 49-Class Introspection Engine

βœ— Static Hardcoded Properties

βœ— Static Hardcoded OSC Paths

Pure Python Dependency

βœ“ Zero PIP Dependencies (Stdlib Only)

βœ— Requires External Deps

βœ— Requires Python-OSC


πŸ› οΈ Complete 77-Tool Catalog (20 Manual Chapters)

Refer to docs/ABLETON_12_MANUAL_COVERAGE.md for full technical mapping to LOM classes and test verification suites. Operational notes (live-set safety, bridge CPU, audio device issues, GUI automation) live in docs/TROUBLESHOOTING.md.

1. Arrangement View, Transport & Locator Cue Points (Domain 1)

  • live12_transport_play: Starts playback at current arrangement time.

  • live12_transport_stop: Halts transport playback.

  • live12_transport_record: Toggles arrangement or session recording mode.

  • live12_transport_set_tempo: Sets tempo in BPM [20.0..999.0].

  • live12_transport_set_time_signature: Sets time signature numerator and denominator.

  • live12_transport_set_loop: Sets arrangement loop state, start beat, and loop length.

  • live12_transport_set_punch: Toggles punch-in and punch-out recording markers.

  • live12_transport_set_overdub: Toggles arrangement overdub and MIDI overdub.

  • live12_cue_point_control: Manages arrangement locators (create, delete, list, jump to cue).

  • live12_clip_duplicate_to_arrangement: Duplicates session clips into exact arrangement beat positions.

2. Session View, Scenes & Clip Slots (Domain 2)

  • live12_scene_create: Inserts a new scene at index.

  • live12_scene_fire: Fires all clip slots in a scene.

  • live12_scene_set_properties: Configures scene name, color, scene tempo BPM, and signature triggers.

  • live12_clip_create: Creates a blank MIDI clip on a designated slot.

  • live12_clip_delete: Deletes a clip from a slot.

  • live12_clip_delete_arrangement: Deletes a clip from the Arrangement View by its position on a track.

  • live12_clip_fire: Triggers playback of a specific session clip.

  • live12_clip_stop: Stops playback on a designated track.

3. Track Hierarchy, Grouping & Performance (Domain 3)

  • live12_track_create: Creates MIDI, Audio, or Return tracks.

  • live12_track_delete: Deletes a track by index.

  • live12_track_duplicate: Clones a track with all devices, clips, and automation.

  • live12_track_set_properties: Sets track name, palette color (color_index 0-69 or explicit RGB), mute, solo, and arm.

  • live12_track_group: Groups multiple tracks into a composite Group Track.

  • live12_track_ungroup: Dissolves a Group Track back to top-level tracks.

4. Audio Routing, Sidechain & I/O Channels (Domain 4)

  • live12_routing_get: Inspects active routing and queries available I/O types and channels.

  • live12_routing_set: Configures input/output routing types, channels, and monitoring states.

5. Take Lanes & Arrangement Comping (Domain 5)

  • live12_take_lane_create: Creates a new take lane on an arrangement track.

  • live12_take_lane_list: Queries all take lanes, clip presence, and custom metadata.

  • live12_take_lane_comp_region: Comps a beat time window from a take lane into the track's main lane.

6. Audio Clips, Warping & Sample Properties (Domain 6)

  • live12_audio_clip_set_warp: Enables warping, sets warp mode (Beats, Tones, Complex Pro), and sets pitch/gain.

  • live12_audio_clip_add_warp_marker: Injects sample-to-beat warp markers for surgical timing alignment.

  • live12_clip_set_properties: Configures clip loop boundaries, start/end markers, and clip names.

7. Live 12 MIDI Note Editing & Extended Spec (Domain 7)

  • live12_clip_add_notes: Injects MIDI notes with probability (0.0–1.0) and velocity deviation (Β± spread).

  • live12_clip_get_notes: Reads all note events in a clip with extended parameters.

  • live12_clip_modify_notes: Updates existing notes by note ID or coordinate match.

  • live12_clip_remove_notes: Removes notes by exact ID or time/pitch window.

8. Live 12 MIDI Transformations & Quantization (Domain 8)

  • live12_clip_quantize: Quantizes note start times and lengths to musical grid increments.

  • live12_clip_transform_midi: Executes algorithmic transformations: Euclidean rhythms, humanize jitter, velocity ramps, and fit-to-scale.

9. Clip Envelopes, Automation & Modulation (Domain 9)

  • live12_clip_envelope_control: Sets breakpoint values, inspects envelope existence, clears individual/all envelopes, and re-enables automation.

10. Groove Pool & Swing (Domain 10)

  • live12_groove_pool_control: Queries groove pool templates, sets global song groove amount, assigns grooves to clips, and detaches grooves.

11. Live 12 Scales & Microtonal Tuning Systems (Domain 11)

  • live12_song_set_scale: Sets global musical scale (35+ modes) and root note (0–11).

  • live12_song_set_tuning_system: Loads microtonal tuning files (.ascl) with pitch cent offsets.

  • live12_song_get_state: Inspects complete musical context (tempo, scale, tuning, signature).

12. Browser, Categories, Preview & Hotswap (Domain 12)

  • live12_browser_search: Searches browser categories by query and category filter.

  • live12_browser_load_item: Instantiates browser items onto tracks or drum pads via URI.

  • live12_browser_preview: Auditions items via audio preview engine and queries active hotswap state.

13. Device Chains, Racks & Macro Controls (Domain 13)

  • live12_device_list: Enumerates all devices on a track.

  • live12_device_get_parameters: Inspects device parameters, names, ranges, and current values.

  • live12_device_set_parameter: Adjusts parameter value by name or index.

  • live12_device_toggle: Enables or disables a device bypass state.

  • live12_rack_macro_control: Sets macro knob values (macros 0–15).

  • live12_rack_variation_control: Stores, recalls, or deletes macro variation snapshots.

  • live12_rack_macro_config: Configures visible macro counts (1–16), increments/decrements macros, and randomizes macro values.

14. Drum Racks & Drum Pads (Domain 14)

  • live12_drum_pad_control: Queries pad status, sets pad mute/solo, clones pad chains (copy_pad), and deletes chains.

15. Simpler & Slicing Workflows (Domain 15)

  • live12_simpler_control: Converts Simpler slice points to Drum Rack pads and manages sample replacement.

16. Wavetable & Modulation Matrix (Domain 16)

  • live12_wavetable_modulation_matrix: Sets source-target routing, modulation depths, queries active routings, and clears matrix connections.

17. Live 12 Flagship Devices (Meld, Roar, Drift, CC Control) (Domain 17)

  • live12_meld_control: Configures dual macro-oscillator engines (A & B) and scale resonators.

  • live12_roar_control: Configures multi-stage saturation routing (Single, Serial, Parallel, Multi-band, Mid/Side, Feedback) and drive.

  • live12_drift_control: Adjusts analog oscillator drift, filter character, and stereo width.

  • live12_cc_control: Maps continuous controller numbers and sends MIDI CC values [0..127].

18. Mixer, Sends, Returns & Crossfader (Domain 18)

  • live12_mixer_set: Configures track volume, stereo pan, auxiliary send levels, and crossfader assignment.

  • live12_tempo_sync_control: Controls Ableton Link toggle, tempo follower toggle, tap tempo execution, and tempo nudging up/down.

  • live12_song_capture_midi: Retrospectively captures recently played MIDI notes into new clips without pre-recording.

  • live12_transport_set_metronome: Enables/disables metronome click and configures count-in duration.

20. Views, Dialogs, Undo/Redo & LOM Introspection (Domain 20)

  • live12_view_switch: Toggles between Session View and Arrangement View, opens Clip or Device detail views.

  • live12_view_select: Programmatically selects tracks, scenes, clip slots, or devices in the GUI.

  • live12_dialog_inspect: Checks status of open macOS dialogs (Save, Missing Files).

  • live12_dialog_press: Interacts with native dialog buttons ("Save", "Don't Save", "Cancel").

  • live12_undo_redo: Executes undo/redo operations and demarcates transactional undo steps.

  • live12_os_save_set: Saves the current Live set (.als) to disk.

  • live12_os_open_set: Loads an .als project file via AppleScript System Events.

  • live12_os_export_audio: Triggers audio bounce export dialog and executes render.

  • live12_lom_inspect: Introspects properties, methods, and child objects of any Live Object Model path.

  • live12_lom_get: Dynamically retrieves property values from any LOM object.

  • live12_lom_set: Dynamically sets property values on any LOM object.

  • live12_lom_call: Dynamically invokes arbitrary Boost.Python methods on any LOM object.


πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Layer 1: Autonomous Agent                  β”‚
β”‚       Antigravity (agy) / Claude / GPT / LLM Agent     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚ JSON-RPC 2.0 (stdio)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Layer 2: Stdio MCP Server & OS Bridge         β”‚
β”‚  src/ableton_live12_mcp/server.py (77 Dedicated Tools) β”‚
β”‚  src/ableton_live12_mcp/dialogs.py (AppleScript/Cocoa) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚ Loopback TCP (127.0.0.1:11246)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     Layer 3: In-Process Control Surface (Live12Bridge) β”‚
β”‚  Live.Base.Timer (5ms Main-Thread Command Queue)       β”‚
β”‚  liveobj_valid Pointer Validation & Error Recovery     β”‚
β”‚  reflection.py (Dynamic Introspection Engine)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚ C++ Boost.Python Bindings
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Live Object Model (LOM) Core Engine           β”‚
β”‚        Ableton Live 12.4.6 Suite (49 LOM Classes)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Autonomous Client Layer (agy): Dispatches high-level musical instructions via standard MCP tool declarations.

  2. Server & OS Bridge Layer: 100% pure Python standard library MCP server (server.py) handling tool dispatch, input validation, and hybrid macOS System Events dialog automation (dialogs.py).

  3. In-Process Control Surface (Live12Bridge): Runs inside Live's embedded CPython 3.11 environment. Drains socket RPC commands safely on the main GUI thread via a 5ms Live.Base.Timer queue, ensuring zero thread crashes or Boost.Python memory race conditions.


πŸš€ Installation & Quickstart

1. Prerequisites

  • macOS 13.0+ (Ventura, Sonoma, Sequoia)

  • Ableton Live 12.4.6 Suite

  • Python 3.11 or higher

2. Install Remote Script Control Surface

Copy or symlink the src/live12_bridge directory into Ableton's user remote scripts directory:

mkdir -p "$HOME/Music/Ableton/User Library/Remote Scripts"
ln -sfn "$(pwd)/src/live12_bridge" "$HOME/Music/Ableton/User Library/Remote Scripts/Live12Bridge"

3. Enable in Ableton Live

  1. Launch Ableton Live 12 Suite.

  2. Open Settings > Link, Tempo & MIDI.

  3. Under Control Surface, select Live12Bridge.

  4. The bridge starts immediately, binding to 127.0.0.1:11246 and publishing discovery metadata to /tmp/ableton_live12_bridge.json.

4. Configure Antigravity (agy)

Register ableton-live12 in your Antigravity MCP configuration (~/.gemini/antigravity-cli/mcp/ableton-live12/config.json):

{
  "mcpServers": {
    "ableton-live12": {
      "command": "python3",
      "args": ["-m", "ableton_live12_mcp"],
      "cwd": "/path/to/ableton-live12-mcp"
    }
  }
}

Or run the automatic registration script:

python3 scripts/register_mcp.py

πŸ§ͺ Testing & Verification

The test harness (tests/harness.py) provides automated testing against both offline mock bridges and live Ableton Live 12 instances:

Run Offline Mock Test Suite (311+ Tests)

PYTHONPATH=src pytest tests/ -v

Run Live Ableton Instance Tests

Ensure Ableton Live 12 is running with the Live12Bridge control surface selected, then execute:

./scripts/run_live_tests.sh --live -v

Verify Python Syntax & Bytecode Compilation

python3 -m py_compile src/live12_bridge/*.py src/ableton_live12_mcp/*.py src/ableton_live12_mcp/tools/*.py

Ableton Live 12 MCP is an independent open-source clean-room engineering project created in accordance with:

  • 17 U.S.C. Β§ 1201(f) (United States DMCA Reverse Engineering Exception for Interoperability).

  • EU Directive 2009/24/EC, Article 6 (Decompilation for Interoperability).

This repository contains zero proprietary binaries, decompiled C++ source files, SDKs, or copyrighted audio samples from Ableton AG or Cycling '74.

Trademark Disclaimer

  • "Ableton", "Ableton Live", "Live Suite", "Push", "Meld", "Roar", "Drift", "Simpler", "Wavetable", and "Max for Live" are registered trademarks or service marks of Ableton AG.

  • "Max", "RNBO", and "Cycling '74" are registered trademarks of Cycling '74 / Cycling '74 LLC.

  • Ableton Live 12 MCP is an independent open-source project and is NOT affiliated with, sponsored by, endorsed by, or associated in any way with Ableton AG or Cycling '74.


πŸ“„ License

This product is dual-licensed under:

Copyright (c) 2026 Juan Cruz MuΓ±oz Albelo and Ableton Live 12 MCP Contributors.

Available Tools

75 tools
live12_audio_clip_add_warp_markerC

Inserts a warp marker into an audio clip in Ableton Live 12 (Clip.add_warp_marker).

Inputs: beat_time (required), slot_index (required), sample_time (required), track_index (required).

live12_audio_clip_set_warpC

Configures audio clip warping mode, pitch shift, and gain in Ableton Live 12.

Inputs: slot_index (required), track_index (required), gain, warping, +2 more.

live12_browser_load_itemA

Loads a browser item (instrument, effect, rack, or preset) onto an Ableton Live 12 track, chain, or drum rack pad (Application.browser.load_item).

Inputs: track_index (required), browser_item_uri (required), chain_index, drum_pad_index.

live12_browser_previewB

Controls audio auditioning and hotswap monitoring in the Ableton Live 12 Browser (preview item, stop preview, inspect hotswap target).

Inputs: action (required), browser_item_uri.

live12_cc_controlB

Controls the Ableton Live 12 CC Control MIDI device: maps MIDI continuous controllers (CC), sets output CC values, and configures custom MIDI automation targets.

Inputs: action (required), track_index (required), device_index (required), value, +2 more.

live12_clip_add_notesB

Inserts one or more MIDI notes into a clip using Ableton Live 12 extended note attributes (Clip.add_new_notes). Supports Live 12 note probability, velocity deviation, and release velocity.

Inputs: notes (required), slot_index (required), track_index (required).

live12_clip_createC

Creates a new empty Session clip in Ableton Live 12 (ClipSlot.create_clip).

Inputs: slot_index (required), track_index (required), name, length_beats.

live12_clip_deleteA

Deletes the clip occupying a Session view slot in Ableton Live 12 (ClipSlot.delete_clip).

Inputs: slot_index (required), track_index (required).

live12_clip_duplicate_to_arrangementA

Duplicates a Session view clip directly into the Arrangement timeline at a specified beat time (Track.duplicate_clip_to_arrangement).

Inputs: slot_index (required), track_index (required), arrangement_time (required).

live12_clip_envelope_controlA

Inspects and manipulates parameter automation envelopes in an Ableton Live 12 clip (set envelope breakpoint/step, inspect envelope status, clear envelope for a parameter, clear all envelopes, or re-enable automation).

Inputs: action (required), slot_index (required), track_index (required), time, +3 more.

live12_clip_fireC

Fires / triggers playback of a clip slot in Ableton Live 12 (Clip.fire).

Inputs: slot_index (required), track_index (required).

live12_clip_get_notesB

Retrieves all MIDI notes within a specified time window from a clip in Ableton Live 12 (Clip.get_notes_extended), including Live 12 note_id, probability, velocity_deviation, and release_velocity.

Inputs: slot_index (required), track_index (required), time_span, start_time.

live12_clip_modify_notesB

Modifies existing notes in an Ableton Live 12 clip (Clip.apply_note_modifications) by matching note_id or pitch.

Inputs: slot_index (required), track_index (required), note_modifications (required).

live12_clip_quantizeB

Quantizes MIDI notes in a clip to a musical beat grid (Clip.quantize).

Inputs: slot_index (required), track_index (required), grid, amount.

live12_clip_remove_notesA

Removes MIDI notes from an Ableton Live 12 clip by note IDs or by beat/pitch window (Clip.remove_notes_by_id or Clip.remove_notes_extended).

Inputs: slot_index (required), track_index (required), note_ids, time_span, +3 more.

live12_clip_set_propertiesB

Configures loop and marker parameters of a clip in Ableton Live 12 (Clip.loop, Clip.loop_start, Clip.loop_end, Clip.start_marker).

Inputs: slot_index (required), track_index (required), loop, loop_end, +2 more.

live12_clip_stopC

Stops playback of a running clip slot in Ableton Live 12 (Clip.stop).

Inputs: slot_index (required), track_index (required).

live12_clip_transform_midiB

Applies algorithmic MIDI transformations in Ableton Live 12: humanize timing/velocity, velocity ramps, Euclidean rhythm generation, arpeggiation, or pitch quantization to musical scale.

Inputs: slot_index (required), track_index (required), transformation (required), params.

live12_cue_point_controlA

Manages arrangement locator cue points in Ableton Live 12: create locator at beat time, delete locator, jump playhead to cue point, or list all project locators.

Inputs: action (required), name, time, cue_index.

live12_device_get_parametersB

Reads all parameters of an Ableton Live 12 device (Device.parameters), including min, max, quantized status, raw value, and normalized value.

Inputs: track_index (required), device_index (required).

live12_device_listB

Queries all devices in the device chain of an Ableton Live 12 track (Track.devices).

Inputs: track_index (required).

live12_device_set_parameterC

Sets the value of a device parameter in Ableton Live 12 (DeviceParameter.value). Supports both raw engineering values and normalized [0.0..1.0] inputs.

Inputs: value (required), track_index (required), device_index (required), parameter_identifier (required), +1 more.

live12_device_toggleC

Enables or disables (bypasses) a device on a track in Ableton Live 12.

Inputs: enabled (required), track_index (required), device_index (required).

live12_dialog_inspectB

Inspects open native modal dialogs in Ableton Live 12 (Application.open_dialog_count and Application.current_dialog_message).

Inputs: no named parameters.

live12_dialog_pressB

Presses a button on the currently open modal dialog in Ableton Live 12 (Application.press_current_dialog_button). 0 is typically OK / Confirm; 1 is Cancel / Secondary.

Inputs: button_index (required).

live12_drift_controlC

Configures voice mode, drift randomization, and oscillator parameters on the Ableton Live 12 Drift subtractive synthesizer.

Inputs: track_index (required), device_index (required), voice_params (required).

live12_drum_pad_controlA

Controls Drum Rack pads in Ableton Live 12: inspect pad status (name, note, chains), mute/solo pad, copy pad to another note (RackDevice.copy_pad), or delete chains on a pad.

Inputs: action (required), track_index (required), device_index (required), state, +2 more.

live12_groove_pool_controlC

Manages the Ableton Live 12 Groove Pool: queries pool grooves, adjusts global song groove amount, assigns groove templates to clips, or inspects clip groove status.

Inputs: action (required), amount, slot_index, track_index, +1 more.

live12_lom_callB

Invokes any callable method on an object in the Ableton Live Object Model (LOM) at target_path, passing positional and keyword arguments.

Inputs: method_name (required), target_path (required), args, kwargs.

live12_lom_getB

Reads the value of any property on an object in the Ableton Live Object Model (LOM) at the specified path.

Inputs: target_path (required), property_name (required).

live12_lom_inspectA

Dynamically introspects any object reachable in the Ableton Live Object Model (LOM) from 'live_set' or 'live_app', returning its Python/C++ type, readable properties, and callable methods.

Inputs: target_path (required).

live12_lom_setC

Dynamically sets the value of any writable property on an object in the Ableton Live Object Model (LOM).

Inputs: value (required), target_path (required), property_name (required).

live12_meld_controlC

Updates engine parameters on the Ableton Live 12 Meld bi-timbral macro synthesizer.

Inputs: track_index (required), device_index (required), engine_params (required).

live12_mixer_setB

Adjusts track mixer controls in Ableton Live 12: volume fader, stereo panning, auxiliary send levels, and crossfader assignment.

Inputs: track_index (required), pan, sends, volume, +1 more.

live12_os_export_audioC

Triggers audio bounce / render in Ableton Live 12 to a target destination WAV file.

Inputs: destination_wav_path (required), render_settings.

live12_os_open_setC

Opens an Ableton Live Set (.als) project document in Ableton Live 12.

Inputs: als_path (required).

live12_os_save_setC

Triggers saving the current Ableton Live project set (.als) to a destination path on macOS.

Inputs: destination_path (required).

live12_rack_macro_configB

Configures macro knobs on an Ableton Live 12 Rack device: sets visible macro count (1 to 16), adds macro, removes macro, randomizes macros, or queries rack chains.

Inputs: action (required), track_index (required), device_index (required), count.

live12_rack_macro_controlC

Controls one of the 16 macro controls on an Ableton Live 12 Rack device (Instrument Rack, Audio Effect Rack, MIDI Effect Rack).

Inputs: value (required), macro_index (required), track_index (required), device_index (required).

live12_rack_variation_controlB

Manages Macro Variations on an Ableton Live 12 Rack device (store current macro snapshot, recall a variation, or delete a variation).

Inputs: action (required), track_index (required), device_index (required), variation_index.

live12_roar_controlC

Configures distortion stages, routing configuration, and feedback settings on the Ableton Live 12 Roar saturation device.

Inputs: track_index (required), device_index (required), stage_params (required).

live12_routing_getA

Inspects current and available input and output audio/MIDI routing types and channels for a track in Ableton Live 12.

Inputs: track_index (required).

live12_routing_setC

Configures input and output audio/MIDI routing and monitoring state for a track in Ableton Live 12.

Inputs: track_index (required), input_type, monitoring, output_type, +2 more.

live12_scene_createC

Creates a new scene in Ableton Live 12 (Song.create_scene).

Inputs: index.

live12_scene_fireB

Launches all clip slots aligned in a scene in Ableton Live 12 (Scene.fire).

Inputs: index (required).

live12_scene_set_propertiesC

Configures scene parameters in Ableton Live 12, including scene name, color, tempo assignment, and time signature assignment.

Inputs: scene_index (required), name, color, tempo, +4 more.

live12_simpler_controlC

Controls specialized features of Ableton Simpler, including transient slicing to a Drum Rack or replacing the loaded sample audio file.

Inputs: action (required), track_index (required), device_index (required), params.

live12_song_capture_midiB

Captures recently performed MIDI input without requiring an explicit recording pass in Ableton Live 12 (Song.capture_midi).

Inputs: no named parameters.

live12_song_get_stateA

Reads comprehensive song and transport state from Ableton Live 12, including tempo, time signature, playing status, loop parameters, project musical scale, tuning system, and track/scene counts.

Inputs: no named parameters.

live12_song_set_scaleC

Sets the global musical scale and root note in Ableton Live 12 (Song.scale_information). Root note is 0 for C, 1 for C#, ..., 11 for B.

Inputs: root_note (required), scale_name (required).

live12_song_set_tuning_systemB

Loads and applies a microtonal or alternative tuning system in Ableton Live 12 (Song.tuning_system).

Inputs: tuning_name (required).

live12_take_lane_comp_regionC

Comps a region from a take lane into the main arrangement track lane in Ableton Live 12.

Inputs: start (required), length (required), lane_index (required), track_index (required).

live12_take_lane_createB

Creates a new take lane for comping on an audio or MIDI track in Ableton Live 12 (Track.create_take_lane).

Inputs: track_index (required).

live12_take_lane_listA

Queries all take lanes on a track in Ableton Live 12 (Track.take_lanes).

Inputs: track_index (required).

live12_tempo_sync_controlB

Controls synchronization features in Ableton Live 12: toggles Ableton Link, enables tempo follower, executes tap tempo, or nudges song tempo up/down.

Inputs: action (required), enabled.

live12_track_createC

Creates a new track in Ableton Live 12 (Song.create_midi_track, Song.create_audio_track, or Song.create_return_track).

Inputs: type, index.

live12_track_deleteB

Deletes a track in Ableton Live 12 by its zero-based index (Song.delete_track).

Inputs: track_index (required).

live12_track_duplicateA

Duplicates an existing track in Ableton Live 12 (Song.duplicate_track). The duplicate is inserted immediately after the source track.

Inputs: track_index (required).

live12_track_groupC

Groups specified tracks together under a new group track in Ableton Live 12.

Inputs: track_indices (required).

live12_track_set_propertiesC

Updates properties of an existing track in Ableton Live 12, such as name, RGB integer color, solo, mute, and record arming.

Inputs: track_index (required), arm, mute, name, +2 more.

live12_track_ungroupA

Dissolves an existing group track in Ableton Live 12, promoting its member tracks to top-level.

Inputs: group_track_index (required).

live12_transport_playA

Starts or resumes song playback in Ableton Live 12. If restart is true, playback starts from 1.1.1 or arrangement start marker; otherwise playback resumes from current playhead position.

Inputs: restart.

live12_transport_recordA

Enables recording in Ableton Live 12. Can target either the arrangement timeline (Song.record_mode = True) or session clip slots (Song.session_record = True).

Inputs: record_mode.

live12_transport_set_loopC

Configures arrangement loop in Ableton Live 12 (Song.loop, Song.loop_start, Song.loop_length). Length must be strictly greater than 0.

Inputs: start (required), length (required), enabled (required).

live12_transport_set_metronomeA

Toggles the metronome click in Ableton Live 12 (Song.metronome).

Inputs: enabled (required).

live12_transport_set_overdubA

Enables or disables arrangement overdub in Ableton Live 12 (Song.arrangement_overdub).

Inputs: overdub (required).

live12_transport_set_punchC

Enables or disables punch-in and punch-out markers for arrangement recording in Ableton Live 12.

Inputs: punch_in (required), punch_out (required).

live12_transport_set_tempoB

Sets the project tempo in beats per minute (BPM) in Ableton Live 12 (Song.tempo). Rejects values outside [20.0, 999.0].

Inputs: tempo (required).

live12_transport_set_time_signatureB

Sets the project time signature in Ableton Live 12 (Song.signature_numerator and signature_denominator). Denominator must be 1, 2, 4, 8, or 16.

Inputs: numerator (required), denominator (required).

live12_transport_stopB

Stops song playback in Ableton Live 12 (Song.stop_playing).

Inputs: no named parameters.

live12_undo_redoA

Executes Undo and Redo operations in Ableton Live 12 (Song.undo, Song.redo), inspects undo history status, or demarcates transactional undo steps.

Inputs: action (required).

live12_view_selectC

Updates GUI selection focus in Ableton Live 12 (selected track, selected scene, highlighted clip slot, or selected device).

Inputs: clip_slot, scene_index, track_index, device_index.

live12_view_switchB

Switches the primary active view in the Ableton Live 12 GUI (Application.view.show_view or focus_view).

Inputs: view_name (required).

live12_wavetable_modulation_matrixC

Inspects or updates modulation assignments in the Ableton Live 12 Wavetable modulation matrix.

Inputs: action (required), track_index (required), device_index (required), amount, +2 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 75 tools

    Disambiguation3/5

    Most tools target distinct Ableton objects/actions and descriptions clarify boundaries. However generic LOM get/set/call/inspect can perform nearly any operation, overlapping with specific tools, and broad *_control tools bundle several actions, increasing misselection risk.

    Naming Consistency4/5

    All tools use the live12_ prefix and snake_case with a readable domain/action structure. Minor deviations in action ordering and vague verbs like 'control' keep it from perfect consistency.

    Tool Count1/5

    75 tools is far beyond a scoped MCP surface and many granular or multi-action tools could be consolidated. Even for a complex DAW, this volume makes discovery and selection unwieldy.

    Completeness4/5

    The surface covers transport, clips, tracks, scenes, devices, browser, routing, mixer, GUI, OS save/open/export, undo, and generic LOM access. Some gaps remain, such as direct scene deletion and richer arrangement clip editing, but most workflows are covered or reachable via LOM.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      C
      maintenance
      Enables AI agents to control Ableton Live by evaluating arbitrary Python code and using predefined tools for common tasks, supporting voice and text commands for music production.
      27
      238
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI agents to control Ableton Live 12 for music production, including generating grooves, basslines, and percussion, and executing live set operations through MCP.
      3
      2
      MIT