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_sessionA

Get current Ableton session state: tempo, time signature, playback status, loop settings.

set_tempoA

Set the project tempo in BPM (60–200).

set_time_signatureB

Set the time signature (e.g. numerator=4, denominator=4 for 4/4).

playA

Start playback from the current position.

stopA

Stop playback and return to position 0.

continue_playbackA

Continue playback from the current position (does not reset to 0).

toggle_recordA

Toggle session record mode on/off.

set_loopC

Enable/disable loop and optionally set loop start and length in bars.

set_metronomeC

Toggle Ableton's metronome on or off.

get_mixerA

Get master volume, master pan, cue volume, and crossfader values.

set_master_volumeA

Set master volume. Range: 0.0 (silent) to 1.0 (0 dB). Above 1.0 boosts up to +6dB.

set_crossfaderA

Set the crossfader position. Range: -1.0 (full A) to 1.0 (full B), 0.0 = center.

list_tracksA

List all tracks in the session (audio, MIDI, and return tracks) with their properties.

get_trackB

Get detailed info about a specific track by index.

create_trackB

Create a new track. track_type: 'audio', 'midi', or 'return'. insert_at: position index (-1 = end). color: name ('red','blue','green',...) or integer color ID.

update_trackB

Update track properties. All parameters are optional. volume: 0.0–1.0+ (1.0 = 0dB). pan: -1.0 (left) to 1.0 (right).

delete_trackB

Permanently delete a track by index. This cannot be undone via API.

duplicate_trackA

Duplicate a track. The copy is inserted directly after the original.

get_sendsA

Get all send levels for a track (one send per return track).

set_sendA

Set a send level for a track. send_index: 0 = first return track, 1 = second, etc. value: 0.0 (off) to 1.0 (100%).

list_groupsA

List all group tracks in the session with their children and state.

get_groupC

Get details of a group track including all child track indices.

create_groupA

Group a set of contiguous tracks into a Group Track. track_indices: list of adjacent track indices to group (must be contiguous). The group bus gets its own volume/pan/devices.

update_groupB

Update a group track's name, volume, pan, mute, or solo state.

fold_groupA

Fold or unfold a group track (hide/show child tracks in the session view).

ungroupB

Dissolve a group track, returning its children to the top level.

get_group_childrenA

List all tracks that belong to a group track.

get_track_routingB

Get input/output routing for a track: audio source, monitoring mode, output destination, and all available routing options.

set_track_inputA

Set the audio/MIDI input for a track. Use get_track_routing first to see available input names. channel: optional sub-routing (e.g. '1/2', 'Left', 'Ch. 1')

set_track_outputA

Set the audio output routing for a track. Use get_routing_options to see available output names.

set_monitoring_modeA

Set the input monitoring mode for a track. mode: 'in' (always monitor input), 'auto' (monitor when armed), 'off' (no monitoring)

get_routing_optionsA

List all available audio I/O routing options (inputs, outputs, channels).

setup_sidechainA

Configure sidechain compression: route sidechain_source into the compressor on target_track so it ducks when the source plays (e.g., kick sidechain on bass).

target_track_index: track with the compressor/gate to sidechain sidechain_source_index: track whose signal triggers the ducking (e.g., kick)

list_return_tracksA

List all return tracks (A, B, C...) with their devices and current state.

create_return_trackC

Add a new return track to the session.

update_return_trackB

Update a return track's name, volume, pan, or mute state.

add_device_to_returnB

Add a plugin/device to a return track. Use return tracks for shared effects (reverb, delay) that multiple tracks send to.

list_clipsB

List all clip slots for a track, showing which slots have clips.

get_clipA

Get detailed info about a clip including loop settings and warp mode.

create_clipC

Create a new MIDI clip in a slot. length: clip length in bars (e.g. 4.0 = 4 bars).

update_clipA

Update clip properties. Works for both MIDI and audio clips. loop_start/loop_end: in beats. gain: 0.0–1.0 (audio clips only).

delete_clipC

Delete a clip from a slot.

fire_clipC

Launch (fire) a clip slot. Equivalent to clicking the clip launch button.

stop_clipC

Stop a playing clip on a specific track.

get_notesB

Get all MIDI notes from a MIDI clip. Returns pitch, start time, duration, velocity.

add_notesC

Add MIDI notes to a clip. notes: list of objects with fields: pitch (0-127), start (beats), duration (beats), velocity (0-127), mute (bool, optional). Example: [{"pitch": 60, "start": 0.0, "duration": 1.0, "velocity": 100}]

clear_notesB

