Ableton AI
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 |
|---|---|
| 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