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
add_warp_markerB

Add a warp marker to an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • beat_time: The beat time position for the marker

  • sample_time: Optional sample time (calculated automatically if not provided)

create_locatorA

Create a new locator/cue point.

Parameters:

  • time: Position in beats for the locator

  • name: Name for the locator

delete_locatorC

Delete a locator.

Parameters:

  • locator_index: Index of the locator to delete

delete_warp_markerC

Delete a warp marker from an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • beat_time: The beat time position of the marker to delete

get_arrangement_lengthA

Get the length and loop settings of the arrangement.

get_clip_warp_infoC

Get warp information for an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

get_locatorsA

Get all locators/cue points in the arrangement.

get_warp_markersA

Get all warp markers from an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

jump_to_timeA

Jump to a specific time in the arrangement.

Parameters:

  • time: Position in beats to jump to

set_arrangement_loopA

Set the arrangement loop region.

Parameters:

  • start: Loop start position in beats

  • end: Loop end position in beats

  • enabled: Whether to enable looping

set_clip_warp_modeB

Set the warp mode of an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • warp_mode: Warp mode (beats, tones, texture, repitch, complex, complex_pro)

toggle_arrangement_recordA

Toggle arrangement record mode.

create_arrangement_midi_clipA

Create a MIDI clip in the Arrangement view, optionally filled with notes.

Session clips and Arrangement clips use different Live APIs. This is the Arrangement path (Live 11+). Notes are optional and may carry probability, same shape as add_notes_with_probability.

Parameters:

  • track_index: The index of the MIDI track

  • start_time: Where the clip starts in the arrangement, in beats

  • length: Clip length in beats

  • notes: Optional list of note dicts (pitch, start_time, duration, velocity, mute, optional probability). Note start_time is relative to the clip.

get_arrangement_clipsA

Read the clips on a track's Arrangement timeline (name, position, length, MIDI/audio, muted).

Parameters:

  • track_index: The index of the track

get_arrangement_clip_notesA

Read the MIDI notes of a clip on a track's Arrangement timeline.

get_clip_notes addresses Session clip slots, so it cannot see notes that live on the timeline and reports "No clip in slot" instead. Use this for Arrangement clips, with the clip_index reported by get_arrangement_clips.

Returns probability and velocity_deviation per note where Live exposes them (has_probability tells you whether it could).

A looped clip stores one copy of its notes and repeats them, so a 16-beat loop stretched across 1147 beats returns 16 beats of notes. Compare loop_start/loop_end against start_time/end_time to see the repetition.

Parameters:

  • track_index: The index of the track

  • clip_index: Index of the clip on the timeline, from get_arrangement_clips

set_arrangement_clip_notesA

Write notes into an existing Arrangement clip, editing it in place.

Prefer this over create_arrangement_midi_clip when the clip already exists. Creating a clip builds a new one, which discards the loop braces, the name, the colour and any clip envelopes. Editing keeps all of it, so a 16-beat loop stretched across 300 bars stays stretched instead of collapsing.

Notes keep probability and velocity_deviation, so randomness and humanization survive. Read with get_arrangement_clip_notes, change what you need, write the whole list back, and everything else is preserved.

Parameters:

  • track_index: The index of the track

  • clip_index: Index of the clip on the timeline, from get_arrangement_clips

  • notes: Note dicts (pitch, start_time, duration, velocity, mute, optional probability and velocity_deviation). start_time is relative to the clip.

  • replace: True clears the clip's existing notes first. False layers the new notes on top of what is already there.

clear_clip_automationC

Clear automation for a clip parameter.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • parameter_name: Name of the parameter to clear automation for

get_clip_automationC

Get automation data for a clip parameter.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • parameter_name: Name of the parameter to get automation for

set_clip_automationC

Set automation for a clip parameter.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • parameter_name: Name of the parameter to automate

  • envelope_data: List of points [{"time": 0.0, "value": 0.5}, ...]

add_shaped_automationA

Draw a repeating waveform onto any device parameter as clip automation.

This is NOT a free-running LFO. The curve is baked into the clip and repeats every loop, phase-locked to the bar. For a genuinely free-running LFO on an arbitrary parameter you still need a Max for Live LFO, whose Map button the API cannot set (ask the user to click it). Use this when a loop-locked, editable curve is acceptable, and use a long or coprime clip length if you want the repetition to be hard to notice.

