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.
- 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 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
- 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 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 Control: Fire scenes for live performance
- Scene Creation: Create and delete scenes
- Scene Organization: Manage scene structure
- Recording Control: Start and stop recording
- Track Arm: Arm tracks for recording
- Recording Management: Handle recording states
- Device Loading: Add instruments and effects
- Parameter Control: Adjust device parameters
- Device Management: Remove devices, activate/deactivate
- Parameter Discovery: Get device parameter information
The system consists of two main components:
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
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
- Ableton Live 10 or newer (tested with Live 12.3b9)
- Python 3.8 or newer
- Claude Desktop with MCP support
- Windows/macOS/Linux support
git clone https://github.com/Milesy1/MCP-Ableton-API.git
cd MCP-Ableton-API# Install using pip
pip install -e .
# Or install dependencies directly
pip install mcp[cli]>=1.3.0-
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
-
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
- Launch Ableton Live
- Go to Settings/Preferences β Link, Tempo & MIDI
- In the Control Surface dropdown, select "AbletonMCP"
- Set Input and Output to "None"
- 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.
get_session_info- Get detailed session informationset_tempo- Change session tempostart_playback- Start playbackstop_playback- Stop playback
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
set_track_volume- Adjust track volumesset_track_panning- Control track panningset_track_send- Adjust send levels
create_clip- Create MIDI clipsadd_notes_to_clip- Add MIDI notescopy_clip- Copy clipsdelete_clip- Delete clips
fire_scene- Trigger scenescreate_scene- Create scenesdelete_scene- Delete scenes
start_recording- Start recordingstop_recording- Stop recording
add_device- Add instruments/effectsremove_device- Remove devicesset_device_parameter- Adjust device parametersset_device_active- Enable/disable devicesget_device_parameters- Get device parameter info
"Create a new MIDI track with a synth bass instrument"
"Add an audio track for vocals"
"Set track 1 to arm for recording"
"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%"
"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"
"Create a new scene called 'Verse'"
"Fire scene 2"
"Delete the last scene"
"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"
- 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
- Restart Claude Desktop after configuration changes
- Clear Claude Desktop cache if tools don't appear
- Check MCP server logs for errors
- Break complex requests into smaller steps
- Ensure Ableton Live is responsive
- Check socket connection (localhost:9877)
- Close unnecessary Ableton Live tracks
- Avoid simultaneous complex operations
- Monitor system resources
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
- 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
# Test MCP server
python -m MCP_Server.server
# Test socket communication
python create_midi.pyContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Follow PEP 8 for Python code
- Add comprehensive docstrings
- Include error handling
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
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!