π English | ζ₯ζ¬θͺ
πΉ Ableton MCP
An AI agent that gives you full control over Ableton Live using natural language.
π Two Modes
1οΈβ£ MCP Mode (Recommended) - No API Key Required!
Use directly from Claude Desktop. Control Ableton just by chatting - no API key needed.
2οΈβ£ CLI Mode - Standalone
Operate from terminal using your Anthropic API key.
β οΈ Note: CLI mode is experimental and has not been fully tested.
π MCP Mode Setup (No API Key Required)
1. Installation
cd ableton-mcp
pip install -e .
2. Configure Claude Desktop
Edit the Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ableton-mcp": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/ableton-mcp"
}
}
}
β οΈ Replace cwd with the actual path to your ableton-mcp folder.
π Windows users: See INSTALL_WINDOWS.md for detailed instructions.
3. Install AbletonOSC
Option A: Max for Live Device (Simple)
Download AbletonOSC
Drag AbletonOSC.amxd onto a track in Ableton Live
Option B: Remote Script (Recommended)
Download from https://github.com/ideoforms/AbletonOSC
Place in Remote Scripts folder:
Folder structure: AbletonOSC\__init__.py should be directly inside
In Ableton Live β Preferences β Link/Tempo/MIDI β Control Surface β Select AbletonOSC
4. Restart Claude Desktop
After restarting, you can control Ableton directly through chat!
You: Create a 4-minute EDM track
Claude: [using generate_arrangement tool]
Generated arrangement...
You: Add trap-style drums
Claude: [using create_drum_track tool]
Created drum track 'Drums'...
β¨ Features
π₯ Drum/Rhythm Generation
Basic beats, four-on-floor, trap, breakbeat, D&B
Custom pattern creation
πΉ Melody/Synth Generation
Melody: Scale-based auto-generation (adjustable density and contour)
Basslines: basic, walking, syncopated, octave, arpeggiated
Chord progressions: pop, jazz, sad, epic, dark, edm, lofi, cinematic
Arpeggios: up, down, updown, random (8th/16th/triplet)
π Sample Search
ποΈ Mixing Assistance
π Song Structure Generation
Genre templates: EDM, House, Techno, D&B, HipHop, Trap, Lo-Fi, Ambient, Pop
Complete structure: Intro β Buildup β Drop β Breakdown β Outro
Automatic automation generation
π» CLI Mode Usage
Launch
# Ableton connection mode
python src/cli.py
# Mock mode (test without Ableton)
python src/cli.py --mock
Example Session
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β πΉ Ableton Agent CLI v2.0 πΉ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π€ You: Create a 4-minute EDM track
π€ Agent: I'll generate an EDM track arrangement.
ποΈ Executing: generate_arrangement
Parameters: {"genre": "edm", "duration_minutes": 4.0}
β
Generated arrangement:
π΅ Untitled Edm
Tempo: 128 BPM | Key: Am
Total: 72 bars
π Structure:
[ 0] intro | 8 bars | Energy: ββββββββββ
[ 8] buildup | 8 bars | Energy: ββββββββββ
[ 16] drop | 16 bars | Energy: ββββββββββ
[ 32] breakdown | 8 bars | Energy: ββββββββββ
[ 40] buildup | 8 bars | Energy: ββββββββββ
[ 48] drop | 16 bars | Energy: ββββββββββ
[ 64] outro | 8 bars | Energy: ββββββββββ
π€ You: Create trap-style drums
π€ Agent: I'll create a trap-style drum pattern.
ποΈ Executing: create_drum_track
Parameters: {"pattern_type": "trap", "bars": 2, "name": "Trap Drums"}
β
Created drum track 'Trap Drums' (pattern: trap, 2 bars)
β¨οΈ Commands
Special Commands
Command | Description |
/help
| Show help |
/status
| Show project status |
/genres
| List available genres |
/arrangement
| Show current arrangement |
/mock
| Toggle mock mode |
/clear
| Clear conversation history |
quit
| Exit |
Natural Language Examples
Drums
Melody/Bass
Chords
Samples
Mixing
Song Structure
"Create a 4-minute EDM track"
"Generate a lo-fi hip hop structure"
"Make a techno arrangement"
Mood
"Make it darker"
"Brighten it up"
"Make it more intense"
"Chill vibe"
π Project Structure
ableton-mcp/
βββ .gitignore
βββ LICENSE
βββ README.md # English
βββ README.ja.md # Japanese
βββ INSTALL_WINDOWS.md # Windows setup guide
βββ pyproject.toml
βββ setup.bat # Windows setup script
βββ claude_desktop_config.example.json # Example config
βββ src/
βββ __init__.py
βββ mcp_server.py # MCP server (for Claude Desktop)
βββ cli.py # CLI interface
βββ agent.py # AI agent (Claude API)
βββ ableton_osc.py # Ableton OSC communication
βββ synth_generator.py # Melody/bass/chord/arpeggio generation
βββ sample_search.py # Sample search engine
βββ mixing_assistant.py # Mixing analysis & assistance
βββ arrangement_generator.py # Song structure generation
π§ Extending
Adding New Tools
Add tool definition to ABLETON_TOOLS in src/agent.py:
{
"name": "your_tool_name",
"description": "Tool description",
"input_schema": {
"type": "object",
"properties": {
"param1": {"type": "string", "description": "Description"}
},
"required": ["param1"]
}
}
Add execution logic to execute_command in src/cli.py:
elif tool == "your_tool_name":
return self._your_implementation(params)
Adding Genre Templates
Add to GenreTemplates.TEMPLATES in src/arrangement_generator.py:
"your_genre": {
"sections": [
("intro", 8, 0.3, ["pad"]),
("verse", 16, 0.6, ["drums", "bass"]),
# ...
],
"tempo_range": (100, 120),
"default_key": "Am",
}
ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User Input (Natural Language) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Claude API (Tool Use) β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Drums β β Melody β β Samples β β Mixing β ... β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Command Executor β
β ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ β
β β SynthGenerator β β SampleSearch β β MixingAssist β β
β ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ β
β ββββββββββββββββββ ββββββββββββββββββ β
β β ArrangementGen β β DrumPattern β β
β ββββββββββββββββββ ββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OSC Communication β
β (python-osc) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ableton Live β
β (via AbletonOSC) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Troubleshooting
Startup Order (Important!)
Start Ableton Live first
Confirm AbletonOSC shows "Started AbletonOSC on address ('0.0.0.0', 11000)" in log
Then start Claude Desktop
OSC Connection Error
Windows - Check ports:
netstat -ano | findstr "11000 11001"
Windows - Check Ableton log:
Get-Content "$env:USERPROFILE\AppData\Roaming\Ableton\Live *\Preferences\Log.txt" -Tail 50 | Select-String "OSC"
Claude Desktop Issues
API Error (CLI Mode)
Samples Not Found
π License
MIT
π References