ableton-mcp
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_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
- 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/amamparo/ableton-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server