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.
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 2 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
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
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
claude mcp add wstierhout-ableton-live-mcp -- uvx mcp-server-ableton-live
{
"mcpServers": {
"wstierhout-ableton-live-mcp": {
"command": "uvx",
"args": [
"mcp-server-ableton-live"
]
}
}
} {
"servers": {
"wstierhout-ableton-live-mcp": {
"command": "uvx",
"args": [
"mcp-server-ableton-live"
]
}
}
} codex mcp add wstierhout-ableton-live-mcp -- uvx mcp-server-ableton-live
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"wstierhout-ableton-live-mcp": {
"type": "local",
"command": [
"uvx",
"mcp-server-ableton-live"
],
"enabled": true
}
}
} openclaw mcp add wstierhout-ableton-live-mcp --command uvx --arg mcp-server-ableton-live
mcp_servers:
wstierhout-ableton-live-mcp:
command: "uvx"
args: ["mcp-server-ableton-live"] {
"McpServers": {
"wstierhout-ableton-live-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"mcp-server-ableton-live"
]
}
}
} assistant mcp add wstierhout-ableton-live-mcp -t stdio -c uvx -a mcp-server-ableton-live
{
"mcpServers": {
"wstierhout-ableton-live-mcp": {
"command": "uvx",
"args": [
"mcp-server-ableton-live"
]
}
}
} 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
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 →
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 →
set_ableton_link ~44
Enable or disable Ableton Link, which syncs tempo and phase with other Link-enabled apps and devices on the local network.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_arrangement_overdub ~37
Toggle arrangement overdub: recording layers MIDI onto existing arrangement clips instead of replacing them.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_arrangement_time ~60
Move the arrangement playhead to a specific position. Parameters: - time: Position in beats from the start of the arrangement (e.g. 8.0 = bar 3 in 4/4)
| Name | Type | Req | Description |
|---|---|---|---|
| time | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_chain_device_parameter ~85
Set a parameter on a device INSIDE a rack chain (indices from get_rack_chains). Values clamp to the parameter's native range.
| Name | Type | Req | Description |
|---|---|---|---|
| chain_device_index | integer | yes | – |
| chain_index | integer | yes | – |
| device_index | integer | yes | – |
| parameter | – | yes | – |
| track_index | integer | yes | – |
| value | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_audio ~120
Set audio-clip properties. gain 0-1, pitch_coarse semitones (-48..48), pitch_fine cents, warping on/off, warp_mode 0=Beats 1=Tones 2=Texture 3=Re-Pitch 4=Complex 6=Complex Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| gain | – | – | – |
| pitch_coarse | – | – | – |
| pitch_fine | – | – | – |
| track_index | integer | yes | – |
| warp_mode | – | – | – |
| warping | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_color ~111
Set an existing Session clip's palette color without changing its content. This is a visual organization change only. Use set_track_color to recolor the track header instead. Repeating the same color has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | Zero-based Session-view clip-slot index on the track. |
| color_index | integer | yes | Color index in Live's 70-color palette (0-69). |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_groove ~57
Attach a Groove Pool groove to a clip by index (swing/timing feel). Pass no groove_index to clear.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| groove_index | – | – | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_loop ~204
Update selected loop and launch markers on one existing Session clip. Provide at least one optional field; omitted fields stay unchanged. `start` and `end` are loop-brace positions in clip-relative beats and end must be after start. `start_marker` controls where non-looped launch begins; `looping` enables or disables repetition. Use set_loop for the Arrangement's global loop region, not a clip, and get_clip_info to inspect current values.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | Zero-based Session-view clip-slot index on the track. |
| end | – | – | Optional position in beats from the start of the clip. |
| looping | – | – | Optional state change: true turns it on, false turns it off. |
| start | – | – | Optional position in beats from the start of the clip. |
| start_marker | – | – | Optional position in beats from the start of the clip. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_name ~107
Rename an existing Session-view clip without changing its notes or audio. The slot must contain a clip. Use this for the clip label; use set_track_name for the track label. Repeating the same name has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | Zero-based Session-view clip-slot index on the track. |
| name | string | yes | New display name for the Live object. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_signature ~55
Set a clip's own time signature (polymeter / odd-bar loops).
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| denominator | integer | yes | – |
| numerator | integer | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_clip_trigger_quantization ~62
Global launch quantization for firing clips/scenes. 0=None (instant, good for auditioning), 4=1 bar (default), 7=1/4 note, 13=1/32.
| Name | Type | Req | Description |
|---|---|---|---|
| value | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_crossfade_assign ~121
Assign one regular track to crossfader side A, neither side, or side B. This configures which side affects the track; it does not move the crossfader or change track volume immediately. Use set_crossfader afterward to blend the A/B groups. Repeating the same assignment has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| assign | integer | yes | Crossfader assignment: 0 is A, 1 is none, 2 is B. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_crossfader ~44
Set the master crossfader (-1.0 = full A, 0 = center, 1.0 = full B).
| Name | Type | Req | Description |
|---|---|---|---|
| value | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_device_enabled ~131
Enable or bypass one device on a regular track. `true` turns the device on; `false` bypasses its processing while preserving the device and parameter values. This changes audible signal flow but not clip content. Use set_track_mute to silence the whole track, or set_device_parameter to change one control.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | Zero-based device position in the target track's device chain. |
| enabled | boolean | yes | True turns the requested state on; false turns it off. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_device_parameter ~163
Set a parameter after reading get_device_parameters. Numbers use the native range; strings use display units ('250 Hz', '-6 dB') or exact enum labels. Unsupported display mappings fail before writing. Returns Live's actual readback and warnings.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | Zero-based device position in the target track's device chain. |
| parameter | – | yes | Parameter name or zero-based parameter index returned by the matching get_*_device_parameters tool. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| value | – | yes | Native number (clamped/quantized), exact enum label, or display text with Hz/kHz/ms/s/dB/% units, e.g. '250 Hz'. Unsupported mappings fail before writing. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_device_routing ~118
Set a device's sidechain audio input. `field` is "input_routing_type" (the source track/return) or "input_routing_channel" (Pre FX / Post FX / Post Mixer); `display_name` is one of the options from get_device_routing. For ducking, also enable the device's Sidechain parameter via set_device_parameter.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | – |
| display_name | string | yes | – |
| field | string | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_drum_pad ~85
Mute/solo/rename a single Drum Rack pad by its MIDI note (e.g. 36=kick). Per-pad muting = instant beat variations without touching the notes.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | – |
| mute | – | – | – |
| name | – | – | – |
| note | integer | yes | – |
| solo | – | – | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_fold_state ~50
Fold (collapse) or unfold a group track. Errors if the track is not a group track (see get_group_info).
| Name | Type | Req | Description |
|---|---|---|---|
| folded | boolean | – | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_groove_amount ~50
Set the global Groove Amount (0.0 to 1.0), which scales how strongly every clip's assigned groove is applied across the whole set.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_loop ~119
Set the global Arrangement loop region and its enabled state. `start` is an absolute beat and `length` is a positive beat duration. The region is updated even when `enabled=false`; playback simply will not repeat it. Use set_clip_loop for a Session clip's loop braces, not the Arrangement.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | – | True turns the requested state on; false turns it off. |
| length | number | yes | Positive duration or region length in beats. |
| start | number | yes | Position in beats from the start of the Arrangement. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_master_device_parameter ~187
Set one enabled parameter on a device in the Master track's chain. Call get_master_device_parameters first and use its parameter name/index and native min/max; numeric out-of-range values are clamped. Display strings with supported units or exact enum labels also work; unsupported mappings fail before writing. This affects the full mix. Read back the resulting display. Use set_device_parameter for a regular track or set_return_device_parameter for a return track.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | Zero-based device position in the target track's device chain. |
| parameter | – | yes | Parameter name or zero-based parameter index returned by the matching get_*_device_parameters tool. |
| value | – | yes | Native number (clamped/quantized), exact enum label, or display text with Hz/kHz/ms/s/dB/% units, e.g. '250 Hz'. Unsupported mappings fail before writing. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_master_volume ~44
Set the Main/Master track volume. Range 0.0-1.0 where 0.85 = 0 dB.
| Name | Type | Req | Description |
|---|---|---|---|
| volume | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_metronome ~27
Turn Live's metronome click on/off.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_record_mode ~99
Arm or disarm Live's global Arrangement Record state. `true` enables Arrangement recording; `false` disables it. Enabling alone does not record: arm the intended tracks with set_track_arm, then use start_playback. Use set_session_record or trigger_session_record for Session slots instead. Repeating the current state has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | True turns the requested state on; false turns it off. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_return_device_parameter ~194
Set one enabled parameter on a device in a return track's chain. Call get_return_device_parameters first and use its parameter name/index and native min/max; numeric out-of-range values are clamped. Supported display-unit strings and exact enum labels also work; unsupported mappings fail before writing. Use set_device_parameter for a regular track or set_master_device_parameter for the full-mix chain.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | Zero-based device position in the target track's device chain. |
| parameter | – | yes | Parameter name or zero-based parameter index returned by the matching get_*_device_parameters tool. |
| return_index | integer | yes | Zero-based return-track index; 0 is Return A. |
| value | – | yes | Native number (clamped/quantized), exact enum label, or display text with Hz/kHz/ms/s/dB/% units, e.g. '250 Hz'. Unsupported mappings fail before writing. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_scene_name ~73
Rename one Session-view scene without changing any clips in the row. Use set_clip_name for an individual clip. Repeating the same name has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | New display name for the Live object. |
| scene_index | integer | yes | Zero-based Session-view scene (row) index. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_send ~64
Set a track's send level (send_index 0 = Return A, 1 = Return B, ...). Range 0.0-1.0.
| Name | Type | Req | Description |
|---|---|---|---|
| send_index | integer | yes | – |
| track_index | integer | yes | – |
| value | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_session_automation_record ~39
Toggle recording of parameter changes into Session clip envelopes - an alternative to write_automation for captured knob rides.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_session_record ~38
Toggle Session record (records into armed tracks' selected Session slots; also enables MIDI overdub into playing clips).
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_simpler_playback_mode ~95
Set a Simpler device's playback mode: 0 = Classic, 1 = One-Shot, 2 = Slicing. Slicing chops the sample into playable slices, central to lofi/hip-hop sampling. Errors if the device at that index is not a Simpler.
| Name | Type | Req | Description |
|---|---|---|---|
| device_index | integer | yes | – |
| mode | integer | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_song_scale ~65
Set the song's key context. root_note 0-11 (0=C, 2=D...), scale_name e.g. "Major", "Minor", "Dorian". Read current values via get_session_info.
| Name | Type | Req | Description |
|---|---|---|---|
| root_note | – | – | – |
| scale_name | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_swing_amount ~39
Set the global swing amount (0.0 to 1.0) used when quantizing with swing.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_tempo ~37
Set the tempo of the Ableton session. Parameters: - tempo: The new tempo in BPM
| Name | Type | Req | Description |
|---|---|---|---|
| tempo | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_time_signature ~131
Set the Live set's global time signature, such as 4/4, 3/4, or 6/8. This changes bar/grid and metronome interpretation but does not rewrite clip notes. Use set_clip_signature instead when only one clip needs a different meter for polymeter. Repeating the same signature has no additional effect.
| Name | Type | Req | Description |
|---|---|---|---|
| denominator | integer | yes | Beat-note denominator, such as 4 in 4/4 or 8 in 6/8. |
| numerator | integer | yes | Number of beats per bar, such as 4 in 4/4. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_arm ~49
Arm or disarm a track for recording (fails on tracks that can't be armed, e.g. group/return tracks).
| Name | Type | Req | Description |
|---|---|---|---|
| arm | boolean | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_color ~41
Set a track's color by index (0-69 in Live's palette).
| Name | Type | Req | Description |
|---|---|---|---|
| color_index | integer | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_monitoring ~56
Set input monitoring: 0=In (always hear input), 1=Auto, 2=Off. Required for resampling/bounce workflows.
| Name | Type | Req | Description |
|---|---|---|---|
| state | integer | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_mute ~112
Set one regular track's mute state (`true` mutes; `false` unmutes). Muting silences that track in Live but preserves its clips, devices, and mixer settings. Use set_track_solo to audition a track relative to the rest, or stop_clip when only Session clip playback should stop.
| Name | Type | Req | Description |
|---|---|---|---|
| mute | boolean | yes | True turns the requested state on; false turns it off. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_name ~56
Set the name of a track. Parameters: - track_index: The index of the track to rename - name: The new name for the track
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_pan ~115
Set one regular track's stereo pan position; 0.0 is centered. Live clamps the value to the track's native range. This changes mixer state, not the audio file or clip content. Use set_master_device_parameter for a device control, and set_crossfader for A/B crossfading.
| Name | Type | Req | Description |
|---|---|---|---|
| pan | number | yes | Pan position from -1.0 (left) to 1.0 (right). |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_routing ~101
Set track routing by display name. field: input_routing_type | output_routing_type | input_routing_channel | output_routing_channel. Enables sidechain sources, bus routing, and resampling (route a track's output into another track's input, arm, record). Get options from get_track_routing first.
| Name | Type | Req | Description |
|---|---|---|---|
| display_name | string | yes | – |
| field | string | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_solo ~111
Set one regular track's solo state (`true` solos; `false` unsolos). Solo changes monitoring relative to other tracks and does not alter clip or device content. Other tracks may remain soloed, so clear them separately when exclusive auditioning is required. Use set_track_mute to silence this track.
| Name | Type | Req | Description |
|---|---|---|---|
| solo | boolean | yes | True turns the requested state on; false turns it off. |
| track_index | integer | yes | Zero-based index of a regular track in the Live set. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_track_volume ~51
Set track volume. Range 0.0-1.0 where 0.85 = 0 dB (unity gain).
| Name | Type | Req | Description |
|---|---|---|---|
| track_index | integer | yes | – |
| volume | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
setup_session ~114
Bootstrap a session in one call: set tempo and create named MIDI tracks, optionally loading an instrument found by name for each. tracks: [{"name": "Drums", "instrument": "drum kit"}, {"name": "Bass", "instrument": "upright bass"}, ...]. "instrument" is a search_browser query (best match is loaded); omit it to create an empty track. Returns a per-track report with the loaded item names.
| Name | Type | Req | Description |
|---|---|---|---|
| tempo | number | yes | – |
| tracks | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
start_playback ~44
Start Arrangement playback from the current song time. NOTE: the response reports the PRE-command state (may say playing=false right after starting) - confirm with get_session_info.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
stop_all_clips ~22
Stop every playing Session clip (does not stop the transport).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
stop_browser_preview ~19
Stop the browser preview started by preview_browser_item.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
stop_clip ~59
Stop playing a clip. Parameters: - track_index: The index of the track containing the clip - clip_index: The index of the clip slot containing the clip
| Name | Type | Req | Description |
|---|---|---|---|
| clip_index | integer | yes | – |
| track_index | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
stop_playback ~29
Stop playback. NOTE: the response reports the PRE-command state - confirm with get_session_info.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
switch_to_arrangement_view ~24
Switch Ableton's main window to the Arrangement view. Parameters:
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
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.