Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_session_infoA

Return global Live-set and transport state without modifying the set.

Includes tempo, song time signature, playback position/state, Arrangement loop, track/return/scene counts, scene names, key/scale, record mode, launch quantization, Master volume/pan, and Live version. Use get_track_info for a single track's clips/devices, or get_session_snapshot for a compact overview of every track.

set_tempoA

Set the tempo of the Ableton session.

Parameters:

  • tempo: The new tempo in BPM

start_playbackA

Start Arrangement playback from the current song time. NOTE: the response reports the PRE-command state (may say playing=false right after starting) - confirm with get_session_info.

stop_playbackA

Stop playback. NOTE: the response reports the PRE-command state - confirm with get_session_info.

create_sceneA

Create a new scene (row of clip slots). index -1 appends at the end.

create_locatorA

Create or rename an Arrangement locator at an absolute beat position.

SIDE EFFECT: first moves the Arrangement playhead to time, because Live creates cues at the playhead. If a locator already exists there, it is reused and renamed when name is provided. Use set_arrangement_time when only the playhead should move, and get_locators to inspect existing markers.

fire_sceneA

Launch a Session-view scene using Live's launch quantization.

This fires the row's clips together and can replace or stop clips currently playing on the affected tracks according to each slot's launch behavior. Use fire_clip to launch only one track's clip, or start_playback when the intent is Arrangement transport rather than Session launching.

set_scene_nameA

Rename one Session-view scene without changing any clips in the row.

Use set_clip_name for an individual clip. Repeating the same name has no additional effect.

set_time_signatureA

Set the Live set's global time signature, such as 4/4, 3/4, or 6/8.

This changes bar/grid and metronome interpretation but does not rewrite clip notes. Use set_clip_signature instead when only one clip needs a different meter for polymeter. Repeating the same signature has no additional effect.

set_loopA

Set the global Arrangement loop region and its enabled state.

start is an absolute beat and length is a positive beat duration. The region is updated even when enabled=false; playback simply will not repeat it. Use set_clip_loop for a Session clip's loop braces, not the Arrangement.

undoA

Revert the most recent undoable Live-set action.

This mutates the set and may remove newly created content or restore deleted content. It has no target parameter: Live chooses the top undo-history entry. Use redo to reapply an accidental undo. Prefer batch_commands for related edits so one undo reverts the group.

redoA

Redo the last undone action in Live.

batch_commandsA

Run several commands in ONE round-trip and ONE undo step (atomic-ish: stops at the first error; completed steps are a single undo away).

commands = [{"type": "", "params": {...}}, ...]. Command names match the MCP tool names (the few that differ are auto-translated), e.g. [{"type": "set_tempo", "params": {"tempo": 80}}, {"type": "create_midi_track", "params": {"index": -1}}]. Composite tools (record_section, load_drum_kit, apply_recipe, save_set, the generate_* tools) are NOT batchable - they orchestrate multiple commands server-side. Prefer this for multi-step edits: fewer round-trips, one undo reverts all.

capture_midiA

