Skip to main content
Glama

🌐 English | ę—„ęœ¬čŖž

šŸŽ¹ Ableton MCP

An AI agent that gives you full control over Ableton Live using natural language.

šŸš€ Two Modes

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.


Related MCP server: AbletonMCP

🌟 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)

  1. Download AbletonOSC

  2. Drag AbletonOSC.amxd onto a track in Ableton Live

Option B: Remote Script (Recommended)

  1. Download from https://github.com/ideoforms/AbletonOSC

  2. Place in Remote Scripts folder:

    • Windows: C:\Users\<YourName>\Documents\Ableton\User Library\Remote Scripts\AbletonOSC

    • macOS: ~/Music/Ableton/User Library/Remote Scripts/AbletonOSC

  3. Folder structure: AbletonOSC\__init__.py should be directly inside

  4. 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)

  • Local library search (Ableton Core Library, Splice, etc.)

  • Freesound API support

  • Natural language queries

šŸŽšļø Mixing Assistance

  • Frequency collision detection (kick vs bass, etc.)

  • Automatic sidechain compression setup

  • EQ suggestions

  • Level/dynamics analysis

šŸ“ 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

  • "Create a basic drum pattern"

  • "Make a 4-bar trap beat"

  • "Four on the floor kick"

  • "Create a breakbeat"

Melody/Bass

  • "Create a melody in C minor"

  • "Bright pentatonic melody"

  • "Syncopated bassline"

  • "Add an octave bass"

  • "16th note arpeggio"

Chords

  • "Create a dark chord progression"

  • "Jazzy chords"

  • "Cinematic chord progression"

Samples

  • "Search for ethnic percussion"

  • "Dark synth 140BPM"

  • "Find kick samples"

Mixing

  • "Analyze the mix"

  • "Kick and bass are clashing"

  • "It sounds muddy"

  • "Set up sidechain"

  • "Add reverb"

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

  1. 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"]
    }
}
  1. 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!)

  1. Start Ableton Live first

  2. Confirm AbletonOSC shows "Started AbletonOSC on address ('0.0.0.0', 11000)" in log

  3. Then start Claude Desktop

OSC Connection Error

  • Check that AbletonOSC is loaded

  • Verify port 11000 is available

  • Check firewall settings

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

  • After editing files: Restart Claude Desktop completely (exit from system tray)

  • Connection problems: Restart Claude Desktop

API Error (CLI Mode)

  • Verify ANTHROPIC_API_KEY is correctly set

  • Check API usage limits

Samples Not Found

  • Check sample folder paths

  • Specify custom paths when initializing SampleSearchEngine


šŸ“„ License

MIT

šŸ”— References

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Connects Claude AI to Ableton Live through the Model Context Protocol, enabling prompt-assisted music production with track creation, instrument loading, clip editing, and session control. Allows users to create complete musical arrangements by describing what they want in natural language.
    37
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Ableton Live to Claude AI via the Model Context Protocol for prompt-assisted music production and session manipulation. It enables users to create tracks, load instruments, and manage MIDI clips using natural language commands.
    16
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Ableton Live to Claude AI via the Model Context Protocol, enabling prompt-assisted music production, track creation, and Live session manipulation.
    16
    MIT