Observed since 20 Oct, 17:29 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A comprehensive MCP server for controlling Ableton Live via OSC
Intelligent, LLM-controlled music production in Ableton Live via Claude.
An MCP (Model Context Protocol) server with 49 tools that enable Claude to observe, control, and automate Ableton Live mixing workflows with natural language commands.
User: "Make the drums brighter and punchier"
Claude: ✅ Observes session → finds drums → applies EQ + compression
Result: Professional-sounding drums automatically adjusted
# Download from https://github.com/ideoforms/AbletonOSC
# Extract to: C:\Users\<Username>\AppData\Roaming\Ableton\Live 11.3.20\Preferences\User Remote Scripts\
# In Ableton: Preferences → Link/MIDI → Control Surfaces → Select AbletonOSC
# Clone/download this repo
cd ableton-mcp
# Install with uv (recommended)
uv sync
uv run ableton-mcp
# Or with pip
pip install -r requirements.txt
python -m ableton_mcp
In Claude Code or Claude Desktop, add:
claude mcp add --transport stdio ableton -- uvx ableton-mcp
"Make the drums brighter"
→ Claude uses: get_track_info() + set_device_parameter_by_name()
"Balance the mix"
→ Claude uses: balance_mix()
"Add punch to drums"
→ Claude uses: compress_for_punch(track, "moderate")
"Create a 4-minute song with intro, verses, chorus, and outro"
→ Claude uses: scaffold_song(["Intro", "Verse", "Chorus", "Bridge", "Outro"])
"Create a balanced mix with warm bass and bright vocals"
→ Claude uses: balance_mix() + quick_eq_preset(bass, "warm") + quick_eq_preset(vocals, "bright")
"What's in my session?"
→ Claude uses: list_tracks() + get_session_overview()
Phase 0 – Foundation (26 tools)
Phase 1 – Observation (9 tools) ✨
list_tracks() — See all tracksget_track_info() — Get track propertiesget_devices() — List devices on trackget_session_overview() — Full session snapshotPhase 2 – Intelligent Control (1 + mappings) ✨
set_device_parameter_by_name() — Control by name, not indexPhase 3 – Metering (6 tools)
get_track_meter(), analyze_loudness(), spectrum_analysis()Phase 4 – Batch Workflows (7 tools) ✨
balance_mix() — Auto-balance volumesquick_eq_preset() — Apply EQ presets (bright, warm, dark, presence, clarity)compress_for_punch() — Smart compression (gentle, moderate, aggressive)scaffold_song() — Create song structuregain_stage_session() — Optimize loudnesscreate_mixing_template() — Standard mixing layoutsuggest_next_action() — Workflow recommendationsParameter control by name works for:
| Device | Parameters |
|---|---|
| EQ Eight | Brightness, Warmth, Presence, Clarity, Low Shelf Gain, High Shelf Gain, etc. |
| Compressor | Threshold, Ratio, Attack, Release, Makeup Gain, Knee, Look Ahead |
| Reverb | Decay, Size, Mix, Damp, Width |
| Delay | Time, Feedback, Mix |
| Saturator | Drive, Tone, Gain, Mode, Soft Knee |
| Vocoder, AutoFilter, Overdrive, Operator, Wavetable, Sampler | Various parameters |
All responses are structured JSON:
Create .env:
ABLETON_IP=127.0.0.1
ABLETON_SEND_PORT=11000
ABLETON_RECV_PORT=11001
OSC_TIMEOUT_SECONDS=2.0
DEBUG=false
✅ Ruff linting: PASS ✅ Type hints: 100% ✅ Pydantic models: All validated ✅ Error handling: JSON responses ✅ Architecture: Bidirectional OSC
See detailed guides:
Add device mappings in src/ableton_mcp/core/device_mappings.py
Create new tool modules in src/ableton_mcp/tools/
✅ Production-ready — 49 tools, 80-90% mixing automation, tested code
Questions? Check FINAL_SUMMARY.md or the examples above.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.0 | 15 Jun 2026 | 8 |
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:e8eb23c0ba0bac4a33ccde1963aa462bc6efa917aa3d6179647e5b1e971a8f8b