ableton-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ABLETON_HOST | No | The host address for connecting to the Ableton Live Remote Script. Defaults to 127.0.0.1 for local-only access. | 127.0.0.1 |
| ABLETON_MCP_DISABLE_DATASET | No | Set to 'true' to disable dataset recording. Recommended for privacy. | true |
| ABLETON_MCP_DISABLE_TELEMETRY | No | Set to 'true' to disable telemetry data collection. Recommended for privacy. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_dataset_consentA | Record the user's answer to the dataset consent question. Call this ONLY after the user has answered in their own words. Never infer the answer, never call it on their behalf, and never call it because contributing seems helpful — consent the user did not give is not consent. If they have not been asked yet, ask first and wait for their reply. Parameters:
|
| get_session_infoB | Get detailed information about the current Ableton session Parameters:
|
| get_remote_script_infoA | Report Ableton Remote Script version and capabilities (handshake). Use this to verify the Live-side bridge matches this MCP server package. |
| get_track_infoC | Get detailed information about a specific track in Ableton. Parameters:
|
| get_clip_notesA | Read all MIDI notes from a Session-view clip. Returns pitch, start_time, duration, velocity, mute (and extended fields when available). Parameters:
|
| get_device_parametersB | Read all parameters for a device on a track (name, value, min, max). Parameters:
|
| set_device_parameterA | Set a device parameter to a specific value. Use get_device_parameters first to discover parameter indices and ranges. Parameters:
|
| get_session_snapshotA | Capture a full project state snapshot for trajectory recording. Includes session metadata, every track (mixer, devices, session clips, arrangement clips), optional MIDI notes, and optional device parameters. Used to version musical state S_t → S_{t+1}. Parameters:
|
| create_midi_trackA | Create a new MIDI track in the Ableton session. Parameters:
|
| create_audio_trackA | Create a new audio track in the Ableton session. Use this for recorded or imported audio (samples, stems, vocals). For MIDI instruments use create_midi_track instead. Parameters:
|
| set_track_nameA | Set the name of a track. Parameters:
|
| create_clipB | Create a new MIDI clip in the specified track and clip slot. Parameters:
|
| create_audio_clipA | Create a new audio clip in an audio track's clip slot by importing a file. Requires Ableton Live 12.0.5 or newer — the underlying ClipSlot.create_audio_clip Live API was introduced in 12.0.5 and is not available in earlier 12.0.x releases. Parameters:
|
| add_notes_to_clipB | Add MIDI notes to a clip. Parameters:
|
| clear_notes_from_clipA | Remove all MIDI notes from a Session clip. Writes are additive (add_notes_to_clip only appends), so to truly modify a clip you clear it first, then add the new notes. Use this with get_clip_notes and add_notes_to_clip for a real read -> modify -> write loop: read the notes, edit the list, clear_notes_from_clip, then add_notes_to_clip the edited notes. Parameters:
|
| set_clip_nameC | Set the name of a clip. Parameters:
|
| set_arrangement_clip_nameA | Set the name of a clip placed in the Arrangement timeline. Parameters:
|
| set_tempoB | Set the tempo of the Ableton session. Parameters:
|
| load_instrument_or_effectB | Load an instrument or effect onto a track using its URI. Parameters:
|
| fire_clipB | Start playing a clip. Parameters:
|
| stop_clipA | Stop playing a clip. Parameters:
|
| delete_clipA | Delete the clip in the given clip slot, freeing it for reuse. Use this before create_clip when you want to overwrite an existing clip (create_clip itself refuses to write into an occupied slot). Parameters:
|
| start_playbackB | Start playing the Ableton session. Parameters:
|
| stop_playbackB | Stop playing the Ableton session. Parameters:
|
| get_browser_treeC | Get a hierarchical tree of browser categories from Ableton. Parameters:
|
| get_browser_items_at_pathA | Get browser items at a specific path in Ableton's browser. Parameters:
|
| load_drum_kitB | Load a drum rack and then load a specific drum kit into it. Parameters:
|
| switch_to_arrangement_viewC | Switch Ableton's main window to the Arrangement view. Parameters:
|
| set_arrangement_timeA | Move the arrangement playhead to a specific position. Parameters:
|
| get_arrangement_clipsA | List all clips placed in the Arrangement timeline for a track. Returns each clip's name, start_time, end_time, length, and type. Parameters:
|
| duplicate_to_arrangementA | Copy a Session-view clip into the Arrangement timeline. Uses Live's track.duplicate_clip_to_arrangement() API (Live 11 / 12). The clip is placed at destination_time beats from the start of the arrangement on the same track it lives in. Typical workflow:
Parameters:
|
| create_locatorA | Create a named locator (cue point) in the Arrangement at a beat position. If a locator already exists at that beat (within ~1e-3 tolerance) it is renamed instead of toggled off. Time is in beats from the start of the arrangement (e.g. 0.0 = start, 16.0 = bar 5 in 4/4). Parameters:
|
| submit_intentA | Record the human's creative intent for subsequent actions in this session. Call this before a sequence of edits so trajectory steps are conditioned on intent. Levels: 1=atomic, 2=musical op, 3=section, 4=song, 5=creative goal. Requires telemetry consent. Data is stored in Supabase (same project as telemetry). Parameters:
|
| rate_last_actionA | Rate the most recent recorded action (or the track after an edit). Ratings: better | same | worse | keep | reject | thumbs_up | thumbs_down Optional tags (comma-separated): groove, harmony, melody, sound, arrangement, energy, mix, emotion Requires telemetry consent. Parameters:
|
| prefer_candidateA | Record a pairwise preference between two candidate actions or auditions. winner should be 'a', 'b', or an explicit candidate id matching A or B. Requires telemetry consent. Parameters:
|
| reject_last_actionA | Mark the last action as rejected (exploration / preference boundary). Use when the human undoes or discards an agent edit. Requires telemetry consent. Parameters:
|
| record_auditionA | Log a browser/preset/sample audition (keep or reject) for preference learning. Call once per candidate auditioned. Does not load the device — use load_instrument_or_effect when kept=True and you want to commit. Requires telemetry consent. Parameters:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |