LiveWire
v1.0.0toolingMCP 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.
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
- pnpm —
brew install pnpm(ornpm 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:
- Download the Extensions SDK distribution from Ableton.
- 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 - Run the installer:
./install.sh
The script will:
- Build the TypeScript extension
- Install the LiveWire extension into Ableton's User Library (loads automatically on launch)
- Install the LiveWire Proxy M4L device into your User Library
- Update your Claude Desktop MCP config
Setup (one-time, after install)
- Restart Ableton Live — the LiveWire extension loads automatically
- Drop the M4L device onto any MIDI track: User Library → Presets → MIDI Effects → Max MIDI Effect → LiveWire Proxy
- Restart Claude Desktop — it only reads its MCP config on launch, so the
livewireserver thatinstall.shadded 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
| Capability | Example |
|---|---|
| Read session state | tempo, tracks, scenes, playback status |
| Control playback | start/stop, fire scenes |
| Create tracks | MIDI and audio tracks |
| Load instruments | Drift, Wavetable, Operator, Simpler, etc. |
| Write MIDI | create clips, set notes with pitch/velocity/timing |
| Tweak devices | get/set any device parameter by name |
| Navigate the LOM | access 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.jsoncontains alivewireentry undermcpServers
"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.shyourself). 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.
Comments
No comments yet.