Control Ableton Live using natural language via AI assistants
Ableton MCP Extended
Control Ableton Live using natural language via AI assistants like Claude or Cursor. This project provides a robust Model Context Protocol (MCP) server that translates natural language commands into precise actions within your Ableton Live session.
Video demonstration: https://www.youtube.com/watch?v=7ZKPIrJuuKk
This tool is designed for producers, developers, and AI enthusiasts who want to streamline their music production workflow, experiment with generative music, and build custom integrations with Ableton Live.
You can transform this conversation:
👤 "Create a brief minimalist/neo-classical composition in a style similar to Ólafur Arnalds'. (Ableton MCP) / I've loaded four MIDI tracks called "Noire" and "Noire (2) ["Emotional Felt" presets], "Noire (2) ["Reversed Felt" preset, for ambient background], and "Noire (3) ["Ethereal Felt" preset, also for ambient background]. All loaded with nice piano instruments. You have also a MIDI track called "Strings" with a nice string ensemble instrument loaded. Feel free to add new instruments and effects, if pertinent."
🤖 "Creating MIDI clips... Adding effects... Done!"
👤 "Then, use ElevenLabs MCP to create a spoken-word audio clip (default voice and settings) with a relevant poem in the style of “Jim Morrison” to accompany the composition."
🤖 "Generating poem... Transforming it into speech... Importing it into your session... Done!"
Into this music production session:
https://github.com/user-attachments/assets/d6ef2de5-bdeb-4097-acc0-67d70f7f85b3
Key Features
This project provides comprehensive, programmatic control over the Ableton Live environment.
Session and Transport Control:
- Start and stop playback.
- Get session info, including tempo, time signature, and track count.
- Manage scenes: create, delete, rename, and fire.
Track Management:
- Create, rename, and get detailed information for MIDI and audio tracks.
- Control track properties: volume, panning, mute, solo, and arm.
- Manage track grouping and folding states.
MIDI Clip and Note Manipulation:
- Create and name MIDI clips with specified lengths.
- Add, delete, transpose, and quantize notes within clips.
- Perform batch edits on multiple notes in a single operation.
- Adjust clip loop parameters and follow actions.
Device and Parameter Control:
- Load instruments and effects from Ableton's browser by URI.
- Get a full list of parameters for any device on a track.
- Set and batch-set device parameters using normalized values (0.0 to 1.0).
Automation and Envelopes:
- Add and clear automation points for any device parameter within a clip. [This feature isn't working perfectly yet.]
- Get information about existing clip envelopes.
Browser Integration:
- Navigate and list items from Ableton's browser.
- Load instruments, effects, and samples directly from a browser path or URI.
- Import audio files directly into audio tracks or clip slots.
Voice & Audio Generation
- Text-to-Speech Integration: Generate narration, vocal samples, or spoken elements through ElevenLabs MCP [included].
- Custom Voice Creation: Clone voices for unique character in your tracks
- Sound Effects: Create custom SFX with AI
- Direct Import: Generated audio appears instantly in your Ableton session
Extensible Framework for Custom Tools
- Example: XY Mouse Controller: Demonstrates creating custom Ableton controllers with the MCP framework
- Ultra-Low Latency: High-performance UDP protocol enables responsive real-time control
- Unlimited Possibilities: Build your own custom tools and controllers for Ableton Live
Quick Start (5 Minutes)
Prerequisites
- Ableton Live 11+ (any edition)
- Python 3.10 or higher
- Claude Desktop or Cursor IDE
1. **Get the Code**
git clone https://github.com/uisato/ableton-mcp-extended.git
cd ableton-mcp-extended
pip install -e .
2. **Install Ableton Script**
- Find your Ableton Remote Scripts folder:
- Windows:
C:\Users\[You]\Documents\Ableton\User Library\Remote Scripts\ - Mac:
~/Library/Preferences/Ableton/Live [Version]/User Remote Scripts/
- Windows:
- Create folder:
AbletonMCP - Copy
AbletonMCP_Remote_Script/__init__.pyinto this folder
3. **Configure Ableton**
- Open Ableton Live
- Go to Preferences → Link, Tempo & MIDI
- Set Control Surface to "AbletonMCP"
- Set Input/Output to "None"
4. **Connect AI Assistant**
For Claude Desktop:
{
"mcpServers": {
"AbletonMCP": {
"
Tools (4)
session_controlManage Ableton Live session playback, tempo, and scenes.track_managementCreate, rename, and control properties of MIDI and audio tracks.midi_manipulationCreate MIDI clips and perform note operations like transpose and quantize.device_controlLoad instruments/effects and adjust device parameters.Configuration
{"mcpServers": {"AbletonMCP": {"command": "python", "args": ["path/to/ableton-mcp-extended/main.py"]}}}