AbletonMCP - Advanced Ableton Live Model Context Protocol Integration
AbletonMCP connects Ableton Live to Claude AI through the Model Context Protocol (MCP), enabling comprehensive AI-assisted music production, track creation, and Live session manipulation with 37 powerful tools.
🎵 Features
Session Management
- Session Information: Get detailed session data including tempo, time signature, track counts
- Playback Control: Start/stop playback with precision
- Tempo Control: Adjust session tempo in real-time
Track Management
- Track Creation: Create MIDI and audio tracks
- Track Operations: Delete, duplicate, and rename tracks
- Track Control: Arm/disarm for recording, mute/solo functionality
- Track Information: Get detailed track information and status
Mixing & Audio Controls
- Volume Control: Adjust individual track volumes
- Panning Control: Set track panning positions
- Send Levels: Control send effects and returns
- Audio Routing: Manage track routing and sends
Clip Management
- Clip Creation: Create MIDI clips with custom lengths
- Note Programming: Add MIDI notes with pitch, timing, velocity, and mute control
- Clip Operations: Copy, delete, and manipulate clips
Scene Management
- Scene Control: Fire scenes for live performance
- Scene Creation: Create and delete scenes
- Scene Organization: Manage scene structure
Recording
- Recording Control: Start and stop recording
- Track Arm: Arm tracks for recording
- Recording Management: Handle recording states
Device Management
- Device Loading: Add instruments and effects
- Parameter Control: Adjust device parameters
- Device Management: Remove devices, activate/deactivate
- Parameter Discovery: Get device parameter information
🏗️ Architecture
The system consists of two main components:
1. Ableton Remote Script (AbletonMCP_Remote_Script/__init__.py)
A MIDI Remote Script that runs inside Ableton Live, creating a socket server to receive and execute commands from the MCP server.
Key Features:
- Socket-based communication (localhost:9877)
- Thread-safe command processing
- Comprehensive error handling
- Real-time Ableton Live API integration
2. MCP Server (MCP_Server/server.py)
A Python server implementing the Model Context Protocol, connecting to the Ableton Remote Script and exposing 37 tools to Claude AI.
Key Features:
- FastMCP implementation
- Comprehensive tool set
- Robust error handling
- Real-time communication
📋 Prerequisites
- Ableton Live 10 or newer (tested with Live 12.3b9)
- Python 3.8 or newer
- Claude Desktop with MCP support
- Windows/macOS/Linux support
🚀 Installation
Step 1: Clone the Repository
git clone https://github.com/Milesy1/MCP-Ableton-API.git
cd MCP-Ableton-API
Step 2: Install Dependencies
# Install using pip
pip install -e .
# Or install dependencies directly
pip install mcp[cli]>=1.3.0
Step 3: Install the Ableton Remote Script
Windows:
-
Navigate to one of these locations:
C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote ScriptsC:\ProgramData\Ableton\Live XX\Resources\MIDI Remote Scripts\C:\Program Files\Ableton\Live XX\Resources\MIDI Remote Scripts\
-
Create a folder called
AbletonMCP -
Copy
AbletonMCP_Remote_Script/__init__.pyinto theAbletonMCPfolder
macOS:
-
Navigate to one of these locations:
Applications > Right-click Ableton Live > Show Package Contents > Contents/App-Resources/MIDI Remote Scripts//Users/[Username]/Library/Preferences/Ableton/Live XX/User Remote Scripts
-
Create a folder called
AbletonMCP -
Copy
AbletonMCP_Remote_Script/__init__.pyinto theAbletonMCPfolder
Step 4: Configure Ableton Live
- Launch Ableton Live
- Go to Settings/Preferences → Link, Tempo & MIDI
- In the Control Surface dropdown, select "AbletonMCP"
- Set Input and Output to "None"
Step 5: Configure Claude Desktop
- Open Claude Desktop
- Go to Settings → Developer → Edit Config
- Edit
claude_desktop_config.json:
{
"mcpServers": {
"AbletonMCP": {
"command": "python",
"args": ["C:\\path\\to\\your\\MCP-Ableton-API\\MCP_Server\\server.py"]
}
}
}
Note: Replace the path with your actual installation path.
🎛️ Available Tools
Session Tools
get_session_info- Get detailed session informationset_tempo- Change session tempostart_playback- Start playbackstop_playback- Stop playback
Track Tools
create_midi_track- Create MIDI trackscreate_audio_track- Create audio tracksdelete_track- Delete tracksduplicate_track- Duplicate tracksset_track_name- Rename tracksget_track_info- Get track detailsset_track_arm- Arm/disarm tracksset_track_mute- Mute/unmute tracksset_track_solo- Solo/unsolo tracks
Mixing Tools
set_track_volume- Adjust track volumesset_track_panning- Control track panningset_track_send- Adjust send levels
Clip Tools
create_clip- Create MIDI clipsadd_notes_to_clip- Add MIDI notescopy_clip- Copy clipsdelete_clip- Delete clips
Scene Tools
fire_scene- Trigger scenescreate_scene- Create scenesdelete_scene- Delete scenes
Recording Tools
start_recording- Start recordingstop_recording- Stop recording
Device Tools
add_device- Add instruments/effectsremove_device- Remove devicesset_device_parameter- Adjust device parametersset_device_active- Enable/disable devicesget_device_parameters- Get device parameter info
🎵 Usage Examples
Basic Track Creation
"Create a new MIDI track with a synth bass instrument"
"Add an audio track for vocals"
"Set track 1 to arm for recording"
Mixing and Effects
"Set the volume of track 2 to 80%"
"Pan track 3 to the left (-0.5)"
"Add reverb to track 1 with 30% wet signal"
"Set the master volume to 85%"
MIDI Programming
"Create a 4-bar MIDI clip in track 1"
"Add a C major chord progression to the clip"
"Create a drum pattern with kick on 1 and 3, snare on 2 and 4"
Scene Management
"Create a new scene called 'Verse'"
"Fire scene 2"
"Delete the last scene"
Advanced Composition
"Create a Metro Boomin style hip-hop beat with 808s and hi-hats"
"Build an 80s synthwave track with arpeggiated bass"
"Create a jazz chord progression in track 1"
🔧 Troubleshooting
Connection Issues
- Ensure Ableton Live is running with the AbletonMCP control surface selected
- Check that the MCP server path in Claude Desktop config is correct
- Verify Python dependencies are installed
Tool Not Available
- Restart Claude Desktop after configuration changes
- Clear Claude Desktop cache if tools don't appear
- Check MCP server logs for errors
Timeout Errors
- Break complex requests into smaller steps
- Ensure Ableton Live is responsive
- Check socket connection (localhost:9877)
Performance Issues
- Close unnecessary Ableton Live tracks
- Avoid simultaneous complex operations
- Monitor system resources
🏗️ Development
Project Structure
MCP-Ableton-API/
├── AbletonMCP_Remote_Script/ # Ableton Live Remote Script
│ └── __init__.py
├── MCP_Server/ # MCP Server Implementation
│ └── server.py
├── pyproject.toml # Project Configuration
├── README.md # This File
├── LICENSE # MIT License
├── Dockerfile # Container Configuration
└── smithery.yaml # Smithery Configuration
Adding New Tools
- Add command handler in
AbletonMCP_Remote_Script/__init__.py - Add tool endpoint in
MCP_Server/server.py - Update command routing in the Remote Script
- Test and document the new functionality
Testing
# Test MCP server
python -m MCP_Server.server
# Test socket communication
python create_midi.py
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Code Style
- Follow PEP 8 for Python code
- Add comprehensive docstrings
- Include error handling
- Update documentation
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Ableton for the amazing Live software and API
- Anthropic for Claude AI and MCP protocol
- MCP Community for the Model Context Protocol
- Contributors who help improve this project
🔗 Links
📞 Support
If you encounter any issues or have questions:
- Check the troubleshooting section
- Search existing GitHub Issues
- Create a new issue with detailed information
- Join the discussion in the community
Made with ❤️ for the music production community
Transform your Ableton Live workflow with AI-powered assistance!
