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, using OSC (Open Sound Control) for message exchange. It is built on the AbletonOSC framework and maps OSC addresses to tools accessible to MCP clients.
Components
mcp_ableton_server.py
: Handles communication between clients and the OSC daemon.osc_daemon.py
: Relays commands to Ableton Live and processes responses.
Features
- MCP-compatible API for controlling Ableton Live.
- Uses python-osc for OSC messages.
- Based on the AbletonOSC implementation.
- Implements request-response handling for Ableton Live commands.
Installation
Requirements
- Python 3.8+
python-osc
(for OSC communication)fastmcp
(for MCP support)uv
(Python package installer)- AbletonOSC
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 its dependencies:
uv sync
-
Follow the instructions to install AbletonOSC at AbletonOSC.
Usage
Running the OSC Daemon
Run the OSC daemon to handle communication:
uv run osc_daemon.py
- Listens for MCP client connections on port 65432.
- Forwards messages to Ableton Live on port 11000.
- Receives OSC responses on port 11001.
Example Usage
In Claude desktop, you can command:
- Prepare a set to record a rock band
- Set the input routing channel of all tracks that have "voice" in their name to Ext. In 2
Configuration
Default configurations:
- 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
To configure it in Claude Desktop, modify claude_desktop_config.json
located at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
Add to your mcpServers
section:
{
"mcpServers": {
"Ableton Live Controller": {
"command": "/path/to/your/project/.venv/bin/python",
"args": ["/path/to/your/project/mcp_ableton_server.py"]
}
}
}
Contributing
Submit issues, feature requests, or pull requests for improvements.
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 inspirations and resources.
TODO
- Explore resources and prompts primitives opportunities.
- Build a standalone Ableton Live MCP client.