AbletonMCP
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_sessionA | Get current Ableton session state: tempo, time signature, playback status, loop settings. |
| set_tempoA | Set the project tempo in BPM (60–200). |
| set_time_signatureB | Set the time signature (e.g. numerator=4, denominator=4 for 4/4). |
| playA | Start playback from the current position. |
| stopA | Stop playback and return to position 0. |
| continue_playbackA | Continue playback from the current position (does not reset to 0). |
| toggle_recordA | Toggle session record mode on/off. |
| set_loopC | Enable/disable loop and optionally set loop start and length in bars. |
| set_metronomeC | Toggle Ableton's metronome on or off. |
| get_mixerA | Get master volume, master pan, cue volume, and crossfader values. |
| set_master_volumeA | Set master volume. Range: 0.0 (silent) to 1.0 (0 dB). Above 1.0 boosts up to +6dB. |
| set_crossfaderA | Set the crossfader position. Range: -1.0 (full A) to 1.0 (full B), 0.0 = center. |
| list_tracksA | List all tracks in the session (audio, MIDI, and return tracks) with their properties. |
| get_trackB | Get detailed info about a specific track by index. |
| create_trackB | Create a new track. track_type: 'audio', 'midi', or 'return'. insert_at: position index (-1 = end). color: name ('red','blue','green',...) or integer color ID. |
| update_trackB | Update track properties. All parameters are optional. volume: 0.0–1.0+ (1.0 = 0dB). pan: -1.0 (left) to 1.0 (right). |
| delete_trackB | Permanently delete a track by index. This cannot be undone via API. |
| duplicate_trackA | Duplicate a track. The copy is inserted directly after the original. |
| get_sendsA | Get all send levels for a track (one send per return track). |
| set_sendA | Set a send level for a track. send_index: 0 = first return track, 1 = second, etc. value: 0.0 (off) to 1.0 (100%). |
| list_groupsA | List all group tracks in the session with their children and state. |
| get_groupC | Get details of a group track including all child track indices. |
| create_groupA | Group a set of contiguous tracks into a Group Track. track_indices: list of adjacent track indices to group (must be contiguous). The group bus gets its own volume/pan/devices. |
| update_groupB | Update a group track's name, volume, pan, mute, or solo state. |
| fold_groupA | Fold or unfold a group track (hide/show child tracks in the session view). |
| ungroupB | Dissolve a group track, returning its children to the top level. |
| get_group_childrenA | List all tracks that belong to a group track. |
| get_track_routingB | Get input/output routing for a track: audio source, monitoring mode, output destination, and all available routing options. |
| set_track_inputA | Set the audio/MIDI input for a track. Use get_track_routing first to see available input names. channel: optional sub-routing (e.g. '1/2', 'Left', 'Ch. 1') |
| set_track_outputA | Set the audio output routing for a track. Use get_routing_options to see available output names. |
| set_monitoring_modeA | Set the input monitoring mode for a track. mode: 'in' (always monitor input), 'auto' (monitor when armed), 'off' (no monitoring) |
| get_routing_optionsA | List all available audio I/O routing options (inputs, outputs, channels). |
| setup_sidechainA | Configure sidechain compression: route sidechain_source into the compressor on target_track so it ducks when the source plays (e.g., kick sidechain on bass). target_track_index: track with the compressor/gate to sidechain sidechain_source_index: track whose signal triggers the ducking (e.g., kick) |
| list_return_tracksA | List all return tracks (A, B, C...) with their devices and current state. |
| create_return_trackC | Add a new return track to the session. |
| update_return_trackB | Update a return track's name, volume, pan, or mute state. |
| add_device_to_returnB | Add a plugin/device to a return track. Use return tracks for shared effects (reverb, delay) that multiple tracks send to. |
| list_clipsB | List all clip slots for a track, showing which slots have clips. |
| get_clipA | Get detailed info about a clip including loop settings and warp mode. |
| create_clipC | Create a new MIDI clip in a slot. length: clip length in bars (e.g. 4.0 = 4 bars). |
| update_clipA | Update clip properties. Works for both MIDI and audio clips. loop_start/loop_end: in beats. gain: 0.0–1.0 (audio clips only). |
| delete_clipC | Delete a clip from a slot. |
| fire_clipC | Launch (fire) a clip slot. Equivalent to clicking the clip launch button. |
| stop_clipC | Stop a playing clip on a specific track. |
| get_notesB | Get all MIDI notes from a MIDI clip. Returns pitch, start time, duration, velocity. |
| add_notesC | Add MIDI notes to a clip. notes: list of objects with fields: pitch (0-127), start (beats), duration (beats), velocity (0-127), mute (bool, optional). Example: [{"pitch": 60, "start": 0.0, "duration": 1.0, "velocity": 100}] |
| clear_notesB | Remove all MIDI notes from a clip. |
| list_arrangement_clipsB | List all clips placed in the Arrangement View timeline for a track. Returns start_time, length, name, and other properties for each clip. |
| place_clip_in_arrangementA | Create a MIDI clip directly in the Arrangement View at a specific timeline position. Requires Ableton Live 10.1+ and a MIDI track. position_beats: start position in beats from the song start (e.g. 0.0 = bar 1, 4.0 = bar 2 in 4/4). length_beats: clip length in beats (e.g. 4.0 = 1 bar in 4/4, 16.0 = 4 bars). name: optional clip name. After creating, use add_notes to populate it with MIDI content. |
| delete_arrangement_clipA | Delete a clip from the Arrangement View timeline. Use list_arrangement_clips to find the clip_index. |
| list_devicesB | List all devices (plugins) on a track with their name, type, and parameter count. |
| get_deviceA | Get full details of a device including all parameters with current values, min, max. Useful to discover what parameters a plugin exposes before editing them. |
| add_deviceA | Add a device or plugin to a track by searching Ableton's browser. Works for: Ableton native (e.g. 'Reverb', 'Compressor'), VST plugins (e.g. 'FabFilter Pro-Q 3', 'Waves SSL E-Channel', 'Serum'). Plugin must be installed and scanned in Ableton. |
| enable_deviceB | Enable or disable a device (bypass). enabled=False bypasses the plugin. |
| delete_deviceB | Remove a device from a track's device chain. Cannot be undone via API. |
| list_parametersC | List all parameters of a device with current value, range, and display string. |
| set_parameter_by_indexA | Set a device parameter value by its index. Use list_parameters first to find the right index and valid range. |
| set_parameter_by_nameB | Set a device parameter value by its name (case-insensitive match). Example: set_parameter_by_name(0, 0, "Frequency", 1000.0) |
| load_presetB | Load a preset onto an existing device by searching Ableton's browser. preset_name must match exactly as shown in Ableton's browser. |
| get_rack_infoB | Get overview of a rack device: chain count, macro count, rack type. |
| list_chainsC | List all chains inside an Instrument Rack, Effect Rack, or Drum Rack. |
| get_chain_detailsB | Get full details of a rack chain including its device list. |
| set_chain_volumeC | Set the volume of a rack chain (0.0–1.0). |
| set_chain_panB | Set the pan of a rack chain (-1.0=left, 0.0=center, 1.0=right). |
| mute_chainC | Mute or unmute a rack chain. |
| get_chain_devicesC | List devices inside a specific rack chain. |
| get_macrosA | Get all macro knob values for a rack device (Macro 1–8). |
| set_macroB | Set a macro knob value on a rack. macro: macro index (0–7) or name (e.g. 'Macro 1', 'Cutoff', etc.) value: within the macro's range (usually 0.0–127.0 or 0.0–1.0) |
| list_drum_padsB | List all populated drum pads in a Drum Rack with their note assignments. |
| get_drum_padB | Get details of a drum pad by MIDI note number (e.g. 36=kick, 38=snare, 42=hihat). |
| mute_drum_padB | Mute or unmute a specific drum pad by MIDI note number. |
| list_scenesA | List all scenes with their name, color, and clip count. |
| get_sceneC | Get details for a specific scene. |
| create_sceneB | Create a new scene. insert_at: position (-1 = end of scene list). |
| update_sceneC | Update a scene's properties. time_signature: string like '4/4' or '3/4'. tempo: BPM override for this scene (if supported by your Ableton version). |
| delete_sceneA | Delete a scene. All clips in that row are also removed. |
| fire_sceneB | Launch all clips in a scene row simultaneously. |
| list_clip_automationB | List all automation envelopes in a clip. Each envelope controls one device parameter. |
| create_automationA | Create automation for a device parameter in a clip. points: list of {"time": beat_position, "value": param_value, "duration": 0.0} duration=0 creates a step (instant change). duration>0 creates a linear ramp. Example: automate filter cutoff from open to closed over 4 bars: points=[{"time":0,"value":1000},{"time":2,"value":200},{"time":4,"value":1000}] |
| add_automation_pointsC | Add breakpoints to an existing automation envelope. points: [{"time": 0.0, "value": 0.5, "duration": 0.0}, ...] |
| remove_automation_pointC | Remove a single automation breakpoint at a specific beat position. |
| clear_automation_envelopeA | Clear all breakpoints from an automation envelope (keeps the envelope, removes all data). |
| delete_automation_envelopeC | Completely remove an automation envelope from a clip. |
| automate_mixerB | Automate a mixer parameter (volume, pan, send) in a clip. param: 'volume', 'pan', or 'send_0', 'send_1', etc. points: [{"time": beat, "value": 0.0–1.0, "duration": 0.0}, ...] Example: fade out volume over 8 bars: param='volume', points=[{"time":0,"value":0.85},{"time":8,"value":0.0}] |
| get_arrangement_automationB | List automatable parameters in arrangement view for a track. Shows all device parameters that can be automated in the arrangement timeline. |
| generate_and_place_melodyA | Generate a melody and place it into an Ableton MIDI clip. Creates the clip if the slot is empty. style: musical style guide — 'electronic', 'jazz', 'classical', 'Daft Punk', 'Bach', 'blues', 'hip-hop', 'ambient', 'bossa nova', 'film score', etc. key: root note — 'C', 'D', 'F#', 'Bb', etc. scale: optional scale override — 'major', 'minor', 'dorian', 'pentatonic_minor', 'blues', 'harmonic_minor', 'whole_tone', etc. Derived from style if omitted. octave: base octave for notes (1–6, default 4 = middle octave) length_bars: how many bars to generate density: 0.0–1.0, how many beats get notes (0.3=sparse, 0.7=normal, 1.0=full) humanize: add subtle timing and velocity variation for human feel replace_existing: if True, clear existing notes before placing new ones seed: integer for reproducible generation (same seed = same melody) |
| generate_and_place_chordsC | Generate a chord progression and place it into a MIDI clip. progression: named progression — 'I-V-vi-IV', 'ii-V-I', 'I-IV-V-I', '12-bar-blues', 'i-VII-VI-VII', etc. Derived from style if omitted. voicing: 'close' (tight chords), 'spread' (open across octaves), 'arpeggiated' bars_per_chord: how many bars each chord lasts |
| generate_and_place_basslineC | Generate a bassline and place it into a MIDI clip. complexity: 0.0 (root notes only) to 1.0 (busy with passing tones and chromatic runs) |
| generate_and_place_drumsA | Generate a drum pattern and place it into a MIDI clip. Uses GM drum mapping (kick=36, snare=38, hihat=42, etc.). Set up your Drum Rack with matching pad assignments. pattern: 'four_on_floor', 'boom_bap', 'trap', 'dnb', 'rock', 'shuffle', 'bossa_nova' or derived from style if omitted. variation: 0.0–1.0, adds random additional hits beyond the base pattern |
| generate_and_place_arpeggioC | Generate an arpeggio pattern and place it into a MIDI clip. pattern: 'up', 'down', 'up-down', 'random', 'outside-in' note_duration: duration of each note in beats (0.25=16th, 0.5=8th, 1.0=quarter) octave_range: how many octaves the arpeggio spans (1–3) |
| list_generation_optionsA | List all available styles, scales, chord progressions, and drum patterns for generation. |
| build_full_arrangementB | Build a complete multi-track arrangement in Ableton from scratch. Creates tracks for: melody, chords, bass, drums and fills them with generated content. sections: list of section names, defaults to ['Intro', 'Verse', 'Chorus', 'Outro'] This is the most powerful generation command — it builds a complete song structure. |
| analyze_trackA | Get audio analysis info for a track: volume, pan, device chain state. For full waveform analysis, use start_audio_capture + stop_audio_capture. |
| export_trackA | Attempt to export a track to a WAV file. Note: Ableton's Python API has limited export support. See response for workaround instructions if direct export is unavailable. |
| get_audio_devicesA | List available audio devices on this machine. Use to find the name of your virtual routing device (VB-Cable, BlackHole, etc.) for use with start_audio_capture. |
| start_audio_captureA | Start capturing audio from a virtual audio device. Set up VB-Cable (Windows) or BlackHole (Mac) and route your Ableton output to it. device_name: exact name from get_audio_devices(), or empty for default input. |
| stop_audio_captureB | Stop audio capture and save to WAV file. Returns RMS level, peak amplitude, and duration of captured audio. |
| analyze_mixA | Analyze the current mix state (all tracks): volume levels, gain staging, frequency clashes between tracks, and overall mix balance. Gives actionable mixing suggestions without needing to capture audio. |
| analyze_wav_file_toolA | Analyze a WAV file for: RMS, peak, LUFS, dynamic range, frequency balance, stereo width, and crest factor. Returns mixing suggestions. file_path: absolute path to a WAV file (captured from Ableton or exported) |
| mastering_analysisA | Analyze multiple WAV files together for mastering. Compares tracks, detects frequency clashes, gives mastering chain suggestions. target_lufs: streaming loudness target (-14 for Spotify, -16 for Apple Music) wav_files: absolute paths to WAV files to analyze together |
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/juampicosta/ableton-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server