AbletonMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| get_application_infoB | Get the running Ableton Live application version. |
| get_session_infoB | Get detailed information about the current Ableton session. |
| set_tempoA | Set the tempo of the Ableton session. Parameters:
|
| get_tempoB | Get the current tempo of the Ableton session. |
| set_time_signatureC | Set the time signature of the Ableton session. Parameters:
|
| get_time_signatureB | Get the current time signature of the Ableton session. |
| set_metronomeC | Turn the metronome on or off. |
| get_metronomeB | Get the metronome on/off state. |
| set_clip_trigger_quantizationB | Set the global clip trigger quantization. Parameters:
|
| get_clip_trigger_quantizationC | Get the global clip trigger quantization. |
| undoC | Undo the last action in Ableton Live. |
| redoB | Redo the last undone action in Ableton Live. |
| can_undoA | Check whether there is an action available to undo. |
| can_redoA | Check whether there is an action available to redo. |
| start_playbackB | Start playing the Ableton session. |
| stop_playbackC | Stop playing the Ableton session. |
| continue_playbackA | Resume playback from the current position without resetting it. |
| set_positionB | Move the arrangement playhead to the given position, in beats. |
| get_positionA | Get the current arrangement playhead position, in beats. |
| set_loopC | Enable or disable arrangement loop. |
| get_loopB | Get the current loop state, start, and length (in beats). |
| set_loop_regionB | Set the arrangement loop region, in beats. |
| set_punch_inC | Enable or disable punch-in recording. |
| set_punch_outB | Enable or disable punch-out recording. |
| set_overdubC | Enable or disable MIDI overdub recording. |
| get_overdubC | Get the current overdub state. |
| set_session_recordC | Arm/disarm session record mode. |
| get_session_record_statusB | Get the current session record status. |
| list_cue_pointsB | List all cue points in the arrangement. |
| jump_to_cue_pointC | Jump the playhead to the cue point at the given index. |
| toggle_cue_pointC | Create or delete a cue point at the current playhead position. |
| list_tracksC | List all regular tracks, return tracks, and the master track. |
| get_track_infoC | Get detailed information about a specific track in Ableton. Parameters:
|
| get_return_track_infoC | Get detailed information about a return track. |
| get_master_track_infoA | Get detailed information about the master track. |
| create_midi_trackB | Create a new MIDI track in the Ableton session. Parameters:
|
| create_audio_trackB | Create a new audio track in the Ableton session. Parameters:
|
| create_return_trackB | Create a new return track in the Ableton session. Parameters:
|
| delete_trackC | Delete the track at the given index. |
| delete_return_trackC | Delete the return track at the given index. |
| duplicate_trackC | Duplicate the track at the given index. |
| set_track_nameB | Set the name of a track. Parameters:
|
| set_track_colorB | Set a track's color by Live's palette color index. |
| set_track_muteC | Mute or unmute a track. |
| set_track_soloC | Solo or unsolo a track. |
| set_track_armC | Arm or disarm a track for recording. |
| set_track_monitoring_stateC | Set a track's input monitoring state. Parameters:
|
| get_track_routingC | Get a track's input/output routing types, channels, and available options. |
| set_track_input_routing_typeB | Set a track's input routing type by display name (see get_track_routing). |
| set_track_output_routing_typeC | Set a track's output routing type by display name (see get_track_routing). |
| set_track_input_routing_channelC | Set a track's input routing channel by display name (see get_track_routing). |
| set_track_output_routing_channelA | Set a track's output routing channel by display name (see get_track_routing). |
| set_track_fold_stateC | Expand or collapse a group track. |
| set_track_volumeA | Set a track's volume. Parameters:
|
| get_track_volumeC | Get a track's current volume. |
| set_track_panningC | Set a track's pan position. Parameters:
|
| get_track_panningC | Get a track's current pan position. |
| get_track_sendsC | List a track's send levels to each return track. |
| set_track_sendB | Set a track's send level to a return track. Parameters:
|
| set_track_crossfader_assignC | Assign a track to a crossfader side. Parameters:
|
| set_master_volumeA | Set the master track's volume (0.0-1.0). |
| get_master_volumeC | Get the master track's current volume. |
| set_crossfaderA | Set the crossfader position (-1.0 = full A, 1.0 = full B). |
| get_crossfaderA | Get the current crossfader position. |
| create_clipC | Create a new MIDI clip in the specified track and clip slot. Parameters:
|
| delete_clipC | Delete the clip in the given track and slot. |
| duplicate_clipB | Duplicate a clip from one slot to an empty slot on the same track. |
| fire_clipC | Start playing a clip. Parameters:
|
| stop_clipB | Stop playing a clip. Parameters:
|
| stop_all_clipsA | Stop all currently playing clips across the session. |
| get_clip_infoC | Get detailed information about a clip. |
| set_clip_nameB | Set the name of a clip. Parameters:
|
| set_clip_colorC | Set a clip's color by Live's palette color index. |
| set_clip_loopingC | Enable or disable looping for a clip. |
| set_clip_loop_regionB | Set a clip's loop start/end points, in beats. |
| quantize_clipC | Quantize the notes in a MIDI clip. Parameters:
|
| add_notes_to_clipA | Add MIDI notes to a clip. Parameters:
|
| get_notes_from_clipB | Get the MIDI notes in a clip within the given pitch/time window. |
| remove_notes_from_clipC | Remove MIDI notes from a clip within the given pitch/time window. |
| duplicate_clip_to_arrangementC | Duplicate a session clip into the arrangement view at the given time (beats). |
| list_arrangement_clipsB | List the clips placed in the arrangement view for a track. |
| delete_arrangement_clipB | Delete a clip from the arrangement view by its index (see list_arrangement_clips). |
| list_scenesC | List all scenes in the session. |
| get_scene_infoC | Get detailed information about a scene. |
| create_sceneA | Create a new scene (index=-1 appends at the end). |
| delete_sceneB | Delete the scene at the given index. |
| duplicate_sceneC | Duplicate the scene at the given index. |
| fire_sceneC | Fire (launch) the scene at the given index. |
| set_scene_nameC | Rename a scene. |
| set_scene_colorC | Set a scene's color by Live's palette color index. |
| set_scene_tempoB | Set (or clear, if enabled=False) a scene's tempo lock. |
| list_devicesC | List the devices on a track. |
| get_device_infoC | Get detailed information about a device on a track. |
| load_instrument_or_effectB | Load an instrument or effect onto a track using its browser URI. Parameters:
|
| load_browser_itemB | Load any browser item (instrument, effect, sample, or preset) onto a track by URI. This is the generic form of load_instrument_or_effect -- use it for browser items that aren't instruments or effects (e.g. audio samples). |
| delete_deviceC | Remove a device from a track. |
| set_device_activeC | Turn a device on or off. |
| list_device_parametersC | List all parameters exposed by a device. |
| get_device_parameterB | Get a device parameter's current value, range, and quantized states. |
| set_device_parameterC | Set a device parameter's value. 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 | |
TDQS
Scored across 112 tools
Most tools have clearly distinct purposes, but there are a few overlapping boundaries: set_track_volume/get_track_volume can target the master track while dedicated set_master_volume/get_master_volume also exist, and get_track_info may overlap with get_master_track_info/get_return_track_info. Load_instrument_or_effect and load_browser_item overlap but are explicitly clarified.
All tool names follow a consistent snake_case verb_noun pattern (set_tempo, get_position, create_midi_track, fire_clip, list_devices). Even semantically similar actions use distinct verbs (get/list/start/stop/set/create/delete) with no mixed conventions.
112 tools is an extreme count for an MCP server, far exceeding the well-scoped range. While Ableton Live has a broad feature set, the sheer number overwhelms agents and violates the 50+ threshold for an extreme mismatch.
The tool surface is remarkably extensive, covering transport, tracks, clips, scenes, devices, racks, drum pads, automation envelopes, and browser browsing. However, there are notable gaps such as arrangement record arming, clip moving between slots/tracks, and project-level operations like save/export.