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