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, 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

  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 its dependencies:

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

TODO

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