PR

Producer Pal MCP Server for Ableton Live

Control Ableton Live with the MCP server embedded in a Max for Live device - install via drag-and-drop for instant Producer Pal integration.

Overview

Producer Pal is an MCP (Model Context Protocol) server embedded inside a Max for Live device that exposes a controllable interface to Ableton Live. Drop the device into a Live set and it starts a local MCP endpoint that LLM agents and other tools can use to read Live’s state and perform actions (e.g., trigger clips, adjust device parameters, read arrangement/clip data). The device is distributed on GitHub and installs by simple drag-and-drop into Ableton Live for instant integration.

This arrangement is useful for developers building AI-driven workflows around Live: instead of reverse-engineering MIDI or OSC flows, you can call well-defined MCP tools to inspect tracks, clips, and devices or to issue musical actions. Because the server runs inside a Max for Live device it has direct access to Ableton’s Live Object Model (LOM), making many Live-specific operations available with low latency and minimal setup.

Features

  • Embedded MCP server inside a Max for Live device for one-click integration
  • Read and write access to Live set state: tracks, clips, devices, parameters
  • Tools for clip control: launch, stop, create, MIDI editing
  • Device and parameter automation: query and set parameter values
  • Track-level actions: arm, solo, mute, volume/pan control
  • Configurable host/port and scoped localhost access for safe testing
  • Simple JSON-based MCP messages suitable for LLM tool integration
  • Works with Python/JavaScript clients and LLM agents that support MCP

Installation / Configuration

  1. Clone or download the repository:
git clone https://github.com/adamjmurray/producer-pal.git
cd producer-pal
  1. Open Ableton Live and enable Max for Live support (Live Suite or Max for Live installed).

  2. Install the Max for Live device:

  • In Finder/Explorer, locate the .amxd device bundle in the repository (typically inside a /devices or /max folder).
  • Drag-and-drop the .amxd file into an open Live set (onto a track or into the Device View). Ableton will install and instantiate the device.
  1. Configure the MCP server from the device UI:
  • After instantiating, the device UI shows a host and port (defaults to localhost). You can change the port if needed.
  • Leave host as 127.0.0.1/localhost to prevent external network exposure during development.
  1. Verify the server is running:
  • The device typically shows a “Running” or “Server started” indicator in its UI.
  • The MCP endpoint and protocol version are displayed in the device.

Example: connect with curl (HTTP POST pattern, replace host/port as shown in the device UI):

curl -X POST http://127.0.0.1:14000/mcp \
  -H "Content-Type: application/json" \
  -d '{"tool":"list_tracks","input":{}}'

Example: JavaScript WebSocket client (replace host/port from UI):

const ws = new WebSocket("ws://127.0.0.1:14000/mcp");
ws.onopen = () => {
  ws.send(JSON.stringify({ type: "tool_call", tool: "list_tracks", input: {} }));
};
ws.onmessage = (ev) => console.log("response", JSON.parse(ev.data));

Available Tools / Resources

Producer Pal exposes a collection of MCP “tools” that map to common Live operations. The exact set is shown in the device UI and the GitHub README; below are representative examples.

Tool namePurposeTypical input
list_tracksReturn a list of tracks and basic metadata{}
get_trackGet detailed track info (devices, clips, volume){“track_id”: 1}
set_track_volumeSet a track’s volume (in dB or normalized){“track_id”:1,“value”:-6.0}
list_clipsList clips in a track or scene{“track_id”:1}
launch_clipLaunch a clip by id{“clip_id”:“abc123”}
stop_clipStop a clip or slot{“track_id”:1,“slot_index”:0}
set_device_parameterSet a device parameter by path/index{“track_id”:1,“device_id”:2,“param”:3,“value”:0.5}
create_midi_clipCreate a MIDI clip with simple notes{“track_id”:1,“start”:0,“length”:4,“notes”:[…]}

For full details and the canonical tool list, see the repository: https://github.com/adamjmurray/producer-pal

Additional resources:

  • Max for Live documentation (Cycling ’74)
  • Ableton Live Object Model (LOM) reference
  • MCP protocol specification (for client/tool integration)

Use Cases

  • AI-assisted arrangement: An LLM agent can query scene and clip metadata via MCP, propose arrangement changes, and then call tools to move clips between tracks or launch scenes to audition variations.
  • Generative clip creation: A generation model produces MIDI patterns and sends them to Producer Pal’s create_midi_clip tool to populate clips on a track.
  • Live performance augmentation: A real-time assistant listens to project state and triggers clips or changes device parameters based on high-level prompts or live input.
  • Automated mixing tasks: Scripts can read track levels and apply volume/eq adjustments programmatically, or run batch parameter tweaks across multiple tracks.
  • Batch transformations and remixes: External tools can iterate over a project’s clips and apply transformations (transpose, duplicate, quantize) via MCP calls without manual UI work.

Security and Best Practices

  • Keep the MCP host bound to localhost during development. Avoid binding to 0.0.0.0 unless you explicitly need remote access and have secure network controls.
  • Test actions on a disposable Live set before applying to important projects.
  • Use deterministic tool calls (e.g., explicit track/clip IDs) for automation to avoid unintended changes during live performance.

Troubleshooting

Tags:ai-ml