Observed since 20 Oct, 17:29 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
MCP server for controlling Ableton Live via Claude Code
Control Ableton Live with AI through natural conversation.
An MCP (Model Context Protocol) server that exposes 260+ tools for controlling Ableton Live from Claude Code. Create tracks, manipulate MIDI, load instruments, and produce music—all through natural language.
# 1. Clone and install
git clone https://github.com/ldraney/ableton-mcp.git
cd ableton-mcp
poetry install
# 2. Start Ableton Live 12 with AbletonOSC enabled
# 3. Start Claude Code in this directory
claude
# 4. Just ask for what you want!
That's it. Claude reads the project documentation and knows how to guide you through creating music. Try:
Traditional DAW workflows require clicking through menus and dialogs. This project lets you describe what you want in plain English:
"Create a MIDI track, load a drum kit, and add a four-on-the-floor kick pattern at 120 BPM"
Claude Code executes the sequence of operations in Ableton while you watch it happen in real-time.
┌─────────────────────────────────────────────────────────┐
│ Claude Code │
│ (or any MCP-compatible client) │
└───────────────────────┬─────────────────────────────────┘
│ MCP Protocol (stdio)
▼
┌─────────────────────────────────────────────────────────┐
│ ableton-mcp (this project) │
│ FastMCP + Python │
└───────────────────────┬─────────────────────────────────┘
│ Python imports
▼
┌─────────────────────────────────────────────────────────┐
│ abletonosc-client │
│ github.com/ldraney/abletonosc-client │
└───────────────────────┬─────────────────────────────────┘
│ UDP (ports 11000/11001)
▼
┌─────────────────────────────────────────────────────────┐
│ AbletonOSC │
│ MIDI Remote Script in Ableton Live │
└───────────────────────┬─────────────────────────────────┘
│ Live Object Model
▼
┌─────────────────────────────────────────────────────────┐
│ Ableton Live 12 │
└─────────────────────────────────────────────────────────┘
Once configured, you can have conversations like:
You: Create a simple beat Claude: Creates MIDI track → Loads 808 Core Kit → Adds kick on 1 and 3, snare on 2 and 4 → Sets tempo to 90 BPM → Hits play
Behind the scenes, Claude calls tools like:
song_set_tempo(bpm=90)
song_create_midi_track(index=0)
track_set_name(track_index=0, name="Drums")
track_insert_device(track_index=0, device_name="808 Core Kit")
clip_slot_create_clip(track_index=0, scene_index=0, length=4)
clip_add_notes(track_index=0, clip_index=0, notes=[
{"pitch": 36, "start_time": 0, "duration": 0.5, "velocity": 100}, # Kick
{"pitch": 38, "start_time": 1, "duration": 0.5, "velocity": 100}, # Snare
{"pitch": 36, "start_time": 2, "duration": 0.5, "velocity": 100}, # Kick
{"pitch": 38, "start_time": 3, "duration": 0.5, "velocity": 100}, # Snare
])
clip_fire(track_index=0, clip_index=0)
# Clone the repository
git clone https://github.com/ldraney/ableton-mcp.git
cd ableton-mcp
# Install with Poetry
poetry install
Add to your Claude Code MCP settings (~/.claude/settings.json or project .mcp.json):
{
"mcpServers": {
"ableton": {
"command": "poetry",
"args": ["run", "ableton-mcp"],
"cwd": "/path/to/ableton-mcp"
}
}
}
The server auto-detects WSL2 environments and configures the correct Windows host IP. No manual configuration needed.
| Project | Description |
|---|---|
| song-schema | Define songs as JSON, execute them in Ableton (included as dependency) |
| abletonosc-client | Python OSC client wrapper for Ableton |
| AbletonOSC | The MIDI Remote Script that makes this possible |
# Run tests
poetry run pytest
# Run the server directly (for debugging)
poetry run ableton-mcp
# Check Python syntax
poetry run python -m py_compile src/ableton_mcp/server.py
MIT
pypistats · 66 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-19 – 2026-10-19 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-18 – 2026-10-18 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-17 – 2026-10-17 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-16 – 2026-10-16 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-13 – 2026-10-13 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-12 – 2026-10-12 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-11 – 2026-10-11 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-10 – 2026-10-10 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-09 – 2026-10-09 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-08 – 2026-10-08 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-07 – 2026-10-07 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-06 – 2026-10-06 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-04 – 2026-10-04 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-03 – 2026-10-03 | 6 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-02 – 2026-10-02 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-10-01 – 2026-10-01 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-30 – 2026-09-30 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-27 – 2026-09-27 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-26 – 2026-09-26 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-25 – 2026-09-25 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-24 – 2026-09-24 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-23 – 2026-09-23 | 6 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-21 – 2026-09-21 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-19 – 2026-09-19 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-18 – 2026-09-18 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-17 – 2026-09-17 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-16 – 2026-09-16 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-12 – 2026-09-12 | 6 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-10 – 2026-09-10 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-09 – 2026-09-09 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-07 – 2026-09-07 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-06 – 2026-09-06 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-04 – 2026-09-04 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-09-03 – 2026-09-03 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-31 – 2026-08-31 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-30 – 2026-08-30 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-28 – 2026-08-28 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-27 – 2026-08-27 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-26 – 2026-08-26 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-24 – 2026-08-24 | 11 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-23 – 2026-08-23 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-22 – 2026-08-22 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-21 – 2026-08-21 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-20 – 2026-08-20 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-18 – 2026-08-18 | 26 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-17 – 2026-08-17 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-16 – 2026-08-16 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-15 – 2026-08-15 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-14 – 2026-08-14 | 10 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-13 – 2026-08-13 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-12 – 2026-08-12 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-11 – 2026-08-11 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-10 – 2026-08-10 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-09 – 2026-08-09 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-08 – 2026-08-08 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-06 – 2026-08-06 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-04 – 2026-08-04 | 11 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-03 – 2026-08-03 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-02 – 2026-08-02 | 5 | 2026-10-20T19:04:19.5129442Z |
| 2026-08-01 – 2026-08-01 | 1 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-31 – 2026-07-31 | 4 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-29 – 2026-07-29 | 16 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-27 – 2026-07-27 | 3 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-25 – 2026-07-25 | 2 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-23 – 2026-07-23 | 6 | 2026-10-20T19:04:19.5129442Z |
| 2026-07-22 – 2026-07-22 | 1 | 2026-10-20T19:04:19.5129442Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 23 Jan 2026 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:29 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:20900ea334d4f24f2145af879d88a09e5ed34681070db4cbf86a8f45c4df7a1d