Ableton MCP Extended
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| 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