- Ableton Live 11.0+ or 12.0+ (Suite, Standard, or Intro editions)
- Python 2.7+ (bundled with Ableton Live)
- macOS 10.13+
- Windows 10/11
- Linux (experimental)
git clone https://github.com/Ziforge/ableton-liveapi-tools.git
cd ableton-liveapi-tools
bash install.shThe installation script performs the following operations:
- Detects operating system and determines correct installation path
- Backs up existing installation if present
- Copies
ClaudeMCP_Remotedirectory to Ableton's Remote Scripts folder - Verifies file integrity
cp -r ClaudeMCP_Remote ~/Music/Ableton/User\ Library/Remote\ Scripts/Copy the ClaudeMCP_Remote directory to:
%USERPROFILE%\Documents\Ableton\User Library\Remote Scripts\
cp -r ClaudeMCP_Remote ~/Music/Ableton/User\ Library/Remote\ Scripts/-
Restart Ableton Live completely (Quit and relaunch)
-
Verify TCP socket is listening on port 9004:
# macOS/Linux
lsof -i :9004
# Windows
netstat -an | findstr :9004Expected output should show Ableton Live process listening on port 9004.
- Run connection test:
python3 examples/test_connection.pyExpected output:
Connection successful
Tool count: 125
Ableton version: 12
If the Remote Script does not load:
-
Check file permissions
# macOS/Linux - ensure files are readable chmod -R 755 ~/Music/Ableton/User\ Library/Remote\ Scripts/ClaudeMCP_Remote
-
Verify file structure
ClaudeMCP_Remote/ ├── __init__.py └── liveapi_tools.py -
Check Ableton Live log
- macOS:
~/Library/Preferences/Ableton/Live */Log.txt - Windows:
%APPDATA%\Ableton\Live *\Preferences\Log.txt
Search for "ClaudeMCP" or errors related to Remote Scripts.
- macOS:
-
Python compatibility
- Ableton Live 11/12 uses Python 2.7
- Ensure no Python 3-specific syntax in modifications
The Remote Script binds to 127.0.0.1:9004 (localhost only by default). For remote access:
-
Modify
__init__.pyline ~80:self.server_socket.bind(('0.0.0.0', 9004)) # Allow external connections
-
Configure firewall to allow TCP port 9004
Security Warning: Exposing port 9004 to external networks allows remote control of Ableton Live. Implement authentication if enabling remote access.
To change the default port (9004):
-
Edit
__init__.pyline ~80:self.server_socket.bind(('127.0.0.1', YOUR_PORT))
-
Update client code to connect to new port
rm -rf ~/Music/Ableton/User\ Library/Remote\ Scripts/ClaudeMCP_RemoteDelete the directory:
%USERPROFILE%\Documents\Ableton\User Library\Remote Scripts\ClaudeMCP_Remote
-
Backup existing installation:
cp -r ~/Music/Ableton/User\ Library/Remote\ Scripts/ClaudeMCP_Remote \ ~/Music/Ableton/User\ Library/Remote\ Scripts/ClaudeMCP_Remote.backup
-
Pull latest changes:
git pull origin main
-
Run installation script:
bash install.sh
-
Restart Ableton Live
For development and debugging:
-
Clone repository:
git clone https://github.com/Ziforge/ableton-liveapi-tools.git cd ableton-liveapi-tools -
Create symlink to Remote Scripts directory:
# macOS/Linux ln -s $(pwd)/ClaudeMCP_Remote \ ~/Music/Ableton/User\ Library/Remote\ Scripts/ClaudeMCP_Remote
-
Edit files in repository, changes take effect after Ableton restart
- Gatekeeper may block execution initially
- Remote Scripts directory created on first Ableton launch
- Check Console.app for system-level errors
- Some antivirus software may flag socket connections
- Ensure Windows Defender allows Python.exe network access
- Use absolute paths (avoid
~shorthand)
- WINE/Ableton Live compatibility varies
- May require manual MIDI/Audio driver configuration
- Remote Scripts path may differ based on installation method