ableton-mcp
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_infoA | Get current Ableton Live session info: tempo, time signature, track counts, and master track details. |
| get_track_infoB | Get detailed info about a track: name, type, mute/solo/arm state, volume, pan, clip slots, and devices. |
| create_midi_trackB | Create a new MIDI track. Use index=-1 to append at the end. |
| create_audio_trackB | Create a new audio track. Use index=-1 to append at the end. |
| delete_trackC | Delete a track by index. |
| delete_all_tracksA | Delete all tracks except one. Useful for clearing a session before building a fresh arrangement. Returns the count of deleted tracks. |
| set_track_nameD | Rename a track. |
| set_track_volumeC | Set track volume. Range: 0.0 (silence) to 1.0 (max). |
| set_track_panB | Set track pan. Range: -1.0 (full left) to 1.0 (full right), 0.0 is center. |
| set_track_muteC | Mute or unmute a track. |
| set_track_soloC | Solo or unsolo a track. |
| create_clipC | Create an empty MIDI clip in a clip slot. Length is in beats. |
| add_notes_to_clipA | Add MIDI notes to a clip. Each note is a dict with keys: pitch (0-127), start_time (beats), duration (beats), velocity (0-127, default 100), mute (bool, default false). By default this replaces all existing notes in the clip. Set append=true to keep existing notes and add the new ones on top. |
| set_clip_nameC | Rename a clip. |
| fire_clipC | Start playing a clip. |
| stop_clipC | Stop a playing clip. |
| get_clip_notesA | Read all MIDI notes from a session clip. Returns a list of notes with pitch, start_time, duration, velocity, and mute. |
| get_clip_infoC | Get detailed info about a session clip: name, length, loop_start, loop_end, is_playing, is_recording. |
| duplicate_clip_to_sceneA | Duplicate a session clip from one scene to another on the same track. The destination clip slot must be empty. |
| delete_clipC | Delete a clip from a session clip slot. |
| create_sceneA | Create a new empty scene. Use index=-1 to append at the end. Adds a new clip slot row across all tracks. |
| delete_sceneB | Delete a scene by index. Cannot delete the last scene. |
| set_scene_nameC | Rename a scene (the label in the Master track column). |
| fire_sceneB | Fire all clips in a scene simultaneously. |
| start_playbackC | Start session playback. |
| stop_playbackA | Stop session playback. |
| set_tempoB | Set the session tempo in BPM. |
| set_time_signatureB | Set the song's time signature (e.g. 4/4, 5/4, 7/8). |
| undoA | Trigger Ableton's undo. Safety net for destructive operations. |
| get_browser_treeB | Browse Ableton's instrument and effect categories. category_type can be: all, instruments, audio_effects, midi_effects, sounds, drums, max_for_live. |
| get_browser_items_at_pathA | List items at a browser path. Paths can start with a top-level category (e.g. 'Sounds/Bass', 'Instruments/Analog', 'Audio Effects/Reverb') or use a bare subcategory name (e.g. 'Bass'). Use get_browser_tree first to discover available categories. |
| load_instrument_or_effectA | Load an instrument or effect onto a track by its browser URI. Use get_browser_tree and get_browser_items_at_path to find URIs. Returns the loaded device_name so you can verify the correct device was loaded. Set clear_existing=true to remove all existing devices from the track before loading — recommended when replacing an instrument on a non-empty track. IMPORTANT: load instruments sequentially, not in parallel. Concurrent loads will fail or land on the wrong track. |
| create_midi_track_with_instrumentA | Create a new MIDI track and load an instrument in a single operation. Faster than separate create_midi_track + load_instrument_or_effect calls. Use index=-1 to append at the end. Optionally set the track name. IMPORTANT: load instruments sequentially, not in parallel. |
| load_drum_kitA | Load a drum rack and then load a specific kit into it. First loads the rack by URI, then navigates to kit_path to load the kit preset. |
| get_device_parametersA | List all parameters of a device on a track. Returns device_name and a list of parameters with name, value, min, max. |
| set_device_parameterA | Set a device parameter value. Value is clamped to the parameter's min/max range. Use get_device_parameters to discover available parameters. |
| get_arrangement_clipsC | Get all clips on the arrangement timeline for a track. Returns each clip's index, name, start_time, end_time, and length in beats. Requires Ableton Live 11+. |
| create_arrangement_clipC | Create an empty MIDI clip on the arrangement timeline. start_time and length are in beats. |
| delete_arrangement_clipB | Delete a clip from the arrangement timeline. Use get_arrangement_clips to find the clip_index. |
| duplicate_arrangement_clipC | Duplicate an arrangement clip to a new position on the timeline. destination_time is in beats. |
| get_arrangement_clip_notesB | Read all MIDI notes from an arrangement clip. Returns a list of notes with pitch, start_time, duration, velocity, and mute. |
| set_arrangement_clip_notesA | Set MIDI notes on an arrangement clip. Replaces all existing notes. Each note is a dict with keys: pitch (0-127), start_time (beats), duration (beats), velocity (0-127, default 100), mute (bool, default false). |
| set_song_timeB | Set the playback cursor position in beats. |
| get_arrangement_loopA | Get the arrangement loop brace position and length in beats. |
| set_arrangement_loopB | Set the arrangement loop brace. start and length are in beats. |
| back_to_arrangerA | Switch playback from session view back to the arrangement. Stops all session clips and resumes arrangement playback. |
| duplicate_session_to_arrangementC | Copy a session view clip to the arrangement timeline. destination_time is the position in beats where the clip will be placed. |
| session_to_arrangementA | Lay out session view scenes sequentially on the arrangement timeline. Takes a list of scene indices and places each scene's clips end-to-end starting from beat 0. Use this to build a full song structure from session view clips. |
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
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/amamparo/ableton-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server