ablx.directory

LiveWire

v1.0.0tooling

MCP bridge for Ableton Live. Lets Claude (or any MCP-compatible AI client) control Ableton directly — read/write session state, create tracks, load instruments, write MIDI notes, tweak device parameters, and more.

Phil SchalmNo ratings yet
README · rendered from GitHubView source

LiveWire

MCP bridge for Ableton Live. Lets Claude (or any MCP-compatible AI client) control Ableton directly — read/write session state, create tracks, load instruments, write MIDI notes, tweak device parameters, and more.

Requires Ableton Live builds with Extensions support (currently Live 12.4 Alpha/Beta) and Max for Live (Suite edition, or the Max for Live add-on). Expect rough edges while Live's Extension platform is in beta — bug reports welcome via GitHub Issues.


Prerequisites

  • Ableton Live with Extensions support, including Max for Live
  • The Ableton Extensions SDK (v1.0.0) — distributed by Ableton; see Building from source
  • An MCP-compatible AI client — Claude Desktop, Cursor, Windsurf, VS Code, etc.
  • Node.js 22+nodejs.org
  • pnpmbrew install pnpm (or npm install -g pnpm)

Installation

Building from source

The Ableton Extensions SDK is licensed by Ableton and cannot be redistributed with LiveWire, so it isn't in this repository. Before installing:

  1. Download the Extensions SDK distribution from Ableton.
  2. Unpack it into the repo root as extensions-sdk/, so the layout looks like:
    live-wire/
    ├── extensions-sdk/
    │   ├── extensions-sdk/      ← the SDK package itself
    │   ├── extensions-cli/
    │   ├── examples/
    │   └── LICENSE.md
    ├── extension/
    └── install.sh
    
  3. Run the installer:
    ./install.sh
    

The script will:

  1. Build the TypeScript extension
  2. Install the LiveWire extension into Ableton's User Library (loads automatically on launch)
  3. Install the LiveWire Proxy M4L device into your User Library
  4. Update your Claude Desktop MCP config

Setup (one-time, after install)

  1. Restart Ableton Live — the LiveWire extension loads automatically
  2. Drop the M4L device onto any MIDI track: User Library → Presets → MIDI Effects → Max MIDI Effect → LiveWire Proxy
  3. Restart Claude Desktop — it only reads its MCP config on launch, so the livewire server that install.sh added won't appear until you do (same goes for any other MCP client whose config you've edited)

That's it. LiveWire runs inside Live — there's no separate process to start or keep running.


Verify It's Working

In your AI client, try:

"What's the current tempo in my Ableton session?"

It should respond with your session's actual tempo. If it can't connect, see Troubleshooting below.


Connecting Other MCP Clients

LiveWire exposes an MCP server at http://localhost:3782/mcp. install.sh configures Claude Desktop automatically — for other clients, add the server manually using the configs below.

Claude Desktop

install.sh handles this automatically. The config it writes:

{
  "mcpServers": {
    "livewire": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3782/mcp"]
    }
  }
}

Config file: ~/Library/Application Support/Claude/claude_desktop_config.json

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):

{
  "mcpServers": {
    "livewire": {
      "url": "http://localhost:3782/mcp"
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "livewire": {
      "serverUrl": "http://localhost:3782/mcp"
    }
  }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json in your project, or open the Command Palette and run MCP: Add Server:

{
  "mcpServers": {
    "livewire": {
      "type": "http",
      "url": "http://localhost:3782/mcp"
    }
  }
}

Other clients

Any MCP client that supports HTTP or SSE transport can connect directly to http://localhost:3782/mcp. For stdio-only clients, use the mcp-remote bridge (as shown in the Claude Desktop config above).


What Claude Can Do

CapabilityExample
Read session statetempo, tracks, scenes, playback status
Control playbackstart/stop, fire scenes
Create tracksMIDI and audio tracks
Load instrumentsDrift, Wavetable, Operator, Simpler, etc.
Write MIDIcreate clips, set notes with pitch/velocity/timing
Tweak devicesget/set any device parameter by name
Navigate the LOMaccess any object in the Live Object Model

Architecture

AI Client ←→ LiveWire Extension (in Live's Extension Host)
                    ↕ WebSocket :9878
           LiveWire Proxy (.amxd on a MIDI track)
                    ↕ LiveAPI
                Ableton Live LOM

The extension hosts an MCP server at http://localhost:3782/mcp. Any MCP-compatible client can connect to it.


Optional: Audio Analysis

The LiveWire Audio Analyzer M4L device sends real-time audio data (RMS levels, spectrum bands, transient detection) to Claude:

User Library → Presets → Audio Effects → Max Audio Effect → LiveWire Audio Analyzer

Drop it on any audio track. Claude can then query m4l_get_analysis for live audio data.

Note: The Audio Analyzer device is currently a stub — the OSC send logic requires additional work in Max. The extension side is fully implemented.


Troubleshooting

Claude can't connect / "no MCP server found"

  • Make sure Claude Desktop was restarted after install
  • Check that ~/Library/Application Support/Claude/claude_desktop_config.json contains a livewire entry under mcpServers

"LiveWire Proxy not connected" or timeout errors

  • Make sure the LiveWire Proxy device is on a MIDI track and the track is active
  • Check the Max Console (open the device → Window → Max Console) for error messages
  • Try removing and re-adding the device

Extension not loading

  • Check Settings → Extensions: Developer Mode must be OFF — Live does not start its own Extension Host while Developer Mode is on (that mode is for running ./dev-launch.sh yourself). Toggling it takes effect immediately.
  • Check the Extension Host log: tail -50 ~/Library/Preferences/Ableton/Live\ 12*/ExtensionHost.txt — a single incompatible extension throwing on startup kills the host and takes all other extensions (including LiveWire) down with it; remove or update the offender.
  • Check Ableton's main log: tail -50 ~/Library/Preferences/Ableton/Live\ 12*/Log.txt

Installed into the wrong User Library / attached to the wrong Live install

# install.sh and dev-launch.sh both honour these:
ABLETON_USER_LIBRARY="$HOME/Music/Ableton/User Library" ./install.sh
ABLETON_APP='/Applications/Ableton Live 12.4 Alpha.app' ./dev-launch.sh

Development

All build commands require the Ableton Extensions SDK at the repo root — see Building from source. Run ./install.sh once first; it verifies the SDK and installs dependencies.

# Watch mode (auto-rebuilds TypeScript on save)
cd extension && pnpm run dev

# Typecheck
cd extension && pnpm run typecheck

# Start Extension Host manually (for Developer Mode in Live)
./dev-launch.sh        # discovers your Live install + User Library; prints its PID
# Multiple Live installs? export ABLETON_APP / ABLETON_USER_LIBRARY to skip the prompts

# Reload all extensions without restarting Live
kill -HUP <pid>

# Run the M4L Proxy test suite
cd "m4l-devices/LiveWire Proxy" && ./test/run-all.sh

Live logs: ~/Library/Preferences/Ableton/Live\ 12.4*/Log.txt


Reporting Issues

Please open a GitHub Issue with:

  • What you asked Claude to do
  • The error or unexpected behavior
  • Recent lines from the Ableton log file

License

LiveWire is licensed under the GPL-3.0.

The Ableton Extensions SDK is not part of LiveWire — it is licensed separately by Ableton AG and must be obtained from Ableton (see Building from source).

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.