Ableton Live MCP
Ableton Live MCP
Ein MCP-Server für Ableton Live 12, basiert auf dem offiziellen Ableton Extensions SDK. Der MCP-Server läuft innerhalb von Live als Erweiterung — kein Bridge-Prozess, keine MIDI-Remote-Skripte. Jeder MCP-Client (Claude Code, Claude Desktop, Cursor, ...) verbindet sich über streamable HTTP und erhält volle programmatische Kontrolle über das Live-Set: Spuren, Clips, MIDI-Noten, Geräte, Parameter, Mixer, Szenen, Warping, Rendering und mehr.
MCP client (Claude, ...) ──streamable HTTP──▶ http://127.0.0.1:8722/mcp
│
Live Extension Host (Node.js)
│
Ableton Live 12Voraussetzungen
Ableton Live 12.4.5 oder neuer (Extensions-Unterstützung)
Node.js >= 24.14 (nur Build)
Related MCP server: ableton-agent-mcp
Installation
npm install
npm run package # builds and produces Ableton-Live-MCP-<version>.ablxZiehen Sie in Live die .ablx-Datei auf Einstellungen → Erweiterungen. Der MCP-Endpunkt startet zusammen mit Live unter http://127.0.0.1:8722/mcp (GET /health für einen schnellen Check).
Entwicklermodus
Aktivieren Sie in Live Einstellungen → Erweiterungen → Entwicklermodus und führen Sie dann Folgendes aus:
npm start # builds and runs the extension against the running LiveDie .env-Datei muss auf Ihre Live-Installation verweisen, z. B.:
EXTENSION_HOST_PATH=/Applications/Ableton Live 12 Beta.app.
Client verbinden
Claude Code:
claude mcp add --transport http ableton-live http://127.0.0.1:8722/mcpClaude Desktop (oder ein Client, der nur stdio unterstützt) über mcp-remote:
{
"mcpServers": {
"ableton-live": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:8722/mcp"]
}
}
}Konfiguration
Der Port wird in config.json im Speicherverzeichnis der Erweiterung gespeichert (wird beim ersten Start erstellt; der Pfad wird von song_get unter environment.storage_directory gemeldet). Standard:
{ "port": 8722 }Funktionsweise
Jedes Live-Objekt (Spur, Clip, Gerät, Parameter, ...) wird über eine stabile Objekt-ID angesprochen, die über die Auflistungs-Werkzeuge (
song_get,track_get,device_get, ...) ermittelt wird.IDs bleiben gültig, bis das Objekt gelöscht oder verschoben wird, oder bis ein anderes Live-Set geladen wird. Veraltete IDs führen zu einem Fehler, der den Client zum erneuten Auflisten auffordert.
Alle Zeit- und Positionsangaben erfolgen in Beats; Farben werden als
#RRGGBBangegeben; MIDI-Tonhöhen liegen zwischen 0 und 127.Schreibvorgänge mit mehreren Werten (
parameter_set) werden in Live zu einem einzigen Undo-Schritt zusammengefasst.
Werkzeuge
Song
Werkzeug | Beschreibung |
| Zustand des Live-Sets: Tempo, Tonleiter, Grid, Spuren, Return-/Master-Spuren, Szenen, Cue-Punkte, Umgebungsinformationen. Der Einstiegspunkt — liefert die überall sonst verwendeten Objekt-IDs. Mit |
| Song-Eigenschaften setzen (Tempo). |
Spuren
Werkzeug | Beschreibung |
| Track-Details: Clip-Slots + Clips, Take-Lanes, Arrangement-Clips, Geräte, Mixer mit Werten. Ansprache über |
| Name / Mute / Solo / Arm. |
| Neue Audio- oder MIDI-Spur erstellen. |
| Spur löschen. |
| Spur duplizieren. |
| Arrangement-Clips in einem Beat-Bereich löschen bzw. kürzen. |
| Take-Lane zu einer Spur hinzufügen. |
| Take-Lane umbenennen. |
Szenen & Cue-Punkte
Werkzeug | Beschreibung |
| Szenen verwalten. |
| Arrangement-Locators verwalten. |
Clips
Werkzeug | Beschreibung |
| MIDI- oder Audio-Clips in einen Session-Slot (per ID oder Spur + |
| Vollständige Clip-Details (Audio: Warp-Einstellungen + Marker; MIDI: Notenanzahl). |
| Name, Farbe, Stummschalten, Looping, Warping, Warp-Modus. |
| Einen Session- oder Arrangement-Clip löschen. |
| Alle MIDI-Noten auslesen. |
| Noten schreiben: |
| Serverseitige Noten-Transformationen — Transponieren, Zeitverschieben, Velocity-Skalierung/-Offset, Quantisieren, Löschen — mit Pitch-/Zeitauswahl. Kein Read-Modify-Write-Roundtrip. |
Geräte & Racks
Werkzeug | Beschreibung |
| Gerätedetails: Parameter mit Werten/Grenzen ( |
| Ein integriertes Live-Gerät in eine Spur oder Rack-Kette einfügen. |
| Geräte entfernen oder duplizieren. |
| Rack-Ketten-Details: Geräte + Ketten-Mixer. |
| Einem Rack eine Kette hinzufügen. |
| MIDI-Notx eines Drum-Rack-Pads setzen. |
| Sample in einem Simpler tauschen. |
Parameter & Mixing
Werkzeug | Beschreibung |
| Parameterwerte vom Gerät/Mixer lesen (Batch). |
| Parameterwerte schreiben (Batch, ein Undo-Schritt). |
| Lautstärke / Pan / Sends einer Spur oder Kette, mitsamt Parameter-IDs und Einheiten-Hinweisen. |
| Lautstärke / Pan / Sends einer Spur oder Kette in einem einzigen Aufruf setzen (ein Undo-Schritt). |
Dateien & Rendering
Werkzeug | Beschreibung |
| Kopiert eine Datei in das Live-Projekt. |
| Pre-FX-Audio einer Audio-Spur als WAV rendern. |
UI & Befehle
Werkzeug | Beschreibung |
| Ein modales HTML-Dialogfenster in Live anzeigen (den Benutzer fragen, Berichte zeigen). |
| Befehle des Extension Hosts ausführen, z. B. |
Skills
skills/ableton-live/SKILL.md ist ein installierbarer Agent-Skill, der einem MCP-Client beibringt, diese Werkzeuge gut zu nutzen (ID-Ermittlungsablauf, Beats vs. Sekunden, Notenbearbeitungs-Muster, Geräte-Workflows). So installieren Sie den Skill für Claude Code:
mkdir -p ~/.claude/skills && cp -r skills/ableton-live ~/.claude/skills/Typische Dinge, die Sie einen verbundenen Assistenten bitten können:
Ein 4-Bar-House-Drum-Pattern auf einer neuen MIDI-Spur mit einem Drum Rack erstellen
Alle Clips auf der Drum-Spur im Modus „Complex Pro" warpen
Jede Spur außer dem Vocal-Bus um 3 dB absenken
Ein Song-Gerüst aus Intro-, Strophe- und Chorus-Szenen mit Locators bauen
Das Sample im Simpler mit
/path/to/kick.waversetzen und es auf C1 mappen
Einschränkungen
Die Erweiterung (und damit der MCP-Endpunkt) läuft nur, solange Live geöffnet ist.
Es können nur eingebaute Live-Devices eingefügt werden; Drittanbieter-Plug-ins können vom SDK nicht geladen werden.
Keine Transportsteuerung (Wiedergabe/Stopp/Aufnahme) und kein Clip-Launching — die Extensions API v1.0.0 stellt sie nicht bereit. Gleiches gilt für den Browser-Zugriff und Parameter-Automationskurven.
show_dialogblockiert, bis der Benutzer den Dialog in Live schließt.
Tests
npm test # E2E against a mock Extension Host: MCP client ↔ HTTP ↔ all tools
node test/live-smoke.mjs # against a real running Live with the extension loadedDer Live-Smoke-Test erstellt eigene Spuren/Clips/Devices, prüft jede Tool-Familie (MIDI-Noten, Warping, Drum-Racks, Rendering, ...) und löscht alles, was er erstellt hat.
Extension-Host-Eigenheiten (wissenswert)
Zwei Verhaltensweisen des Beta-Extension-Hosts, die dieses Projekt umgeht:
Leerer VM-Kontext. Erweiterungen werden in einem V8-Kontext ohne
globaloder Web-Globals (Request,Response,ReadableStream,fetch,EventTarget, ...) ausgeführt, die das MCP-SDK beim Laden benötigt.build.tsinjiziert einen Banner, der sie aus dem Node-Hauptkontext nachzieht (Core-Modul-Funktionen werden geteilt, daher läuft ihrFunction-Konstruktor dort). Siehebuild.tsfür Details.bigint-Werte. Der Host gibt für einige Werte, die das SDK als
numbertypisiert,bigintzurück (Clip-Farben, Noten-Pitches, ...).src/serialize.tsnormalisiert das mitnum(), bevor Arithmetik bzw. JSON verarbeitet wird.Asynchrone Schreibvorgänge. Die Property-Setter des SDK (Noten, Namen, Werte) kehren zurück, bevor Live die Änderung übernommen hat; ein Lesevorgang innerhalb weniger zehn Millisekunden kann den vorherigen Zustand zurückgeben. Agenten merken das selten, aber Read-after-Write-Tests müssen es kurz erneut versuchen (siehe
eventually()intest/live-smoke.mjs).
Außerdem: Wenn der Dev-Extension-Host abstürzt, verweigert Live möglicherweise den nächsten
Control-Channel-Handshake („bring-up timed out“) — starte Live neu und führe npm start
erneut aus.
Fehlerbehebung
Endpunkt antwortet nicht: prüfe
curl http://127.0.0.1:8722/health. Rechtsklick auf eine beliebige Spur in Live — die Kontextmenü-Aktion „Ableton Live MCP: Status“ zeigt den Endpunkt, an den die Erweiterung tatsächlich gebunden ist.Port bereits belegt: Wenn ein anderer Prozess den konfigurierten Port belegt, protokolliert der Server den Fehler in der
ExtensionHost.txtund startet nicht. Ändereportin derconfig.jsonder Erweiterung (Pfad wird durchsong_getunterenvironment.storage_directoryangezeigt) — die Datei wird nur einmal beim Start gelesen, starte Live also danach neu.config.json geändert, aber nichts passiert: Die Konfiguration wird nur gelesen, wenn die Extension startet. Starte Live (oder den Dev-Extension-Host) erneut.
Lizenz
MIT für den Code in diesem Repository. Die Tarballs in vendor/ (Ableton Extensions SDK &
CLI) sind Eigentum von Ableton und fallen unter eine eigenen Lizenz (siehe sdk/LICENSE.md
in der SDK-Distribution).
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server for audio stem separation, denoise, and reverb.
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
Related MCP Servers
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.48-
- AlicenseNot gradedqualityBmaintenanceAn MCP server that exposes Ableton Live control (session state, transport, tracks, devices, clips, MIDI note editing) as tools for LLM agents, enabling natural language manipulation of a Live session.1MIT
- AlicenseBqualityBmaintenanceLocal MCP server for inspecting and controlling Ableton Live through a local HTTP bridge. Enables LLMs to perform production workflows like MIDI import, track editing, mixing, mastering, and export.5910 npmMIT
- FlicenseBqualityCmaintenanceMCP server for Ableton Live 12 enabling full DAW control (tracks, devices, mixer, clips, transport) and audio analysis via loopback capture, allowing LLMs to create, modify, and measure music in real time.621-