Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Ableton Live MCP Server

PYPI · MCP-SERVER-ABLETON-LIVE · SCANNED SEP 20

Control Ableton Live with 156 typed tools for music production and offline .als analysis.

0 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 0 of 34 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency35
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 14608 tokens (~93/item across 156 items; 156 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage77
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 20% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 157 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Ableton Live MCP Server server?

Ableton Live MCP Server runs locally as a PyPI package, launched with uvx mcp-server-ableton-live. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mcp-server-ableton-live

# add to Claude Code
claude mcp add wstierhout-ableton-live-mcp -- uvx mcp-server-ableton-live
// .cursor/mcp.json
{
  "mcpServers": {
    "wstierhout-ableton-live-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-ableton-live"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "wstierhout-ableton-live-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-ableton-live"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add wstierhout-ableton-live-mcp -- uvx mcp-server-ableton-live
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wstierhout-ableton-live-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "mcp-server-ableton-live"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add wstierhout-ableton-live-mcp --command uvx --arg mcp-server-ableton-live
# ~/.hermes/config.yaml
mcp_servers:
  wstierhout-ableton-live-mcp:
    command: "uvx"
    args: ["mcp-server-ableton-live"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "wstierhout-ableton-live-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcp-server-ableton-live"
      ]
    }
  }
}
# add to Vellum
assistant mcp add wstierhout-ableton-live-mcp -t stdio -c uvx -a mcp-server-ableton-live
// mcp.json
{
  "mcpServers": {
    "wstierhout-ableton-live-mcp": {
      "command": "uvx",
      "args": [
        "mcp-server-ableton-live"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +15
    • Malware scan: unverified → pass security
  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 −14
    • Malware scan: pass → unverified security
    • Stability: 0.97 → pass security
  • 17 Sept 26 0
    • Malware scan: pass → unverified security
    • Package version: 1.8.0 → 1.8.1 functional
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
  • 12 Sept 26 +12
    • Malware scan: unverified → pass security
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/mcp-server-ableton-live@1.8.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 34 packages
Packages resolved 34
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 156 exposed · ~14,156 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
generate_drum_pattern ~172

Write a genre drum pattern into a Session clip on a Drum Rack track. REPLACES the clip's notes if the clip exists. style: lofi | boom_bap | house | techno | trap | dnb | ambient. swing: beats to delay 8th-note offbeats (0.0-0.1; 0.06 ≈ MPC-ish). humanize: max random velocity deviation (0 = machine-perfect). Uses the standard Live drum map (36 kick, 38 snare, 42/46 hats...).

NameTypeReqDescription
barsinteger
clip_indexintegeryes
humanizeinteger
seed
stylestring
swingnumber
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

generate_euclidean_drums ~222

Write a Euclidean (Bjorklund) rhythm for one drum voice into a Session clip. REPLACES the clip's notes if the clip exists. Distributes `pulses` hits as evenly as possible across `steps` slots spanning one bar (steps=8 -> 8th notes, 16 -> 16th notes), repeated for `bars`. pulses=3, steps=8 is the tresillo. `rotate` shifts the pattern left by that many steps. instrument: a drum-map name (kick/snare/chat/ohat/clap/ride/...) or a raw MIDI number. `humanize` is max +/- velocity jitter.

NameTypeReqDescription
barsinteger
clip_indexintegeryes
humanizeinteger
instrumentstring
pulsesinteger
rotateinteger
seed
stepsinteger
track_indexintegeryes
velocityinteger
NameTypeReqDescription
resultstringyes

No examples provided.

generate_genre_progression ~226

Build a genre-idiomatic chord progression and write it as voiced chords. REPLACES existing notes. genre: lofi/boom_bap/hip_hop/trap/house/deep_house/techno/trance/dnb/rnb/ neo_soul/jazz/bossa_nova/ambient/synthwave/pop/afrobeats/amapiano/... (fuzzy matched). The genre's scale-degree grammar is transposed into key+scale, then voiced (see generate_voiced_progression for the style options). bars = number of chords (the grammar loops). Returns the chord symbols it used.

NameTypeReqDescription
barsinteger
beats_per_chordnumber
center_pitchinteger
clip_indexintegeryes
genrestringyes
keystring
scalestring
seed
stylestring
track_indexintegeryes
velocityinteger
voicesinteger
NameTypeReqDescription
resultstringyes

No examples provided.

generate_groove ~178

Write a pocketed drum groove into a Session clip. REPLACES existing notes. style: lofi | boom_bap | house | trap | jazz | funk. pocket: beats to lay every hit behind the beat (0.0-0.1). swing: off-beat hat delay (0.5 straight .. ~0.66). ghost: 0-1 probability of soft ghost snares between backbeats. humanize: max +/- velocity deviation. Uses the standard Live drum map.

NameTypeReqDescription
barsinteger
clip_indexintegeryes
ghostnumber
humanizeinteger
pocketnumber
seed
stylestring
swingnumber
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

generate_melody ~270

Write a voice-led melody over a chord progression. REPLACES existing notes. Notes come from key+scale, biased to chord tones on strong beats, chosen by nearest-pitch voice-leading (small steps), with optional chromatic approach notes. progression: dash-/comma-separated symbols. key: e.g. "C", "F#", "Bb". scale: major/minor/dorian/lydian/mixolydian/blues/bebop/minor_pentatonic/... density: low|medium|high (note rate). phrase_arc: rising|arch|ascend_descend| static (register contour). chromatic: 0-1 approach-note probability. low/high bound the register (MIDI). swing: 0.5 straight .. ~0.66.

NameTypeReqDescription
beats_per_chordnumber
chromaticnumber
clip_indexintegeryes
densitystring
highinteger
keystring
lowinteger
phrase_arcstring
progressionstringyes
scalestring
seed
swingnumber
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

generate_phase ~254

Write a Steve-Reich phasing pattern into a Session clip. REPLACES the clip's notes if it already exists. Builds a short one-voice motif (each pitch a ``note_length``-beat note, back to back) from ``pitches`` -- a space-/comma-separated list of MIDI numbers, e.g. "60 62 64 67 69". Then stacks ``repeats`` copies of that motif, each copy starting ``shift`` beats later than the last, so the copies drift against one another. A ``shift`` smaller than the motif length (len(pitches)*note_length) gives the classic overlapping phase texture; ``shift`` == motif length is a plain loop. If ``source_clip_index`` is given, the motif is read from that clip on the same track instead of built from ``pitches``. Returns a short summary.

NameTypeReqDescription
clip_indexintegeryes
note_lengthnumber
pitchesstring
repeatsinteger
shiftnumber
source_clip_index
track_indexintegeryes
velocityinteger
NameTypeReqDescription
resultstringyes

No examples provided.

generate_voiced_progression ~207

Write voice-led jazz chord voicings into a Session clip. REPLACES existing notes. progression: dash-/comma-separated symbols, e.g. "Am9-Dm7-G13-Cmaj7". style: rootless (3-7-9-13 stack, no root), quartal (stacked 4ths), shell (root-3-7), or block (close-position). Smooth voice-leading is applied between chords. center_pitch biases register (60 = C3 in Live). voices caps notes per chord; humanize is max +/- velocity jitter.

NameTypeReqDescription
beats_per_chordnumber
center_pitchinteger
clip_indexintegeryes
humanizeinteger
progressionstringyes
seed
stylestring
track_indexintegeryes
velocityinteger
voicesinteger
NameTypeReqDescription
resultstringyes

No examples provided.

generate_walking_bass ~187

Write a quarter-note walking bass line under a progression. REPLACES notes. Root on beat 1, chord/scale tones through the bar, chromatic approach into the next chord's root on the last beat, with occasional soft ghost notes. progression: dash-/comma-separated symbols. key/scale set the passing-tone pool. octave: 1 = very low (C1), 2 = typical bass (C2). ghost: 0-1 offbeat ghost-note probability.

NameTypeReqDescription
beats_per_chordnumber
clip_indexintegeryes
ghostnumber
keystring
octaveinteger
progressionstringyes
scalestring
seed
track_indexintegeryes
velocityinteger
NameTypeReqDescription
resultstringyes

No examples provided.

get_arrangement_clips ~63

List all clips placed in the Arrangement timeline for a track. Returns each clip's name, start_time, end_time, length, and type. Parameters: - track_index: The index of the track to inspect

NameTypeReqDescription
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_browser_items_at_path ~62

Get browser items at a specific path in Ableton's browser. Parameters: - path: Path in the format "category/folder/subfolder" where category is one of the available browser categories in Ableton

NameTypeReqDescription
pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

get_browser_tree ~104

List the browser's top-level categories and their immediate entries. NOTE: returns a shallow listing (no deep hierarchy) - drill down with get_browser_items_at_path("instruments"), ...("sounds/Piano & Keys"), etc., or skip straight to search_browser when you know a name. category_type: "all", "instruments", "sounds", "drums", "audio_effects", "midi_effects".

NameTypeReqDescription
category_typestring
NameTypeReqDescription
resultstringyes

No examples provided.

get_clip_info ~58

Full clip state: loop points, markers, playing position, per-clip time signature; for audio clips also file path, gain display, and warp markers.

NameTypeReqDescription
clip_indexintegeryes
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_clip_notes ~106

Return every MIDI note in an existing Session-view MIDI clip. Each note includes pitch, start time, duration, velocity, and mute state; newer Live versions may add expression fields. This is read-only and fails for an empty slot or audio clip. Use get_clip_info for clip properties.

NameTypeReqDescription
clip_indexintegeryesZero-based Session-view clip-slot index on the track.
track_indexintegeryesZero-based index of a regular track in the Live set.
NameTypeReqDescription
resultstringyes

No examples provided.

get_device_parameters ~44

List all parameters of a device on a track: names, values, ranges, display strings.

NameTypeReqDescription
device_indexintegeryes
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_device_routing ~78

Read a device's audio-input (sidechain) routing: current input type/channel and the available options. Only sidechain-capable devices (Compressor, Gate) have this. Use the options with set_device_routing to pick a sidechain source.

NameTypeReqDescription
device_indexintegeryes
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_drum_pads ~45

List a Drum Rack's occupied pads (MIDI note, name, mute, solo).

NameTypeReqDescription
device_indexintegeryes
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_grooves ~27

List grooves in the Groove Pool (index + name) and the global groove amount.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_group_info ~51

Report a track's group state: whether it is a foldable group track, whether it is inside a group, its fold state, and its parent group's name.

NameTypeReqDescription
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_locators ~33

List arrangement locators (index, name, beat time) for structure-aware navigation. Jump with jump_to_locator.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_master_device_parameters ~28

List parameters of a device on the Master track.

NameTypeReqDescription
device_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_master_meters ~41

Read the Master track's output meters - values pinned near 1.0 during playback mean the master is clipping; pull set_master_volume down.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_rack_chains ~57

List an Instrument/Effect Rack's chains and the devices inside each - previously unreachable nested devices. Use set_chain_device_parameter to control them.

NameTypeReqDescription
device_indexintegeryes
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_return_device_parameters ~53

List parameters of a device on a Return track: names, values, min/max, display strings. Call before set_return_device_parameter.

NameTypeReqDescription
device_indexintegeryes
return_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_return_tracks ~17

List return tracks (index + name).

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_scale_info ~71

Read the song's scale and tuning: scale name, root note, scale intervals, and the active tuning system (microtonal, Live 12.3+) if any. Set the scale with set_song_scale; tune device parameters (e.g. Wavetable) with set_device_parameter.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_session_info ~94

Return global Live-set and transport state without modifying the set. Includes tempo, song time signature, playback position/state, Arrangement loop, track/return/scene counts, scene names, key/scale, record mode, launch quantization, Master volume/pan, and Live version. Use get_track_info for a single track's clips/devices, or get_session_snapshot for a compact overview of every track.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_session_snapshot ~65

One-call overview of the whole set: tempo, time signature, play state, and for every track its name, type, mute/solo/arm, volume, clip count, and device names, plus return-track names. Prefer this over many get_track_info calls.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_track_info ~107

Return detailed state for one regular track without modifying the set. Includes name/type, mixer and arm/mute/solo state, sends, freeze/color state, playing/fired slot indices, every Session slot's basic clip state, and the device-chain names/types. Use get_session_info for global transport state, get_device_parameters for parameter values, or get_clip_info for full clip properties.

NameTypeReqDescription
track_indexintegeryesZero-based index of a regular track in the Live set.
NameTypeReqDescription
resultstringyes

No examples provided.

get_track_meters ~76

Read a track's output level meters (post-fader): left/right 0.0-1.0ish (0.85 ≈ 0 dB, like faders). Poll during playback to judge balance/clipping - this is how you 'listen' without exporting.

NameTypeReqDescription
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

get_track_routing ~68

Read a track's input/output routing (current + all available options) and monitoring state (0=In, 1=Auto, 2=Off). Routing options are identified by display_name - use those strings with set_track_routing.

NameTypeReqDescription
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

humanize_clip ~113

Read a MIDI clip, apply timing + velocity humanization, and write it back. REPLACES the clip's notes with the jittered version. timing: max +/- start-time deviation in beats. velocity: max +/- velocity deviation. Pitches are preserved; times stay non-negative. seed makes it reproducible.

NameTypeReqDescription
clip_indexintegeryes
seed
timingnumber
track_indexintegeryes
velocityinteger
NameTypeReqDescription
resultstringyes

No examples provided.

jump_by ~40

Move the playhead by a relative number of beats (negative moves back). Works during playback for on-the-fly navigation.

NameTypeReqDescription
beatsnumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

jump_to_cue ~44

Jump the playhead to the next locator/cue (direction >= 0) or the previous one (direction < 0).

NameTypeReqDescription
directioninteger
NameTypeReqDescription
resultstringyes

No examples provided.

jump_to_locator ~31

Move the playhead to a locator (index from get_locators).

NameTypeReqDescription
locator_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

list_known_devices ~20

List the devices that describe_device has curated guidance for.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

list_recipes ~36

List the built-in composition recipes (name, description, and default tempo/key/scale/bars), for use with apply_recipe.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

load_device_to_master ~40

Load a device/effect from the browser onto the Master/Main track (e.g. a limiter for mastering).

NameTypeReqDescription
item_uristringyes
NameTypeReqDescription
resultstringyes

No examples provided.

load_device_to_return ~119

Append one loadable browser device or preset to a return track's chain. Obtain `item_uri` from search_browser. Loading selects the return track in Live and creates a new device, so repeated calls add duplicates. Prefer audio effects on returns; use load_instrument_or_effect for a regular track or load_device_to_master for the Master chain.

NameTypeReqDescription
item_uristringyesLoadable browser-item URI returned by search_browser.
return_indexintegeryesZero-based return-track index; 0 is Return A.
NameTypeReqDescription
resultstringyes

No examples provided.

load_drum_kit ~167

Load a Drum Rack, then the first loadable kit at a browser path. Use search_browser to obtain the rack URI and get_browser_items_at_path to verify the kit path. This is a two-step mutation: it appends the rack first, then loads the first loadable item found at `kit_path`. If path lookup fails, the new empty rack remains on the track; repeated calls add more racks. Use load_instrument_or_effect when one known browser URI is sufficient.

NameTypeReqDescription
kit_pathstringyesSlash-separated Live browser path, such as "drums/acoustic".
rack_uristringyesLoadable browser-item URI returned by search_browser.
track_indexintegeryesZero-based index of a regular track in the Live set.
NameTypeReqDescription
resultstringyes

No examples provided.

load_instrument_or_effect ~91

Load an instrument or effect onto a track using its URI. Parameters: - track_index: The index of the track to load the instrument on - uri: The URI of the instrument or effect to load (e.g., 'query:Synths#Instrument%20Rack:Bass:FileId_5116')

NameTypeReqDescription
track_indexintegeryes
uristringyes
NameTypeReqDescription
resultstringyes

No examples provided.

preview_browser_item ~67

Audition a browser item (a sample, instrument, or preset) through Live's preview tab WITHOUT loading it onto a track. `item_uri` comes from search_browser or get_browser_items_at_path. Use stop_browser_preview to stop.

NameTypeReqDescription
item_uristringyes
NameTypeReqDescription
resultstringyes

No examples provided.

quantize_clip ~91

Quantize a MIDI clip. grid: quarter/eighth/eighth_triplet/sixteenth/sixteenth_triplet/thirtysecond. amount 0.0-1.0 (use <1.0 to humanize toward the grid without full snap).

NameTypeReqDescription
amountnumber
clip_indexintegeryes
gridstring
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

rack_variation ~83

Rack macro snapshots. action: "store" (save current macros as a variation), "recall" (restore variation `index`), "randomize" (randomize all macro knobs - instant sound-design exploration).

NameTypeReqDescription
actionstringyes
device_indexintegeryes
index
track_indexintegeryes
NameTypeReqDescription
resultstringyes

No examples provided.

re_enable_automation ~40

Restore automation that was overridden by manual parameter changes. IMPORTANT: setting a device parameter that has an envelope overrides the envelope until this is called.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

record_section ~162

Bounce a section of the arrangement to an audio file WITHOUT the Export dialog, so you can hear an internal signal. Creates a temporary audio track, routes its input to `source` ("Resampling" = the master output, or a track's name for that track's output), arms it, and records from start_beat to end_beat in REAL TIME (a 4-bar section takes about 4 bars of wall-clock; capped at 5 minutes). Returns the recorded WAV path. Set cleanup=False to keep the recording track. Runs the transport and adds an arrangement clip.

NameTypeReqDescription
cleanupboolean
end_beatnumberyes
sourcestring
start_beatnumberyes
NameTypeReqDescription
resultstringyes

No examples provided.

redo ~16

Redo the last undone action in Live.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

replace_simpler_sample ~108

Replace a Simpler sample with an absolute local audio-file path. Requires Live 12.4+ AND runtime API support; otherwise fails before writing. Replaces musical content: confirm the target and preserve the original set. Readback is not an audio audition.

NameTypeReqDescription
device_indexintegeryesZero-based device position in the target track's device chain.
pathstringyes
track_indexintegeryesZero-based index of a regular track in the Live set.
NameTypeReqDescription
resultstringyes

No examples provided.

save_set ~60

Save the current Live set to its existing file, if the Live API supports it (it does not on most versions). Returns whether the API call is available and whether the save succeeded. To save under a new name/path, use the GUI Save-As.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

search_browser ~122

Search the Ableton browser by display name (case-insensitive substring). Returns loadable items with their URIs for load_instrument_or_effect / load_device_to_master / load_device_to_return. category: optionally limit to one of "instruments", "sounds", "drums", "audio_effects", "midi_effects", "packs" (default: search all of them). Prefer this over walking get_browser_items_at_path when you know a name.

NameTypeReqDescription
category
max_resultsinteger
querystringyes
NameTypeReqDescription
resultstringyes

No examples provided.

session_diff ~99

Report what changed in the set since the LAST time you called this tool: tempo/time-signature/play-state, tracks added, removed, renamed or reordered, and per-track volume, mute, solo, arm, clip-count, and device changes. The first call records a baseline (no diff). Track IDs are scoped to the running bridge; older bridges cannot identify renames reliably. Call it before and after an edit to verify it took effect.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the Ableton Live MCP Server server?

Ableton Live MCP Server is listed in the public MCP registry as io.github.wstierhout/ableton-live-mcp. Control Ableton Live with 156 typed tools for music production and offline .als analysis. This page covers its PyPI package (mcp-server-ableton-live).

Is the Ableton Live MCP Server server safe to use?

Ableton Live MCP Server scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Ableton Live MCP Server server expose?

Ableton Live MCP Server exposes 156 tools: get_session_info, set_tempo, start_playback, stop_playback, create_scene, and 151 more. Their descriptions and schemas cost roughly 14,156 tokens of context every time the server is loaded.

Is the Ableton Live MCP Server server still maintained?

Ableton Live MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.