Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ABLETON_HOSTNoThe 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_DATASETNoSet to 'true' to disable dataset recording. Recommended for privacy.true
ABLETON_MCP_DISABLE_TELEMETRYNoSet 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

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

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • consent: True if the user agreed to contribute, False if they declined

  • user_said: The user's reply, quoted as closely as possible

get_session_infoB

Get detailed information about the current Ableton session

Parameters:

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • track_index: The index of the track to get information about

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • track_index: Track that owns the clip

  • clip_index: Session clip slot index

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

get_device_parametersB

Read all parameters for a device on a track (name, value, min, max).

Parameters:

  • track_index: Track that owns the device

  • device_index: Index into the track's device chain

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

set_device_parameterA

Set a device parameter to a specific value.

Use get_device_parameters first to discover parameter indices and ranges.

Parameters:

  • track_index: Track that owns the device

  • device_index: Index into the track's device chain

  • parameter_index: Index into device.parameters

  • value: New parameter value (Live parameter units)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • include_notes: Include MIDI note arrays in clips (default True)

  • include_params: Include device parameter values (default True)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

create_clipB

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)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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.

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

add_notes_to_clipB

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • track_index: The index of the track containing the clip

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

set_clip_nameC

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

set_arrangement_clip_nameA

Set the name of a clip placed in the Arrangement timeline.

Parameters:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip within track.arrangement_clips, in the same order returned by get_arrangement_clips (i.e. ordered by start_time)

  • name: The new name for the clip

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

set_tempoB

Set the tempo of the Ableton session.

Parameters:

  • tempo: The new tempo in BPM

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

load_instrument_or_effectB

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • track_index: The index of the track containing the clip

  • clip_index: The index of the clip slot to clear

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

start_playbackB

Start playing the Ableton session.

Parameters:

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

stop_playbackB

Stop playing the Ableton session.

Parameters:

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

get_browser_treeC

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

get_browser_items_at_pathA

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

switch_to_arrangement_viewC

Switch Ableton's main window to the Arrangement view.

Parameters:

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

set_arrangement_timeA

Move the arrangement playhead to a specific position.

Parameters:

  • time: Position in beats from the start of the arrangement (e.g. 8.0 = bar 3 in 4/4)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • track_index: The index of the track to inspect

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  1. create_clip / add_notes_to_clip to build a Session clip

  2. Call duplicate_to_arrangement once per bar/section you need

  3. Call switch_to_arrangement_view to confirm the result in Live

Parameters:

  • track_index: Index of the track that owns the Session clip

  • clip_index: Index of the clip slot in that track (Session view)

  • destination_time: Beat position in the arrangement to place the clip (e.g. 0.0 = start, 8.0 = bar 3 in 4/4)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • name: The locator label (e.g. "Chorus", "Verse 1", "Drop")

  • time: Beat position where the locator should sit

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • text: Natural-language intent (e.g. "make the chorus feel bigger")

  • level: Hierarchical intent level 1–5 (default 5)

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • rating: Preference label

  • tags: Comma-separated aspect tags

  • note: Optional free-text reason

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • candidate_a: Id / URI / label for option A

  • candidate_b: Id / URI / label for option B

  • winner: 'a', 'b', or the winning id

  • reason: Optional reason ("C has the right attack")

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • reason: Optional why it was rejected

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

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:

  • uri: Browser item URI (or stable preset/sample id)

  • kept: Whether this candidate was kept

  • search_query: Optional search text that led here (e.g. "analog bass")

  • dwell_ms: Optional time spent auditioning

  • user_prompt: The original user prompt that led to this tool call (for telemetry)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources