ableton-live-mcp-server
by: Simon-Kansara
MCP Server implementation for Ableton Live OSC control
📌Overview
Purpose: The Ableton Live MCP Server enables seamless communication between large language models (LLMs) and Ableton Live using the Model Context Protocol (MCP).
Overview: This server implements the MCP to facilitate interaction with Ableton Live through OSC (Open Sound Control). Utilizing the AbletonOSC framework, it offers extensive OSC address mapping to control various tools within MCP clients effectively.
Key Features:
-
MCP-Compatible API: Provides a robust API for commanding Ableton Live directly from MCP clients, enhancing workflow efficiency.
-
OSC Message Handling: Utilizes the
python-osc
library for reliable OSC message transmission and reception, ensuring smooth communication with Ableton Live. -
Request-Response Implementation: Supports handling requests and responses for commands directed at Ableton Live, simplifying user interaction through clear feedback.
Ableton Live MCP Server
Overview
The Ableton Live MCP Server implements 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 maps available OSC addresses to MCP-accessible tools.
This project consists of two main components:
mcp_ableton_server.py
: The MCP server handling 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.
- Uses python-osc for OSC messaging.
- Implements request-response handling for Ableton Live commands.
Installation
Requirements
- Python 3.8+
python-osc
fastmcp
uv
(recommended Python package installer)- AbletonOSC as a control surface
Installation Steps
-
Install
uv
:curl -LsSf https://astral.sh/uv/install.sh | sh
-
Clone the repository:
git clone https://github.com/your-username/mcp_ableton_server.git cd mcp_ableton_server
-
Install the project and dependencies:
uv sync
-
Install AbletonOSC following its instructions.
Usage
Running the OSC Daemon
Start the OSC daemon, which handles communication between the MCP server and Ableton Live:
uv run 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 on port 11001
Example Commands
Ask an LLM like Claude:
- Prepare a set to record a rock band.
- Set the input routing channel of all tracks named "voice" to Ext. In 2.
Configuration
Default server and daemon settings (localhost):
- MCP Server Socket: 65432
- Ableton Live OSC Port (Send): 11000
- Ableton Live OSC Port (Receive): 11001
To modify, edit the AbletonOSCDaemon
class in osc_daemon.py
:
self.socket_host = '127.0.0.1'
self.socket_port = 65432
self.ableton_host = '127.0.0.1'
self.ableton_port = 11000
self.receive_port = 11001
Claude Desktop Configuration
Configure Claude Desktop to use this server by adding to the mcpServers
section in its config file:
{
"mcpServers": {
"Ableton Live Controller": {
"command": "/path/to/your/project/.venv/bin/python",
"args": ["/path/to/your/project/mcp_ableton_server.py"]
}
}
}
Contributing
Contributions are welcome via issues, feature requests, and pull requests.
License
This project is licensed under the MIT License.
Acknowledgments
- Model Context Protocol (MCP)
- python-osc
- Daniel John Jones for AbletonOSC implementation
- Ableton Third Party Remote Scripts
- Julien Bayle (Structure Void) for inspiration
TODO
- Explore resources and prompts primitives.
- Develop a standalone Ableton Live MCP client.