Ableton AI
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 |
|---|---|
| add_warp_markerB | Add a warp marker to an audio clip. Parameters:
|
| create_locatorA | Create a new locator/cue point. Parameters:
|
| delete_locatorC | Delete a locator. Parameters:
|
| delete_warp_markerC | Delete a warp marker from an audio clip. Parameters:
|
| get_arrangement_lengthA | Get the length and loop settings of the arrangement. |
| get_clip_warp_infoC | Get warp information for an audio clip. Parameters:
|
| get_locatorsA | Get all locators/cue points in the arrangement. |
| get_warp_markersA | Get all warp markers from an audio clip. Parameters:
|
| jump_to_timeA | Jump to a specific time in the arrangement. Parameters:
|
| set_arrangement_loopA | Set the arrangement loop region. Parameters:
|
| set_clip_warp_modeB | Set the warp mode of an audio clip. Parameters:
|
| toggle_arrangement_recordA | Toggle arrangement record mode. |
| create_arrangement_midi_clipA | Create a MIDI clip in the Arrangement view, optionally filled with notes. Session clips and Arrangement clips use different Live APIs. This is the Arrangement path (Live 11+). Notes are optional and may carry probability, same shape as add_notes_with_probability. Parameters:
|
| get_arrangement_clipsA | Read the clips on a track's Arrangement timeline (name, position, length, MIDI/audio, muted). Parameters:
|
| get_arrangement_clip_notesA | Read the MIDI notes of a clip on a track's Arrangement timeline. get_clip_notes addresses Session clip slots, so it cannot see notes that live on the timeline and reports "No clip in slot" instead. Use this for Arrangement clips, with the clip_index reported by get_arrangement_clips. Returns probability and velocity_deviation per note where Live exposes them (has_probability tells you whether it could). A looped clip stores one copy of its notes and repeats them, so a 16-beat loop stretched across 1147 beats returns 16 beats of notes. Compare loop_start/loop_end against start_time/end_time to see the repetition. Parameters:
|
| set_arrangement_clip_notesA | Write notes into an existing Arrangement clip, editing it in place. Prefer this over create_arrangement_midi_clip when the clip already exists. Creating a clip builds a new one, which discards the loop braces, the name, the colour and any clip envelopes. Editing keeps all of it, so a 16-beat loop stretched across 300 bars stays stretched instead of collapsing. Notes keep probability and velocity_deviation, so randomness and humanization survive. Read with get_arrangement_clip_notes, change what you need, write the whole list back, and everything else is preserved. Parameters:
|
| clear_clip_automationC | Clear automation for a clip parameter. Parameters:
|
| get_clip_automationC | Get automation data for a clip parameter. Parameters:
|
| set_clip_automationC | Set automation for a clip parameter. Parameters:
|
| add_shaped_automationA | Draw a repeating waveform onto any device parameter as clip automation. This is NOT a free-running LFO. The curve is baked into the clip and repeats every loop, phase-locked to the bar. For a genuinely free-running LFO on an arbitrary parameter you still need a Max for Live LFO, whose Map button the API cannot set (ask the user to click it). Use this when a loop-locked, editable curve is acceptable, and use a long or coprime clip length if you want the repetition to be hard to notice. Parameters:
|
| browse_pathB | Navigate browser by path list to get items at that location. Parameters:
|
| get_browser_items_at_pathB | Get browser items at a specific path in Ableton's browser. Parameters:
|
| get_browser_treeA | Get a hierarchical tree of browser categories from Ableton. Parameters:
|
| load_drum_kitB | Load a drum rack and then load a specific drum kit into it. Parameters:
|
| load_instrument_or_effectA | Load an instrument or effect onto a track using its URI. Parameters:
|
| load_item_to_returnA | Load a browser item (effect) onto a return track by URI. Parameters:
|
| load_item_to_trackA | Load a browser item (instrument or effect) onto a track by URI. Parameters:
|
| search_browserA | Search the browser for items matching a query. Parameters:
|
| create_clipA | Create a new MIDI clip in the specified track and clip slot. Parameters:
|
| delete_clipA | Delete a clip from a clip slot. Parameters:
|
| duplicate_clipA | Duplicate a clip to the next empty slot. Parameters:
|
| fire_clipB | Start playing a clip. Parameters:
|
| get_clip_colorA | Get the color of a clip. Parameters:
|
| get_clip_gainB | Get the gain of an audio clip. Parameters:
|
| get_clip_loopC | Get the loop settings of a clip. Parameters:
|
| get_clip_pitchB | Get the pitch shift of an audio clip. Parameters:
|
| humanize_clip_timingA | Add random timing variation to notes in a clip for a more human feel. Parameters:
|
| humanize_clip_velocityA | Add random velocity variation to notes in a clip for a more human feel. Parameters:
|
| select_clipC | Select a clip slot. Parameters:
|
| set_clip_colorB | Set the color of a clip. Parameters:
|
| set_clip_gainB | Set the gain of an audio clip. Parameters:
|
| set_clip_loopA | Set the loop settings of a clip. Parameters:
|
| set_clip_nameB | Set the name of a clip. Parameters:
|
| set_clip_pitchA | Set the pitch shift of an audio clip. Parameters:
|
| stop_clipA | Stop playing a clip. Parameters:
|
| set_clip_follow_actionA | Set a clip's follow action, so it advances to another clip on its own. This is how you get generative arrangements that progress while each track keeps looping independently. Parameters:
|
| quantize_clipB | Quantize the notes in a clip to a grid. Parameters:
|
| set_clip_fade_inA | Set an audio clip's fade-in region, in beats. Parameters:
|
| set_clip_fade_outA | Set an audio clip's fade-out region, in beats. Parameters:
|
| set_clip_start_markerA | Set a clip's start marker, in beats. Parameters:
|
| set_clip_end_markerB | Set a clip's end marker, in beats. Parameters:
|
| delete_deviceA | Delete a device from a track. Parameters:
|
| generate_drum_patternA | Generate a drum pattern and add it to a clip. Parameters:
|
| get_device_by_nameC | Find a device by name and get its parameters. Parameters:
|
| get_device_parametersA | Get all parameters from a device on a track. Parameters:
|
| get_rack_chainsC | Get chains from an instrument or effect rack. Parameters:
|
| move_device_leftA | Move a device one position to the left in the device chain. Parameters:
|
| move_device_rightA | Move a device one position to the right in the device chain. Parameters:
|
| select_rack_chainA | Select a chain in a rack device. Parameters:
|
| set_device_parameterA | Set a device parameter value. Parameters:
|
| toggle_deviceA | Toggle a device on or off. Parameters:
|
| get_chain_device_parametersA | Get parameters of a device nested inside a rack chain, for example one drum pad's synth. Plain get_device_parameters on a rack only returns the rack's own macros, which are usually unassigned. Use get_rack_chains first to find the chain index, then this to reach the device inside it. Parameters:
|
| set_chain_device_parameterA | Set a parameter on a device nested inside a rack chain, for example a drum pad's decay. The parameter name is resolved within that one device only, so it cannot grab a same-named parameter from elsewhere. Parameters:
|
| get_master_device_parametersA | Get parameters of a device on the Master track (e.g. a mastering compressor). The Master track holds effects like the rest, and the Live API reaches them fine; they just need this dedicated command. Parameters:
|
| set_master_device_parameterA | Set a parameter on a Master-track device (e.g. the Glue Compressor threshold). Parameters:
|
| get_return_device_parametersA | Get parameters of a device on a return track (e.g. a reverb on Return A). Parameters:
|
| set_return_device_parameterA | Set a parameter on a return-track device (e.g. reverb decay on Return A). Parameters:
|
| generate_basslineA | Generate a bassline pattern and add it to a clip. Parameters:
|
| add_notes_to_clipC | Add MIDI notes to a clip. Parameters:
|
| add_notes_with_probabilityA | Add MIDI notes carrying per-note probability and velocity deviation. Prefer this over add_notes_to_clip for anything generative. Plain add_notes_to_clip uses Live's legacy API, which has no probability field and silently drops it. Parameters:
|
| get_clip_notesB | Get all MIDI notes from a clip. Parameters:
|
| get_scale_notesA | Get the notes in a musical scale. Parameters:
|
| quantize_clip_notesA | Quantize notes in a clip to a grid. Parameters:
|
| remove_all_notesB | Remove all notes from a clip. Parameters:
|
| remove_notesA | Remove notes from a clip within a specified range. Parameters:
|
| transpose_notesA | Transpose all notes in a clip. Parameters:
|
| apply_grooveB | Apply a groove to a clip. Parameters:
|
| capture_midiA | Capture MIDI that was played recently (like Ableton's Capture feature). |
| commit_grooveC | Commit groove quantization to clip notes (make it permanent). Parameters:
|
| create_sceneB | Create a new scene. Parameters:
|
| delete_sceneC | Delete a scene. Parameters:
|
| duplicate_sceneC | Duplicate a scene. Parameters:
|
| fire_sceneA | Fire (trigger) a scene to play all clips in that row. Parameters:
|
| focus_viewB | Focus a specific view in Ableton. Parameters:
|
| get_all_scenesB | Get information about all scenes in the session. |
| get_available_inputsC | Get available input routing options for a track. Parameters:
|
| get_available_outputsC | Get available output routing options for a track. Parameters:
|
| get_cpu_loadA | Get the current CPU load of Ableton. |
| get_current_viewB | Get information about the current view state (selected track, scene, etc.). |
| get_groove_poolA | Get available grooves from the groove pool. |
| get_metronome_stateA | Get the current metronome state. |
| get_playback_positionA | Get the current playback position and transport state. |
| get_scene_colorC | Get the color of a scene. Parameters:
|
| get_session_infoC | Get detailed information about the current Ableton session |
| get_session_pathA | Get the file path of the current session. |
| health_checkA | Check if Ableton Live is connected and responsive. |
| is_session_modifiedA | Check if the session has unsaved changes. |
| redoA | Redo the last undone operation in Ableton. |
| select_sceneC | Select a scene. Parameters:
|
| set_metronomeA | Turn the metronome on or off. 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 | |
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/freekmurze/ableton-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server