Parameters:

  • track_index, clip_index: the clip to draw the automation into

  • parameter_name: the parameter to modulate

  • device_index: which device on the track owns that parameter

  • shape: sine, triangle, saw, square, or random

  • cycles: how many full waveform cycles across the clip (can be fractional)

  • min_value, max_value: the range the parameter sweeps between

  • points: resolution of the drawn curve (more = smoother)

browse_pathB

Navigate browser by path list to get items at that location.

Parameters:

  • path: List of path components, e.g. ["Audio Effects", "EQ Eight"] or ["Sounds", "Bass"]

get_browser_items_at_pathB

Get browser items at a specific path in Ableton's browser.

Parameters:

  • path: Path in the format "category/folder/subfolder" where category is one of the available browser categories in Ableton

get_browser_treeA

Get a hierarchical tree of browser categories from Ableton.

Parameters:

  • category_type: Type of categories to get ('all', 'instruments', 'sounds', 'drums', 'audio_effects', 'midi_effects')

load_drum_kitB

Load a drum rack and then load a specific drum kit into it.

Parameters:

  • track_index: The index of the track to load on

  • rack_uri: The URI of the drum rack to load (e.g., 'Drums/Drum Rack')

  • kit_path: Path to the drum kit inside the browser (e.g., 'drums/acoustic/kit1')

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')

load_item_to_returnA

Load a browser item (effect) onto a return track by URI.

Parameters:

  • return_index: The index of the return track to load the item onto

  • uri: The URI of the browser item (obtained from browse_path or search_browser)

load_item_to_trackA

Load a browser item (instrument or effect) onto a track by URI.

Parameters:

  • track_index: The index of the track to load the item onto

  • uri: The URI of the browser item (obtained from browse_path or search_browser)

search_browserA

Search the browser for items matching a query.

Parameters:

  • query: Search term to find in item names

  • category: Category to search in (all, instruments, sounds, drums, audio_effects, midi_effects)

create_clipA

Create a new MIDI clip in the specified track and clip slot.

Parameters:

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

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

  • length: The length of the clip in beats (default: 4.0)

delete_clipA

Delete a clip from a clip slot.

Parameters:

  • track_index: The index of the track containing the clip

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

duplicate_clipA

Duplicate a clip to the next empty slot.

Parameters:

  • track_index: The index of the track containing the clip

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

fire_clipB

Start 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

get_clip_colorA

Get the color of a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot

get_clip_gainB

Get the gain of an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

get_clip_loopC

Get the loop settings of a clip.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot

get_clip_pitchB

Get the pitch shift of an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

humanize_clip_timingA

Add random timing variation to notes in a clip for a more human feel.

Parameters:

  • track_index: The index of the track containing the clip

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

  • amount: Amount of timing variation in beats (0.05 = subtle, 0.1 = moderate, 0.2 = heavy)

humanize_clip_velocityA

Add random velocity variation to notes in a clip for a more human feel.

Parameters:

  • track_index: The index of the track containing the clip

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

  • amount: Amount of velocity variation (0.1 = +/-10%, 0.2 = +/-20%)

select_clipC

Select a clip slot.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot

set_clip_colorB