Remove all MIDI notes from a clip.

list_arrangement_clipsB

List all clips placed in the Arrangement View timeline for a track. Returns start_time, length, name, and other properties for each clip.

place_clip_in_arrangementA

Create a MIDI clip directly in the Arrangement View at a specific timeline position. Requires Ableton Live 10.1+ and a MIDI track.

position_beats: start position in beats from the song start (e.g. 0.0 = bar 1, 4.0 = bar 2 in 4/4). length_beats: clip length in beats (e.g. 4.0 = 1 bar in 4/4, 16.0 = 4 bars). name: optional clip name.

After creating, use add_notes to populate it with MIDI content.

delete_arrangement_clipA

Delete a clip from the Arrangement View timeline. Use list_arrangement_clips to find the clip_index.

list_devicesB

List all devices (plugins) on a track with their name, type, and parameter count.

get_deviceA

Get full details of a device including all parameters with current values, min, max. Useful to discover what parameters a plugin exposes before editing them.

add_deviceA

Add a device or plugin to a track by searching Ableton's browser. Works for: Ableton native (e.g. 'Reverb', 'Compressor'), VST plugins (e.g. 'FabFilter Pro-Q 3', 'Waves SSL E-Channel', 'Serum'). Plugin must be installed and scanned in Ableton.

enable_deviceB

Enable or disable a device (bypass). enabled=False bypasses the plugin.

delete_deviceB

Remove a device from a track's device chain. Cannot be undone via API.

list_parametersC

List all parameters of a device with current value, range, and display string.

set_parameter_by_indexA

Set a device parameter value by its index. Use list_parameters first to find the right index and valid range.

set_parameter_by_nameB

Set a device parameter value by its name (case-insensitive match). Example: set_parameter_by_name(0, 0, "Frequency", 1000.0)

load_presetB

Load a preset onto an existing device by searching Ableton's browser. preset_name must match exactly as shown in Ableton's browser.

get_rack_infoB

Get overview of a rack device: chain count, macro count, rack type.

list_chainsC

List all chains inside an Instrument Rack, Effect Rack, or Drum Rack.

get_chain_detailsB

Get full details of a rack chain including its device list.

set_chain_volumeC

Set the volume of a rack chain (0.0–1.0).

set_chain_panB

Set the pan of a rack chain (-1.0=left, 0.0=center, 1.0=right).

mute_chainC

Mute or unmute a rack chain.

get_chain_devicesC

List devices inside a specific rack chain.

get_macrosA

Get all macro knob values for a rack device (Macro 1–8).

set_macroB

Set a macro knob value on a rack. macro: macro index (0–7) or name (e.g. 'Macro 1', 'Cutoff', etc.) value: within the macro's range (usually 0.0–127.0 or 0.0–1.0)

list_drum_padsB

List all populated drum pads in a Drum Rack with their note assignments.

get_drum_padB

Get details of a drum pad by MIDI note number (e.g. 36=kick, 38=snare, 42=hihat).

mute_drum_padB

Mute or unmute a specific drum pad by MIDI note number.

list_scenesA

List all scenes with their name, color, and clip count.

get_sceneC

Get details for a specific scene.

create_sceneB

Create a new scene. insert_at: position (-1 = end of scene list).

update_sceneC

Update a scene's properties. time_signature: string like '4/4' or '3/4'. tempo: BPM override for this scene (if supported by your Ableton version).

delete_sceneA

Delete a scene. All clips in that row are also removed.

fire_sceneB

Launch all clips in a scene row simultaneously.

list_clip_automationB

List all automation envelopes in a clip. Each envelope controls one device parameter.

create_automationA

Create automation for a device parameter in a clip. points: list of {"time": beat_position, "value": param_value, "duration": 0.0} duration=0 creates a step (instant change). duration>0 creates a linear ramp. Example: automate filter cutoff from open to closed over 4 bars: points=[{"time":0,"value":1000},{"time":2,"value":200},{"time":4,"value":1000}]

add_automation_pointsC

Add breakpoints to an existing automation envelope. points: [{"time": 0.0, "value": 0.5, "duration": 0.0}, ...]

remove_automation_pointC

Remove a single automation breakpoint at a specific beat position.

clear_automation_envelopeA

Clear all breakpoints from an automation envelope (keeps the envelope, removes all data).

delete_automation_envelopeC

Completely remove an automation envelope from a clip.

automate_mixerB

