MCP HubMCP Hub
Simon-Kansara

ableton-live-mcp-server

by: Simon-Kansara

MCP Server implementation for Ableton Live OSC control

208created 24/02/2025
Visit
OSC
Ableton

📌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

  1. Install uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clone the repository:

    git clone https://github.com/your-username/mcp_ableton_server.git
    cd mcp_ableton_server
    
  3. Install the project and dependencies:

    uv sync
    
  4. 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

TODO

  • Explore resources and prompts primitives.
  • Develop a standalone Ableton Live MCP client.