Set the color of a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

  • color: The color index (0-69 in Ableton's color palette)

set_clip_gainB

Set the gain of an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • gain: Gain in dB (e.g., -6.0 for -6dB, 3.0 for +3dB)

set_clip_loopA

Set the loop settings of a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

  • loop_start: The start point of the loop in beats

  • loop_end: The end point of the loop in beats

  • looping: Whether looping is enabled

set_clip_nameB

Set the name of a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

  • name: The new name for the clip

set_clip_pitchA

Set the pitch shift of an audio clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • pitch: Pitch shift in semitones (-48 to +48)

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

set_clip_follow_actionA

Set a clip's follow action, so it advances to another clip on its own.

This is how you get generative arrangements that progress while each track keeps looping independently.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • action_a, action_b: one of none, stop, again, previous, next, first, last, any, other, jump. The clip picks between A and B by chance.

  • chance: weighting between action_a and action_b (0.0 to 1.0)

  • time: how long before the action fires, in bars

  • enabled: turn the clip's follow-action switch on or off

quantize_clipB

Quantize the notes in a clip to a grid.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • quantize_to: Grid in beats (0.25 = sixteenth note, 1.0 = quarter note)

  • amount: How strongly to pull toward the grid (0.0 to 1.0)

set_clip_fade_inA

Set an audio clip's fade-in region, in beats.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • start: Fade-in start position in beats

  • end: Fade-in end position in beats

set_clip_fade_outA

Set an audio clip's fade-out region, in beats.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • start: Fade-out start position in beats

  • end: Fade-out end position in beats

set_clip_start_markerA

Set a clip's start marker, in beats.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • position: Start marker position in beats

set_clip_end_markerB

Set a clip's end marker, in beats.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • position: End marker position in beats

delete_deviceA

Delete a device from a track.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device to delete

generate_drum_patternA

Generate a drum pattern and add it to a clip.

Parameters:

  • track_index: The index of the track (should be a drum track)

  • clip_index: The index of the clip slot

  • style: Pattern style (basic, house, hiphop, dnb, random)

  • length: Pattern length in beats

get_device_by_nameC

Find a device by name and get its parameters.

Parameters:

  • track_index: The index of the track

  • device_name: The name of the device to find

get_device_parametersA

Get all parameters from a device on a track.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device on the track

get_rack_chainsC

Get chains from an instrument or effect rack.

Parameters:

  • track_index: The index of the track

  • device_index: The index of the rack device

move_device_leftA

Move a device one position to the left in the device chain.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device to move

move_device_rightA

Move a device one position to the right in the device chain.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device to move

select_rack_chainA

Select a chain in a rack device.

Parameters:

  • track_index: The index of the track

  • device_index: The index of the rack device

  • chain_index: The index of the chain to select

set_device_parameterA

Set a device parameter value.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device on the track

  • parameter_index: The index of the parameter to set

  • value: The new value for the parameter (will be clamped to valid range)

toggle_deviceA

Toggle a device on or off.

Parameters:

  • track_index: The index of the track containing the device

  • device_index: The index of the device on the track

get_chain_device_parametersA

Get parameters of a device nested inside a rack chain, for example one drum pad's synth.

Plain get_device_parameters on a rack only returns the rack's own macros, which are usually unassigned. Use get_rack_chains first to find the chain index, then this to reach the device inside it.

Parameters:

  • track_index: The index of the track

  • device_index: The index of the rack on the track

  • chain_index: The index of the chain inside the rack

  • chain_device_index: The index of the device inside that chain

set_chain_device_parameterA

Set a parameter on a device nested inside a rack chain, for example a drum pad's decay.

The parameter name is resolved within that one device only, so it cannot grab a same-named parameter from elsewhere.

Parameters:

  • track_index: The index of the track

  • device_index: The index of the rack on the track

  • chain_index: The index of the chain inside the rack

  • chain_device_index: The index of the device inside that chain

  • parameter_name: Name of the parameter to set

  • value: The new value (clamped to the parameter's range)

get_master_device_parametersA

Get parameters of a device on the Master track (e.g. a mastering compressor).

The Master track holds effects like the rest, and the Live API reaches them fine; they just need this dedicated command.

Parameters:

  • device_index: The index of the device on the Master track

set_master_device_parameterA

Set a parameter on a Master-track device (e.g. the Glue Compressor threshold).

Parameters:

  • device_index: The index of the device on the Master track

  • parameter_name: Name of the parameter to set

  • value: The new value (clamped to the parameter's range)

get_return_device_parametersA

Get parameters of a device on a return track (e.g. a reverb on Return A).

Parameters:

  • return_index: The index of the return track (0 = A, 1 = B, ...)

  • device_index: The index of the device on that return track

set_return_device_parameterA

Set a parameter on a return-track device (e.g. reverb decay on Return A).

Parameters:

  • return_index: The index of the return track (0 = A, 1 = B, ...)

  • device_index: The index of the device on that return track

  • parameter_name: Name of the parameter to set

  • value: The new value (clamped to the parameter's range)

generate_basslineA

Generate a bassline pattern and add it to a clip.

Parameters:

  • track_index: The index of the track (should be a bass track)

  • clip_index: The index of the clip slot

  • root: Root note MIDI number (36 = C1, common bass range)

  • scale_type: Scale to use (minor, major, dorian, pentatonic_minor, blues)

  • length: Pattern length in beats

add_notes_to_clipC

Add MIDI notes to a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

  • notes: List of note dictionaries, each with pitch, start_time, duration, velocity, and mute

add_notes_with_probabilityA

Add MIDI notes carrying per-note probability and velocity deviation.

Prefer this over add_notes_to_clip for anything generative. Plain add_notes_to_clip uses Live's legacy API, which has no probability field and silently drops it.

Parameters:

  • track_index: The index of the track containing the clip

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

  • notes: List of note dictionaries. Each takes pitch, start_time, duration, velocity, mute, plus optional probability (0.0 to 1.0) and velocity_deviation.

  • replace: Replace existing notes in the clip (default True)

get_clip_notesB

Get all MIDI notes from a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

get_scale_notesA

Get the notes in a musical scale.

Parameters:

  • root: MIDI note number for the root (0-127, where 60 = middle C)

  • scale_type: Type of scale (major, minor, dorian, phrygian, lydian, mixolydian, locrian, harmonic_minor, melodic_minor, pentatonic_major, pentatonic_minor, blues, chromatic)

quantize_clip_notesA

Quantize notes in a clip to a grid.

Parameters:

  • track_index: The index of the track containing the clip

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

  • grid: Grid size in beats (0.25 = 16th notes, 0.5 = 8th notes, 1.0 = quarter notes)

remove_all_notesB

Remove all notes from a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

remove_notesA

Remove notes from a clip within a specified range.

Parameters:

  • track_index: The index of the track containing the clip

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

  • from_time: Start time in beats

  • time_span: Duration in beats

  • from_pitch: Starting MIDI pitch (0-127)

  • pitch_span: Number of pitches to include

transpose_notesA

Transpose all notes in a clip.

Parameters:

  • track_index: The index of the track containing the clip

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

  • semitones: Number of semitones to transpose (positive = up, negative = down)

apply_grooveB

Apply a groove to a clip.

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

  • groove_index: The index of the groove from the groove pool

capture_midiA

Capture MIDI that was played recently (like Ableton's Capture feature).

commit_grooveC

Commit groove quantization to clip notes (make it permanent).

Parameters:

  • track_index: The index of the track

  • clip_index: The index of the clip slot

create_sceneB

Create a new scene.

Parameters:

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

delete_sceneC

Delete a scene.

Parameters:

  • scene_index: The index of the scene to delete

duplicate_sceneC

Duplicate a scene.

Parameters:

  • scene_index: The index of the scene to duplicate

fire_sceneA

Fire (trigger) a scene to play all clips in that row.

Parameters:

  • scene_index: The index of the scene to fire

focus_viewB

Focus a specific view in Ableton.

Parameters:

  • view_name: The name of the view (Session, Arranger, Detail, etc.)

get_all_scenesB

Get information about all scenes in the session.

get_available_inputsC

Get available input routing options for a track.

Parameters:

  • track_index: The index of the track

get_available_outputsC

Get available output routing options for a track.

Parameters:

  • track_index: The index of the track

get_cpu_loadA

Get the current CPU load of Ableton.

get_current_viewB

Get information about the current view state (selected track, scene, etc.).

get_groove_poolA

Get available grooves from the groove pool.

get_metronome_stateA

Get the current metronome state.

get_playback_positionA

Get the current playback position and transport state.

get_scene_colorC

Get the color of a scene.

Parameters:

  • scene_index: The index of the scene

get_session_infoC

Get detailed information about the current Ableton session

get_session_pathA

Get the file path of the current session.

health_checkA

Check if Ableton Live is connected and responsive.

is_session_modifiedA

Check if the session has unsaved changes.

redoA

Redo the last undone operation in Ableton.

select_sceneC

Select a scene.

Parameters:

  • scene_index: The index of the scene to select

set_metronomeA

Turn the metronome on or off.

Parameters:

  • enabled: True to enable, False to disable

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

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/freekmurze/ableton-ai'

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