Automate a mixer parameter (volume, pan, send) in a clip. param: 'volume', 'pan', or 'send_0', 'send_1', etc. points: [{"time": beat, "value": 0.0–1.0, "duration": 0.0}, ...] Example: fade out volume over 8 bars: param='volume', points=[{"time":0,"value":0.85},{"time":8,"value":0.0}]

get_arrangement_automationB

List automatable parameters in arrangement view for a track. Shows all device parameters that can be automated in the arrangement timeline.

generate_and_place_melodyA

Generate a melody and place it into an Ableton MIDI clip. Creates the clip if the slot is empty.

style: musical style guide — 'electronic', 'jazz', 'classical', 'Daft Punk', 'Bach', 'blues', 'hip-hop', 'ambient', 'bossa nova', 'film score', etc. key: root note — 'C', 'D', 'F#', 'Bb', etc. scale: optional scale override — 'major', 'minor', 'dorian', 'pentatonic_minor', 'blues', 'harmonic_minor', 'whole_tone', etc. Derived from style if omitted. octave: base octave for notes (1–6, default 4 = middle octave) length_bars: how many bars to generate density: 0.0–1.0, how many beats get notes (0.3=sparse, 0.7=normal, 1.0=full) humanize: add subtle timing and velocity variation for human feel replace_existing: if True, clear existing notes before placing new ones seed: integer for reproducible generation (same seed = same melody)

generate_and_place_chordsC

Generate a chord progression and place it into a MIDI clip.

progression: named progression — 'I-V-vi-IV', 'ii-V-I', 'I-IV-V-I', '12-bar-blues', 'i-VII-VI-VII', etc. Derived from style if omitted. voicing: 'close' (tight chords), 'spread' (open across octaves), 'arpeggiated' bars_per_chord: how many bars each chord lasts

generate_and_place_basslineC

Generate a bassline and place it into a MIDI clip. complexity: 0.0 (root notes only) to 1.0 (busy with passing tones and chromatic runs)

generate_and_place_drumsA

Generate a drum pattern and place it into a MIDI clip. Uses GM drum mapping (kick=36, snare=38, hihat=42, etc.). Set up your Drum Rack with matching pad assignments.

pattern: 'four_on_floor', 'boom_bap', 'trap', 'dnb', 'rock', 'shuffle', 'bossa_nova' or derived from style if omitted. variation: 0.0–1.0, adds random additional hits beyond the base pattern

generate_and_place_arpeggioC

Generate an arpeggio pattern and place it into a MIDI clip. pattern: 'up', 'down', 'up-down', 'random', 'outside-in' note_duration: duration of each note in beats (0.25=16th, 0.5=8th, 1.0=quarter) octave_range: how many octaves the arpeggio spans (1–3)

list_generation_optionsA

List all available styles, scales, chord progressions, and drum patterns for generation.

build_full_arrangementB

Build a complete multi-track arrangement in Ableton from scratch. Creates tracks for: melody, chords, bass, drums and fills them with generated content. sections: list of section names, defaults to ['Intro', 'Verse', 'Chorus', 'Outro']

This is the most powerful generation command — it builds a complete song structure.

analyze_trackA

Get audio analysis info for a track: volume, pan, device chain state. For full waveform analysis, use start_audio_capture + stop_audio_capture.

export_trackA

Attempt to export a track to a WAV file. Note: Ableton's Python API has limited export support. See response for workaround instructions if direct export is unavailable.

get_audio_devicesA

List available audio devices on this machine. Use to find the name of your virtual routing device (VB-Cable, BlackHole, etc.) for use with start_audio_capture.

start_audio_captureA

Start capturing audio from a virtual audio device. Set up VB-Cable (Windows) or BlackHole (Mac) and route your Ableton output to it. device_name: exact name from get_audio_devices(), or empty for default input.

stop_audio_captureB

Stop audio capture and save to WAV file. Returns RMS level, peak amplitude, and duration of captured audio.

analyze_mixA

Analyze the current mix state (all tracks): volume levels, gain staging, frequency clashes between tracks, and overall mix balance. Gives actionable mixing suggestions without needing to capture audio.

analyze_wav_file_toolA

Analyze a WAV file for: RMS, peak, LUFS, dynamic range, frequency balance, stereo width, and crest factor. Returns mixing suggestions.

file_path: absolute path to a WAV file (captured from Ableton or exported)

mastering_analysisA

Analyze multiple WAV files together for mastering. Compares tracks, detects frequency clashes, gives mastering chain suggestions. target_lufs: streaming loudness target (-14 for Spotify, -16 for Apple Music)

wav_files: absolute paths to WAV files to analyze together

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/juampicosta/ableton-mcp'

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