ablx.directory

ableton-agent-kernel

v0.0.1

> Status: v0.1 prototype, work-in-progress, see Why this exists

Shuoyang Jasper Zhengmanifest author: Jasper Shuoyang ZhengNo ratings yet
README · rendered from GitHubView source

Status: v0.1 prototype, work-in-progress, see Why this exists

Ableton SDK - Model Context Protocol (MCP) Server

An Ableton SDK MCP server made via Ableton Extensions SDK + Agent Skills to allow AI coding agents operate Ableton Live, for long-running music production sessions.

Prompt: Transpose all tonal MIDI clips two semitones down

https://github.com/user-attachments/assets/4c91f96d-b491-41b7-8851-bf189f0739eb

Why this exists

Acknowledging several existing Ableton MCPs: ableton-mcp, extended, producer-pal.

This one is built purely with Ableton Extensions SDK with a different approach: allowing coding agents directly generate and run TypeScript inside Live, unlike previous Live MCPs that hard-codes tools (e.g., adding-clips, adding-notes). So ideally, Claude Code operates a Live session with codes, using all operations supported by the SDK. Honestly I don't know which approach works better so I built this to see how it works...

All together, this repository gives your AI coding agent the following resources:

  • An Ableton Extension with a Live UI for confirm/progress
  • An MCP server built with Ableton Extensions SDK
  • Knowledge skills about Ableton + music-making expertise (work-in-progress)

How it works

MCP tools

The MCP exposes seven tools to Claude (all prefixed ableton_):

ToolWhat it does
ableton_get_contextFull project snapshot — tracks, clips, devices, mixer, scenes, tempo, key
ableton_get_trackDetail for one track (devices, clip slots, mixer)
ableton_get_deviceAll parameters of a device by name + current values
ableton_get_clip_notesMIDI notes in a clip (pitch, startTime, duration, velocity)
ableton_get_selectionWhatever the user right-clicked → "Send to Agent" in Live
ableton_render_audioExport a track's audio (pre-FX) as a WAV for analysis
ableton_run_codeExecute JS/TS against the Extensions SDK inside Live

ableton_run_code is the action. The others are read-only perception tools.

run_code — how JS/TS executes inside Live

When your coding agent calls ableton_run_code, the MCP sends the code over WebSocket to the Ableton Extension. The extension:

  1. Transpiles TypeScript to ES module output (via Sucrase).
  2. Executes via new Function(…) in a thin sandbox — globals like fetch, require, process, eval are shadowed/removed.
  3. Returns { result, logs, error, phase }phase is "transpile" / "runtime" / "timeout" for debug.

Prerequisites

  • Ableton Live 12.4.5 public beta (tested against 12 Beta) with Developer Mode on (Live → Settings → Extensions) — required to dev-run the extension.
  • Node ≥ 24.
  • Claude Code, not Claude, as this MCP is targeted for coding agents.

Setup

npm run setup      # installs + builds the extension and the MCP bridge

Run

This repo is work-in-progress, so please build .ablx and load agent skills manually:

Have extension running inside Live:

A) Dev-run the extension (simplest during development):

cd kernel && npm start -- --live "/Applications/Ableton Live 12 Beta.app"

or

B) Or install it as an extension (no dev mode needed by the end user):

npm run package    # builds kernel/…ablx
# then drag the .ablx onto  Live → Settings → Extensions

Either way the extension listens on ws://127.0.0.1:17890.

Connect Claude Code

Open Claude Code in this directory — it loads the bundled .mcp.json (server abletonsdk). If the relative path doesn't resolve in your setup:

claude mcp add abletonsdk -- node "$PWD/abletonsdk-mcp-server/dist/index.js"

Approve the server, then the ableton_* tools + the skills are available.

Usage

With Live open and the extension running, ask Claude things like:

  • "Make an 8-bar house loop" → the ableton-playbooks skill builds drums + bass + chords + lead in key, with instruments and a rough mix (one Cmd-Z undoes it).
  • "Write a IV–V–vi progression in D minor on a new track"ableton-midi + music-strategies.
  • "Add a warm pad with Operator and a reverb send"ableton-sound-design + ableton-mixing.
  • Select clips/tracks in Live → right-click "Send to Agent", then ask Claude about "the selection".

Every edit triggers an in-Live confirmation dialog before it runs; long work shows a progress bar. The agent reports what changed and that Cmd-Z reverts it.

Limitations

  • built-in Live devices only (VST/AU or preset loading are not allowed by the SDK)
  • no automation / clip envelopes (not allowed by the SDK)
  • no transport/playback control (not allowed by the SDK)
  • clip length/loop fixed at creation (modifying them is not allowed by the SDK)
  • audio render is pre-FX/per-track (post-FX not allowed by the SDK)
  • all Drum Rack has no samples (the SDK can't load factory kits)
  • the agent's safety (e.g., undo, rewind, etc.) is limited (undo / version control not allowed by the SDK)
  • See .claude/skills/ableton-safety/ for the full list.

Credits & license

See PROVENANCE.md.

Rate this extension

One rating per account; you can change it any time.

No ratings yet — be the first

Comments

Sign in to join the discussion.Sign in

No comments yet.