CA

cavi-ai/ableton-mcp

Developer tools
3 stars 0 forks Качество 69 Тренд 30MIT

🎛️ Local-first Ableton Live control for MCP clients: Remote Script bridge, stdio MCP server, and CLI with guarded, confirm-to-execute mutations.

Обзор

Local-first Ableton Live control for MCP clients. It has three parts: a Remote Script bridge that runs inside Live, a stdio MCP server, and an ableton-mcp CLI. Every change to the Live Set is planned first and runs only with a single-use confirmation. Requirements: macOS, Ableton Live 12 (tested with 12.4.5), Node.js 22.13 or newer, and ffmpeg for the audio analysis tools. In Live's preferences, select as a Control Surface. Then check the connection: Register the stdio server with your MCP client, using the absolute path of your checkout: To try client wiring without Live, run ABLETON_MCP_FIXTURE=1 npm start. For a smaller initial tool catalog, set ABLETON_MCP_TOOL_PROFILE=core in the MCP server's environment. It advertises 63 common tools instead of the full catalog. Use the default all profile when an agent needs the complete MIDI, audio, rack, or snapshot toolset; restart the server after changing profiles.

README

ableton-mcp

Local-first Ableton Live control for MCP clients. It has three parts: a Remote Script bridge that runs inside Live, a stdio MCP server, and an ableton-mcp CLI. Every change to the Live Set is planned first and runs only with a single-use confirmation.

Install

Requirements: macOS, Ableton Live 12 (tested with 12.4.5), Node.js 22.13 or newer, and ffmpeg for the audio analysis tools.

git clone https://github.com/cavi-ai/ableton-mcp.git
cd ableton-mcp
npm ci
npm run cli -- install

In Live’s preferences, select CaviMcpBridge as a Control Surface. Then check the connection:

npm run cli -- doctor --json

Quickstart

Register the stdio server with your MCP client, using the absolute path of your checkout:

{
  "mcpServers": {
    "ableton": {
      "command": "node",
      "args": ["/path/to/ableton-mcp/apps/ableton-mcp/src/cli.mjs", "serve"]
    }
  }
}

Or call tools from the shell:

npm run cli -- status --json
npm run cli -- call list_devices --args '{"trackId":"track-0"}' --json

To try client wiring without Live, run ABLETON_MCP_FIXTURE=1 npm start.

For a smaller initial tool catalog, set ABLETON_MCP_TOOL_PROFILE=core in the MCP server’s environment. It advertises 63 common tools instead of the full catalog. Use the default all profile when an agent needs the complete MIDI, audio, rack, or snapshot toolset; restart the server after changing profiles. The CLI’s direct call command remains independent of the discovery profile.

What it does

  • Reads: transport, tempo, key and scale, quantization, grooves, cue points, tracks, scenes, clips, notes, clip envelopes, devices and parameters, mixer and routing, rack hierarchies, and the Live browser.
  • Guarded mutations: track, scene and clip lifecycle, device loading and parameters, MIDI note editing, mixing and routing, undo and redo, and panic.
  • Music helpers: scale-aware chords, basslines, melodies, voicings, arpeggios, strums, drum patterns, humanization and velocity curves.
  • Audio analysis: loudness, true peak, spectrum, pitch, transients and tuning of local audio files.
  • Optional NKS preset catalog: search, tags and favorites for presets discovered from your plug-in libraries.

It publishes 228 tools, 9 concrete resources, 13 resource templates and 8 prompt templates. When Live’s Remote Script API doesn’t expose something, such as Arrangement automation, Group Track creation, or freezing, the tool reports that boundary and fails closed.

Documentation

Configuration

Variable Default Purpose
ABLETON_MCP_BRIDGE_SOCKET /tmp/cavi-ableton-mcp.sock Bridge socket. Read by both the bridge inside Live and the server.
ABLETON_MCP_CATALOG_PATH unset NKS catalog database for preset search.
ABLETON_MCP_BROWSER_METADATA_PATH ~/.cavi/ableton-mcp/browser-metadata.sqlite Tags and favorites for Live browser items.
ABLETON_MCP_SPLICE_ROOTS Existing macOS ~/Splice/Sounds and ~/Library/Splice/Plug-in/samples directories; otherwise [] Override with a JSON array of absolute local Splice folders. Set [] to disable discovery. Local cache files are not proof of a download license; cloud search and sync are not supported.
ABLETON_MCP_CONFIRMATION_DIR ~/.cavi/ableton-mcp/confirmations Confirmation tokens for CLI call.
ABLETON_MCP_SNAPSHOT_DIR ~/.cavi/ableton-mcp/snapshots Saved track, device-chain, group-system, and MIDI-feel snapshots in separate subdirectories.
ABLETON_MCP_FIXTURE unset 1 makes npm start serve fixture data without Live.
ABLETON_MCP_TOOL_PROFILE all core advertises 63 common tools to reduce MCP discovery context; all advertises every tool.

Security

The bridge listens on a Unix domain socket and opens no TCP port. Live Set mutations require an observed state version, return a dry-run plan by default, and execute only with a 60-second, single-use token bound to the plan’s hash. See the security model and SECURITY.md.

Tests

npm test
npm run eval:core
npm run verify:package

npm test runs the pipeline and server suites, the bridge’s Python tests, and the docs tests. eval:core checks the compact MCP catalog and read-only tool behavior with MCP Eval. ImageMagick 7 (magick) and ffmpeg must be installed. verify:package packs the npm tarball, installs it into a temporary project, and drives the installed CLI and server.

Project status

See GitHub Releases and the changelog for released versions and changes. The tool surface can still change before 1.0.

Contributing

See CONTRIBUTING.md.

License

The code and the generic example artwork are MIT licensed. Third-party product names belong to their owners. No vendor artwork, logos or presets are included, and no endorsement is implied.

View this README on GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide

Конфигурация

{ "mcpServers": { "ableton": { "command": "node", "args": ["/path/to/ableton-mcp/apps/ableton-mcp/src/cli.mjs", "serve"] } } }