AbletonMCP Companion
v0.1.0Ableton Live Extensions SDK add-on for the ableton-live-mcp server: share the selection, confirm in Live, render audio.
Unverified listing. This repo is new or has little community activity and the developer has not claimed it. Extensions run code inside Live — read the source, check the author, and only install things you trust.
AbletonMCP Companion (Extensions SDK add-on)
An optional add-on for Live 12.4.5+ Suite (Ableton's Extensions SDK,
public beta) that gives the ableton-live-mcp server three things its Remote
Script cannot reach:
| In Live | For the MCP server |
|---|---|
| Share selection / clips / clip / track with AbletonMCP in the right-click menus of the Arrangement time selection, clip slots, clips and tracks | get_live_selection: which part of the song the user means (the Live Object Model has no time selection) |
| A dialog with your question and OK/Cancel | confirm_in_live: a yes/no from the musician, in Live |
| Rendering an audio track's clips to a file before its devices | render_track_audio: audio without playing the set in real time |
Status: not yet run inside Live. The Trial this was written on cannot load
extensions (they need Suite and the beta). It type-checks against the SDK's
own declarations (@ableton-extensions/sdk 1.0.0-beta), and its tests run the
built bundle in a vm context set up like the Extension Host's. Please report
what happens in Live.
Build and install
- Join Ableton's beta program and download the Extensions SDK (Centercode).
- In this folder:
npm ci npm install --no-save <path>/ableton-extensions-sdk-1.0.0-beta.N.tgz npm run build # → dist/extension.js - In Live: Settings › Extensions, add this folder (the one with
manifest.json), and enable it. - Ask the assistant to run
doctor: thecompanionline should say it answers.
How it talks to the server
It listens on 127.0.0.1:9878 (ABLETON_MCP_COMPANION_PORT changes it) with
the Remote Script's framing: one JSON object per line each way, replies echo
the request's id, and the first request is hello with a per-launch token.
The token and port go to ~/.ableton-mcp/companion-session.json (mode 600);
where Live only lets extensions write in their storage folder, the file goes
there and the server searches Ableton's folders for it. If the server still
cannot find it, set ABLETON_MCP_COMPANION_TOKEN (the token is in Live's log,
[AbletonMCP Companion] session file: …).
Commands: hello, song, get_selection, confirm, render_audio.
The Extension Host, as other projects found it in Live
These shaped the code (see build-options.mjs and the tests); they come from
projects that ran extensions in Live 12.4.5–12.4.15 betas, not from this one:
- The bundle runs in a
vmcontext:globalThisbut noglobal, few web globals (noURL,TextEncoder,crypto),requirefornode:modules. So the build is one CommonJS file withglobaldefined asglobalThis. - Integer getters (colors, pitches, positions) arrive as
biginteven where the types saynumber: values are converted withNumber(). - Errors from
node:modules come from another realm (instanceof Erroris false); messages are read by shape. - File access may be limited to the extension's storage and temp folders.
Development
npm run typecheck # against types/ableton-sdk.d.ts (no SDK needed)
npm run typecheck:sdk # against the installed SDK
npm test # unit tests + the bundle in a simulated host
npm run build:check # bundles with the SDK left out
Rate this extension
One rating per account; you can change it any time.
Comments
No comments yet.