Grab recently played MIDI into a new clip (Live's Capture MIDI). Requires that MIDI was recently played into an armed/monitored track.

set_song_scaleA

Set the song's key context. root_note 0-11 (0=C, 2=D...), scale_name e.g. "Major", "Minor", "Dorian". Read current values via get_session_info.

set_metronomeA

Turn Live's metronome click on/off.

stop_all_clipsA

Stop every playing Session clip (does not stop the transport).

back_to_arrangerA

Return playback control to the Arrangement (after Session clips have overridden arrangement content - the orange 'Back to Arrangement' state).

set_record_modeA

Arm or disarm Live's global Arrangement Record state.

true enables Arrangement recording; false disables it. Enabling alone does not record: arm the intended tracks with set_track_arm, then use start_playback. Use set_session_record or trigger_session_record for Session slots instead. Repeating the current state has no additional effect.

set_session_recordA

Toggle Session record (records into armed tracks' selected Session slots; also enables MIDI overdub into playing clips).

continue_playingA

Resume playback from the current position (start_playback restarts from the playhead's last start point instead).

set_clip_trigger_quantizationA

Global launch quantization for firing clips/scenes. 0=None (instant, good for auditioning), 4=1 bar (default), 7=1/4 note, 13=1/32.

delete_sceneA

Delete a scene (row). Later scene indices shift down by one.

duplicate_sceneA

Insert a copy of one Session scene, including every clip in its row.

This creates new content and increases the scene count; later scene indices shift to make room. Use duplicate_track for a whole track or duplicate_clip_to for one clip. Use the new scene as an editable section variation.

capture_and_insert_sceneA

Snapshot the currently playing Session clips into a new scene - the 'keep that combination' workflow.

get_locatorsA

List arrangement locators (index, name, beat time) for structure-aware navigation. Jump with jump_to_locator.

jump_to_locatorA

Move the playhead to a locator (index from get_locators).

re_enable_automationA

Restore automation that was overridden by manual parameter changes. IMPORTANT: setting a device parameter that has an envelope overrides the envelope until this is called.

set_arrangement_overdubA

Toggle arrangement overdub: recording layers MIDI onto existing arrangement clips instead of replacing them.

set_session_automation_recordA

Toggle recording of parameter changes into Session clip envelopes - an alternative to write_automation for captured knob rides.

trigger_session_recordA

Start Session recording into armed tracks; record_length in beats records a fixed-length loop (e.g. 16.0 = 4 bars) then auto-switches to playback.

tap_tempoA

Tap the tempo once. Tapping repeatedly at a beat sets the tempo to that rate; a single tap nudges the transport. Returns the resulting tempo.

set_groove_amountA

Set the global Groove Amount (0.0 to 1.0), which scales how strongly every clip's assigned groove is applied across the whole set.

set_swing_amountA

Set the global swing amount (0.0 to 1.0) used when quantizing with swing.

jump_byA

Move the playhead by a relative number of beats (negative moves back). Works during playback for on-the-fly navigation.

jump_to_cueA

Jump the playhead to the next locator/cue (direction >= 0) or the previous one (direction < 0).

set_ableton_linkA

Enable or disable Ableton Link, which syncs tempo and phase with other Link-enabled apps and devices on the local network.

get_session_snapshotA

One-call overview of the whole set: tempo, time signature, play state, and for every track its name, type, mute/solo/arm, volume, clip count, and device names, plus return-track names. Prefer this over many get_track_info calls.

get_scale_infoA

Read the song's scale and tuning: scale name, root note, scale intervals, and the active tuning system (microtonal, Live 12.3+) if any. Set the scale with set_song_scale; tune device parameters (e.g. Wavetable) with set_device_parameter.

save_setA

Save the current Live set to its existing file, if the Live API supports it (it does not on most versions). Returns whether the API call is available and whether the save succeeded. To save under a new name/path, use the GUI Save-As.

get_track_infoA

Return detailed state for one regular track without modifying the set.

Includes name/type, mixer and arm/mute/solo state, sends, freeze/color state, playing/fired slot indices, every Session slot's basic clip state, and the device-chain names/types. Use get_session_info for global transport state, get_device_parameters for parameter values, or get_clip_info for full clip properties.

create_midi_trackA

Create a new MIDI track in the Ableton session.

Parameters:

  • index: The index to insert the track at (-1 = end of list)

set_track_nameA

Set the name of a track.

Parameters:

  • track_index: The index of the track to rename

  • name: The new name for the track

delete_trackA

Delete a track. NOTE: indices of all later tracks shift down by one.

set_track_volumeA

Set track volume. Range 0.0-1.0 where 0.85 = 0 dB (unity gain).

set_track_panA

Set one regular track's stereo pan position; 0.0 is centered.

Live clamps the value to the track's native range. This changes mixer state, not the audio file or clip content. Use set_master_device_parameter for a device control, and set_crossfader for A/B crossfading.

set_track_muteA

Set one regular track's mute state (true mutes; false unmutes).

Muting silences that track in Live but preserves its clips, devices, and mixer settings. Use set_track_solo to audition a track relative to the rest, or stop_clip when only Session clip playback should stop.

set_track_soloA

Set one regular track's solo state (true solos; false unsolos).

Solo changes monitoring relative to other tracks and does not alter clip or device content. Other tracks may remain soloed, so clear them separately when exclusive auditioning is required. Use set_track_mute to silence this track.

set_master_volumeA

Set the Main/Master track volume. Range 0.0-1.0 where 0.85 = 0 dB.

set_sendA

Set a track's send level (send_index 0 = Return A, 1 = Return B, ...). Range 0.0-1.0.

create_return_trackA

Create a new return track (a send bus, e.g. for shared reverb or delay).

delete_return_trackA

Delete a return track by index (0 = Return A). Later returns shift down.

create_audio_trackA

Insert an empty audio track at a chosen position, or append with -1.

Non-negative indices insert before the current track at that position and shift it and later track indices up. Use create_midi_track for instruments and MIDI clips, or create_return_track for a shared send-effect bus.

get_return_tracksA

List return tracks (index + name).

set_track_colorA

Set a track's color by index (0-69 in Live's palette).

duplicate_trackA

Insert a copy of one regular track, including its devices and clips.

This creates new content and increases the track count; later track indices shift to make room. Use duplicate_scene for a Session row or duplicate_clip_to for one clip. Rename or edit the copy to create a variation.

set_track_armA

Arm or disarm a track for recording (fails on tracks that can't be armed, e.g. group/return tracks).

get_track_metersA

Read a track's output level meters (post-fader): left/right 0.0-1.0ish (0.85 ≈ 0 dB, like faders). Poll during playback to judge balance/clipping - this is how you 'listen' without exporting.

get_master_metersA

Read the Master track's output meters - values pinned near 1.0 during playback mean the master is clipping; pull set_master_volume down.

get_track_routingA

Read a track's input/output routing (current + all available options) and monitoring state (0=In, 1=Auto, 2=Off). Routing options are identified by display_name - use those strings with set_track_routing.

set_track_routingA

Set track routing by display name. field: input_routing_type | output_routing_type | input_routing_channel | output_routing_channel. Enables sidechain sources, bus routing, and resampling (route a track's output into another track's input, arm, record). Get options from get_track_routing first.

set_track_monitoringA

Set input monitoring: 0=In (always hear input), 1=Auto, 2=Off. Required for resampling/bounce workflows.

set_crossfaderA

Set the master crossfader (-1.0 = full A, 0 = center, 1.0 = full B).

set_crossfade_assignA

Assign one regular track to crossfader side A, neither side, or side B.

This configures which side affects the track; it does not move the crossfader or change track volume immediately. Use set_crossfader afterward to blend the A/B groups. Repeating the same assignment has no additional effect.

delete_deviceA

Delete a device from a track's chain by its position (0-based). Shifts the indices of later devices, so re-read the chain afterwards.

create_take_laneA

Add a take lane to a track (for comping multiple recorded takes on one track). Returns the new take-lane count.

get_group_infoA

Report a track's group state: whether it is a foldable group track, whether it is inside a group, its fold state, and its parent group's name.

set_fold_stateA

Fold (collapse) or unfold a group track. Errors if the track is not a group track (see get_group_info).

create_clipA

Create an empty MIDI clip in a Session slot. Fails if the slot already has a clip (pick another clip_index or delete_clip first) or the track is an audio track. length is in beats (4.0 = one 4/4 bar). Typical chain: create_clip -> add_notes_to_clip -> fire_clip or duplicate_to_arrangement.

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:

  • track_index: The index of the audio track to create the clip in

  • clip_index: The index of the clip slot to create the clip in

  • path: Absolute path to a supported audio file (e.g. a .wav). The target track must be an audio track and the clip slot must be empty.

add_notes_to_clipA

REPLACES the clip's entire note content with the given notes. Use edit_notes to add or remove a subset without touching the rest.

notes: list of {"pitch": 0-127 (60 = C3 in Live's naming), "start_time": beats from clip start (float), "duration": beats, "velocity": 1-127, "mute": bool}. Precondition: the clip must exist (create_clip first).

set_clip_nameA

Rename an existing Session-view clip without changing its notes or audio.

The slot must contain a clip. Use this for the clip label; use set_track_name for the track label. Repeating the same name has no additional effect.

fire_clipA

Launch one existing Session-view clip using Live's launch quantization.

The slot must contain a clip. Launching it takes Session control of that track and replaces any other playing Session clip on the same track; firing an already-playing clip may retrigger it according to its launch settings. Use fire_scene to launch a whole row, or continue_playing for transport only.

stop_clipA

Stop playing a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot containing the clip

delete_clipA

Delete the existing Session-view clip in a slot, including its content.

This leaves the slot empty and does not shift other slot indices. It fails for an empty slot. Use stop_clip if the intent is only to stop playback; use undo immediately if the deletion was accidental.

get_clip_notesA

Return every MIDI note in an existing Session-view MIDI clip.

Each note includes pitch, start time, duration, velocity, and mute state; newer Live versions may add expression fields. This is read-only and fails for an empty slot or audio clip. Use get_clip_info for clip properties.

get_groovesA

List grooves in the Groove Pool (index + name) and the global groove amount.

set_clip_grooveA

Attach a Groove Pool groove to a clip by index (swing/timing feel). Pass no groove_index to clear.

quantize_clipA

Quantize a MIDI clip. grid: quarter/eighth/eighth_triplet/sixteenth/sixteenth_triplet/thirtysecond. amount 0.0-1.0 (use <1.0 to humanize toward the grid without full snap).

set_clip_audioA

Set audio-clip properties. gain 0-1, pitch_coarse semitones (-48..48), pitch_fine cents, warping on/off, warp_mode 0=Beats 1=Tones 2=Texture 3=Re-Pitch 4=Complex 6=Complex Pro.

set_clip_loopA

Update selected loop and launch markers on one existing Session clip.

Provide at least one optional field; omitted fields stay unchanged. start and end are loop-brace positions in clip-relative beats and end must be after start. start_marker controls where non-looped launch begins; looping enables or disables repetition. Use set_loop for the Arrangement's global loop region, not a clip, and get_clip_info to inspect current values.

edit_notesA

Edit a subset of notes in a MIDI clip without rewriting all of them. add = [{pitch,start_time,duration,velocity,mute}], remove = [{pitch,start_time}] (matched by pitch+start).

set_clip_colorA

Set an existing Session clip's palette color without changing its content.

This is a visual organization change only. Use set_track_color to recolor the track header instead. Repeating the same color has no additional effect.

get_clip_infoA

Full clip state: loop points, markers, playing position, per-clip time signature; for audio clips also file path, gain display, and warp markers.

duplicate_clip_toA

Copy a Session clip to any other track/scene slot (overwrites the destination slot). The cross-track way to build variations.

clip_operationA

Structural clip edits. op: "duplicate_loop" (double the loop, duplicating notes - extend 2 bars to 4 before adding variation), "crop" (discard material outside the loop), "duplicate_region" (copy notes from region_start/region_length to destination_time, optionally transposing by transposition_amount semitones; pitch=-1 means all pitches).

set_clip_signatureA

Set a clip's own time signature (polymeter / odd-bar loops).

load_instrument_or_effectA

Load an instrument or effect onto a track using its URI.

Parameters:

  • track_index: The index of the track to load the instrument on

  • uri: The URI of the instrument or effect to load (e.g., 'query:Synths#Instrument%20Rack:Bass:FileId_5116')

get_device_parametersA

List all parameters of a device on a track: names, values, ranges, display strings.

set_device_parameterA

Set a device parameter by name or index. Value is clamped to the parameter's min/max.

set_device_enabledA

Enable or bypass one device on a regular track.

true turns the device on; false bypasses its processing while preserving the device and parameter values. This changes audible signal flow but not clip content. Use set_track_mute to silence the whole track, or set_device_parameter to change one control.

load_device_to_returnA

Append one loadable browser device or preset to a return track's chain.

Obtain item_uri from search_browser. Loading selects the return track in Live and creates a new device, so repeated calls add duplicates. Prefer audio effects on returns; use load_instrument_or_effect for a regular track or load_device_to_master for the Master chain.

load_device_to_masterA

Load a device/effect from the browser onto the Master/Main track (e.g. a limiter for mastering).

get_master_device_parametersA

List parameters of a device on the Master track.

set_master_device_parameterA

Set one enabled parameter on a device in the Master track's chain.

Call get_master_device_parameters first and use its parameter name/index and native min/max; out-of-range values are clamped. This affects the full mix. Use set_device_parameter for a regular track or set_return_device_parameter for a return track.

set_return_device_parameterA

Set one enabled parameter on a device in a return track's chain.

Call get_return_device_parameters first and use its parameter name/index and native min/max; out-of-range values are clamped. Use set_device_parameter for a regular track or set_master_device_parameter for the full-mix chain.

get_return_device_parametersA

List parameters of a device on a Return track: names, values, min/max, display strings. Call before set_return_device_parameter.

get_rack_chainsA

List an Instrument/Effect Rack's chains and the devices inside each - previously unreachable nested devices. Use set_chain_device_parameter to control them.

set_chain_device_parameterA

Set a parameter on a device INSIDE a rack chain (indices from get_rack_chains). Values clamp to the parameter's native range.

get_drum_padsA

List a Drum Rack's occupied pads (MIDI note, name, mute, solo).

Prompts

Interactive templates invoked by user choice

NameDescription
make_a_beatGuided workflow: compose a beat from scratch in the current Live set.
mix_and_masterGuided workflow: balance, bus processing, and in-Live mastering.
start_a_trackGuided workflow: scaffold a genre starter fast, then build on it.
sound_designGuided workflow: shape an instrument and its effect chain.
analyze_and_improveGuided workflow: use the read-back tools to judge and improve the set.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wstierhout/ableton-live-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server