ableton-mcp-lofifren
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 detailed information about the current Ableton session |
| get_track_infoB | Get detailed information about a specific track in Ableton. Parameters:
|
| create_midi_trackA | Create a new MIDI track in the Ableton session. Parameters:
|
| set_track_nameB | Set the name of a track. Parameters:
|
| create_clipA | Create a new MIDI clip in the specified track and clip slot. Parameters:
|
| add_notes_to_clipB | Add MIDI notes to a clip. Parameters:
|
| set_clip_nameB | Set the name of a clip. Parameters:
|
| set_tempoB | Set the tempo of the Ableton session. Parameters:
|
| load_instrument_or_effectC | Load an instrument or effect onto a track using its URI. Parameters:
|
| fire_clipC | Start playing a clip. Parameters:
|
| stop_clipC | Stop playing a clip. Parameters:
|
| start_playbackB | Start playing the Ableton session. |
| stop_playbackA | Stop playing the Ableton session. |
| get_clip_notesB | Get all MIDI notes from a clip. Parameters:
Returns note data including pitch, start_time, duration, velocity, and mute for each note. |
| remove_notes_from_clipA | Remove MIDI notes from a clip within a specified range. By default removes ALL notes. Use parameters to target specific ranges. Parameters:
|
| delete_clipB | Delete a clip from a clip slot, leaving the slot empty. Parameters:
|
| duplicate_clip_toA | Duplicate a clip to another clip slot on the same track. Parameters:
|
| set_track_volumeB | Set the volume of a track. Parameters:
|
| set_track_panA | Set the panning of a track. Parameters:
|
| set_track_sendA | Set a send amount on a track (for routing to return tracks). Parameters:
|
| fire_sceneB | Fire (launch) a scene, triggering all clips in that row across all tracks. Parameters:
|
| create_audio_trackB | Create a new audio track in the Ableton session. Parameters:
|
| undoA | Undo the last action in Ableton. |
| batch_commandsA | Execute a list of commands in a single round-trip to Ableton. The whole batch runs atomically inside one main-thread closure, so a
single subsequent Parameters:
Returns a JSON object with:
|
| get_browser_treeA | Get a hierarchical tree of browser categories from Ableton. Parameters:
|
| get_browser_items_at_pathB | Get browser items at a specific path in Ableton's browser. Parameters:
|
| load_drum_kitC | Load a drum rack and then load a specific drum kit into it. Parameters:
|
| add_chord_progressionA | Write a chord progression into an existing MIDI clip in one call. Parameters:
|
| add_scale_runA | Write a scalar run (sequence of notes from a scale) into an existing clip. Parameters:
Generates ascending/descending notes from the chosen scale, packed into
the [start_beat, end_beat) range with |
| add_drum_patternA | Write a preset drum pattern into an existing clip. Patterns are defined
in 1-bar (4 beats) building blocks and tile to fill Parameters:
|
| quantize_clipA | Quantize all notes in a clip to a grid by snapping each note's
Parameters:
Implementation: read existing notes, round start times, then in one batch remove the old notes and write the new ones. The whole edit is atomic from Live's perspective. |
| list_personalitiesA | List every available 'personality' style profile, grouped by role. Roles:
Each personality declares a Use the |
| add_personalityA | Generate a part in the style of a named personality and write it into an
existing MIDI clip. The personality's role (solo / comp / bass / drums)
determines what kind of part is generated — see Parameters:
|
| add_personality_soloA | Legacy alias for |
| add_blended_personality_soloA | Generate a solo from a blended personality — interpolated between two real personalities. Currently solo-only. Parameters:
Numeric profile fields (density, swing, range bounds, velocity range, chord-tone emphasis, etc.) are linearly interpolated. Categorical pools (scale modes, phrase arc) take from A when ratio < 0.5 and B otherwise. |
| transpose_clipA | Transpose every note in a clip by Implementation: read notes, mutate pitches, batch(remove + add). |
| set_time_signatureA | Set the song's time signature. Parameters:
|
| set_clip_loopA | Set a clip's loop region (in beats) and whether the clip loops. Parameters:
|
| set_clip_lengthA | Resize a clip by moving its end_marker. Length is measured in beats from the clip's start_marker. |
| set_track_armC | Arm or disarm a track for recording. |
| set_track_muteC | Mute or unmute a track. |
| set_track_soloC | Solo or unsolo a track. |
| delete_trackA | Delete a track. NOTE: deleting a track shifts the indices of every track after it down by one. When deleting multiple tracks in a batch, delete in descending index order to avoid index drift. |
| set_master_volumeA | Set the master track volume. Parameters:
|
| set_device_parameterA | Set a device parameter on a track using a RAW Live value (not normalized).
The value is clamped to the parameter's min/max. Use Parameters:
|
| create_sceneB | Create a new scene at the given index (-1 = end of list). |
| set_scene_nameB | Set a scene's name. |
| set_scene_tempoB | Set a per-scene tempo. Firing this scene will set the song tempo to this value. |
| search_browserA | Search the Ableton browser by name. Walks the browser tree depth-first and returns up to 50 matches whose names contain the query (case-insensitive). Parameters:
Returns a list of matches with |
| load_instrument_by_nameA | Convenience composite: search the browser by name and load the first
loadable match onto the given track. Equivalent to calling
Parameters:
|
| browse_for_roleA | Walk Ableton's browser for instruments suited to a specific role and return quality-ranked candidates. Roles:
Each item is scored — Instrument Racks (.adg) > Device Presets (.adv) >
bare devices > raw samples (.wav). One-shot junk and FX-only items are
filtered out. Results are sorted best-first so Use this when you don't know what's in the user's library and want a quick menu of options for a given track role. |
| load_instrument_for_personalityA | Load the best Ableton instrument for the named personality onto a track. Each personality has a The Live API REPLACES the existing instrument when you load another one, so this is also a clean way to swap out a placeholder Operator for the "right" instrument for a personality. Parameters:
Returns the loaded item's name, path, score, and which hint matched. |
| get_track_devicesA | List the devices loaded on a track, including each device's parameters
with their current value, min, and max. Use this to discover parameter
indices and ranges before calling |
| create_trackB | Create a track with optional name, instrument, volume, and pan in a single round-trip. Parameters:
|
| create_clip_with_notesA | Create a MIDI clip and populate it with notes in a single batched call. Parameters:
|
| duplicate_clipA | Duplicate a MIDI clip to any other track + slot. Unlike the upstream
|
| setup_sessionA | Bootstrap an Ableton session in (effectively) one round-trip: set tempo, set time signature, and create a list of tracks with optional names, instruments, volume, and pan. Parameters:
Tracks are created in order at the END of the existing track list. Returns a JSON summary of every step. |
| get_arrangement_infoA | BETA: Report arrangement-view state — capabilities, song length, loop region, locators (cue points), and per-track arrangement clips. The |
| add_clip_to_arrangementA | BETA: Copy a session clip onto the arrangement timeline at the given
time (in beats). Requires a Live version that exposes
|
| set_arrangement_loopA | Set the arrangement loop region (in beats) and whether the loop is enabled. Stable across Live 11+. |
| add_arrangement_locatorA | Add a named locator (cue point) at the given arrangement time. Useful for marking verse / chorus / bridge boundaries. If a locator already exists at that exact time, this only renames it. |
| bounce_session_to_arrangementA | BETA: Render a sequence of scenes onto the arrangement timeline. For
each scene in This is the closest thing to a one-call "session sketch → arrangement"
flow. Requires a Live version that supports
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
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/LofiFren/ableton-mcp-lofifren'
If you have feedback or need assistance with the MCP directory API, please join our Discord server