Ableton MCP Extended
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_session_infoB | Get detailed information about the current Ableton session Parameters: |
| get_track_infoA | Get detailed information about a specific track in Ableton. Parameters:
|
| create_midi_trackA | Create a new MIDI track in the Ableton session. Parameters:
|
| create_audio_trackA | Create a new audio track in the Ableton session. Parameters:
|
| create_return_trackB | Create a new return (send/FX) track in the Ableton session. Return tracks are appended at the end of the return track list. Parameters: |
| set_track_nameC | Set the name of a track. Parameters:
|
| create_clipC | Create a new MIDI clip in the specified track and clip slot. Parameters:
|
| 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:
|
| add_notes_to_clipC | Add MIDI notes to a clip. Parameters:
|
| set_clip_nameA | Set the name of a clip. Parameters:
|
| delete_clipB | Delete the clip in the specified track/clip slot (empties the slot). Parameters:
|
| clear_clip_notesA | Remove ALL MIDI notes from a clip while keeping the clip itself (so you can rewrite it from scratch without deleting/recreating the slot). Parameters:
|
| load_sample_to_drum_padA | Load a browser sample (by its URI) onto a specific pad of a Drum Rack that is already on the track. This lets you build a custom drum kit pad-by-pad. Prerequisite: a Drum Rack must already be loaded on the track (use load_instrument_or_effect with the Drum Rack URI 'query:Drums#Drum%20Rack', or any drum kit). Get the sample's URI from get_browser_items_at_path. Parameters:
|
| set_tempoA | Set the tempo of the Ableton session. Parameters:
|
| load_instrument_or_effectA | Load an instrument or effect onto a track using its URI. Parameters:
|
| fire_clipC | Start playing a clip. Parameters:
|
| stop_clipC | Stop playing a clip. Parameters:
|
| start_playbackA | Start playing the Ableton session. Parameters: |
| stop_playbackC | Stop playing the Ableton session. Parameters: |
| get_browser_treeB | Get a hierarchical tree of browser categories from Ableton. Parameters:
|
| get_browser_items_at_pathA | Get browser items at a specific path in Ableton's browser. Parameters:
|
| load_drum_kitB | Load a drum rack and then load a specific drum kit into it. Parameters:
|
| switch_to_arrangement_viewA | Switch Ableton's main window to the Arrangement view. Parameters: |
| set_arrangement_timeA | Move the arrangement playhead to a specific position. Parameters:
|
| 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:
|
| 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:
Parameters:
|
| delete_trackA | Delete a track by its index. Indices of later tracks shift down by one. Parameters:
|
| create_sceneA | Create a new scene (Session-view row). index=-1 appends at the end. Parameters:
|
| set_scene_nameB | Set the name of a scene (Session-view row), e.g. 'INTRO', 'HOOK'. Parameters:
|
| duplicate_clip_to_sceneA | Copy a clip (MIDI or AUDIO) from one slot to another empty slot on the SAME track. This is how you place a loop into several scenes for live performance — and unlike create_clip it works for audio clips too. Parameters:
|
| set_track_colorB | Set a track's color. Pass either an int 0xRRGGBB (e.g. 16711680 for red) or a [r, g, b] list with 0-255 values. Parameters:
|
| set_track_monitorA | Set a track's input monitoring. Use 'in'/0 to always hear the live input (e.g. a mic), 'auto'/1 for monitor-when-armed, 'off'/2 for none. Parameters:
|
| set_track_armB | Arm or disarm a track for recording / input monitoring. Parameters:
|
| set_track_volumeA | Set a track's mixer fader. value is the normalized 0.0-1.0 position where ~0.85 is 0 dB and 1.0 is +6 dB (the fader max). For bigger gain than the fader allows, add a Utility device and use set_device_parameter on its Gain. Parameters:
|
| get_device_parametersA | List every parameter of a device (index, name, current value, min, max). Use this before set_device_parameter to find the right parameter and its range. Parameters:
|
| set_device_parameterA | Set a device parameter (e.g. a Utility's Gain, a Compressor's Threshold) by its index or its name. Call get_device_parameters first to see names/ranges. The value is clamped to the parameter's min/max. Parameters:
|
| get_clip_notesA | Read the actual MIDI notes of a clip (pitch, start_time, duration, velocity, mute) so you can see its real chords/melody. MIDI clips only. Parameters:
|
| update_notesA | Surgically modify EXISTING notes in a MIDI clip without clearing/rewriting it. Each update matches notes by pitch + start_time (within tolerance) and applies the new_* fields. Much safer than clear_clip_notes + add_notes_to_clip. Parameters:
|
| remove_notes_in_rangeA | Surgically remove notes inside a pitch/time window of a MIDI clip, keeping everything else (unlike clear_clip_notes which wipes all). Parameters:
|
| set_clip_loopA | Set a clip's loop and start/end marker properties (in beats). Only the parameters you pass are changed. Parameters:
|
| quantize_clipA | Quantize a MIDI clip's notes to a grid. Parameters:
|
| get_drum_pad_namesA | List which MIDI note triggers which drum pad/instrument on the first Drum Rack of a track (e.g. 36=Kick 808, 38=Snare...). Call this before writing/fixing drum MIDI so you know what each pitch plays. Parameters:
|
| bounce_midi_clip_to_audioA | Bounce (record) a MIDI clip's audible output to an audio clip, in REAL TIME via resampling-record (Live's Freeze/Flatten is not automatable). Creates an audio track (or uses dest_track_index), routes the MIDI track's Post FX output into it, records the clip in the same scene row, and auto-stops after clip length + tail. Returns immediately — wait the reported duration_seconds, then verify with get_track_info / get_arrangement_clips. Playback is audible during the bounce; don't change the session while recording. Parameters:
|
| get_scene_namesA | List all Session scenes: index, name, tempo hint (if the scene name sets one) and whether the scene is empty. Use before firing/organizing scenes. |
| undoA | Undo the last action in Ableton Live (equivalent to Cmd+Z). Returns can_undo and can_redo flags after the operation so the caller knows whether further undo/redo steps are available. |
| redoA | Redo the last undone action in Ableton Live (equivalent to Cmd+Shift+Z). Returns can_undo and can_redo flags after the operation. |
| set_track_panA | Set a track's stereo panning position. Parameters:
|
| set_track_muteB | Mute or unmute a track. Parameters:
|
| set_track_soloB | Solo or unsolo a track. Parameters:
|
| get_return_tracksA | List all return tracks (A, B, C…) with their names and loaded devices. Use before set_send_level to know available return track indices. |
| set_send_levelA | Set a track's send level to a return track. Parameters:
|
| get_metersA | Snapshot the current output meter levels for every track and the master. Returns output_meter_left and output_meter_right (0.0-1.0 linear peak) for each track, plus output_meter_level where available. Call repeatedly during playback to poll levels; each call is a single instantaneous sample. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/RichieMiller-HU/ableton-mcp-extended'
If you have feedback or need assistance with the MCP directory API, please join our Discord server