Ableton Live MCP Server
📌 Overview
The Ableton Live MCP Server is a server implementing the Model Context Protocol (MCP) to facilitate communication between LLMs and Ableton Live. It uses OSC (Open Sound Control) to send and receive messages to/from Ableton Live.It is based on AbletonOSC implementation and exhaustively maps available OSC adresses to tools accessible to MCP clients.
This project consists of two main components:
mcp_ableton_server.py: The MCP server handling the communication between clients and the OSC daemon.osc_daemon.py: The OSC daemon responsible for relaying commands to Ableton Live and processing responses.
✨ Features
- Provides an MCP-compatible API for controlling Ableton Live from MCP clients.
- Uses python-osc for sending and receiving OSC messages.
- Based on the OSC implementation from AbletonOSC.
- Implements request-response handling for Ableton Live commands.
⚡ Installation
Option 1: Install with UV (Recommended)
Install UV if you don't have it already:
pip install uvInstall directly from PyPI:
uv install ableton-live-mcp-serverOr install from GitHub:
uv install git+https://github.com/yourusername/ableton-live-mcp-server.git
Option 2: Manual Installation
- Install
uvpip install uv - Clone the repository:
git clone https://github.com/your-username/mcp_ableton_server.git cd mcp_ableton_server - Install dependencies:
uv install python-osc fastmcp - Install the MCP ServerThis assumes that you're using Claude Desktop
mcp install mcp_ableton_server.py - Install AbletonOSCFollow the instructions at AbletonOSC
🚀 Usage
Running the OSC Daemon
The OSC daemon will handle OSC communication between the MCP server and Ableton Live:
# If installed via UV:
ableton-osc-daemon
# Or if running from source:
python osc_daemon.py
This will:
- Listen for MCP client connections on port 65432.
- Forward messages to Ableton Live via OSC on port 11000.
- Receive OSC responses from Ableton on port 11001.
Running the MCP Server
Start the MCP server to enable LLMs to control Ableton:
# If installed via UV:
ableton-mcp-server
# Or if running from source:
python mcp_ableton_server.py
Example Usage
In Claude desktop, ask Claude:Prepare a set to record a rock bandSet the input routing channel of all tracks that have "voice" in their name to Ext. In 2
⚙️ Configuration
By default, the server and daemon run on localhost (127.0.0.1) with the following ports:
- MCP Server Socket: 65432
- Ableton Live OSC Port (Send): 11000
- Ableton Live OSC Port (Receive): 11001
To modify these, edit the AbletonOSCDaemon class in osc_daemon.py or use command-line parameters:
ableton-osc-daemon --socket-port 65432 --ableton-port 11000 --receive-port 11001
Claude Desktop Configurations
- macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
"mcpServers": {
"Ableton Live Controller": {
"command": "uv",
"args": [
"run",
"ableton-mcp-server"
]
}
}
Contributing
Feel free to submit issues, feature requests, or pull requests to improve this project.
Publishing Updates
To publish new versions using UV:
- Update the version in
pyproject.toml - Build the package:
uv build - Publish to PyPI:
uv publish
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments
- Model Context Protocol (MCP)
- python-osc for OSC handling
- Daniel John Jones for OSC implementation with AbletonOSC
- Ableton Third Party Remote Scripts
- Julien Bayle @Structure Void for endless inspirations and resources.
TODO
- Explore resources and prompts primitives opportunities.
- Build a standalone Ableton Live MCP client.
