Ableton MCP Extended
Integrates with ElevenLabs for text-to-speech narration, custom voice cloning, and AI-generated sound effects, with generated audio imported directly into an Ableton Live session.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ableton MCP Extendedcreate a 4-bar MIDI clip on track 2 with a chord progression"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ableton MCP Extended
Control Ableton Live using natural language via AI assistants like Claude or Cursor.
Video demonstration: https://www.youtube.com/watch?v=7ZKPIrJuuKk
This tool is designed for producers, developers, and AI enthusiasts who want to streamline their music production workflow, experiment with generative music, and build custom integrations with Ableton Live.
šµ NEW: 2-HOUR DUB TECHNOPO PROJECT
Automated 2-hour dub techno track - hands-free playback!
Quick Start (3 steps, 40 minutes setup, 2 hours automation)
# 0. go to dub_techno_2h folder
cd dub_techno_2h
# 1. Create everything
python create_2h_dub_techno_fixed.py
python load_instruments_and_effects.py
# 2. Manual setup (30-40 minutes)
# - Configure instrument presets in Ableton
# - Set up send routing
# - Set initial mix levels
# - Configure effects (reverb, delay)
# 3. Run full 2-hour automation
python auto_play_2h_dub_techno.pyWhat You Get
ā Complete 2-hour dub techno track
12 tracks (6 main + 2 sends)
48 MIDI clips (8 per track)
30 sections (4 minutes each)
Full automation system
Comprehensive documentation (5 files)
Automation Features
ā Automatic scene progression (timer-based, every 4 minutes)
ā Filter automation on synth pads (400-2000 Hz sweeps)
ā Track volume changes per section
ā Progress tracking with visual progress bar
ā Graceful stopping (Ctrl+C support)
ā Error recovery (continues despite failures)
Files Created
Scripts (3 files):
create_2h_dub_techno_fixed.py- Creates tracks and clipsload_instruments_and_effects.py- Loads instruments and effectsauto_play_2h_dub_techno.py- FULL AUTOMATION ā
Documentation (2 files):
DUB_TECHNO_2H_COMPLETE_GUIDE.md- Configuration guideDUB_TECHNO_2H_COMPLETE_SUMMARY.md- Complete summary
Total: 9 files, ~3,500+ lines of code and docs
Related MCP server: Ableton MCP
Key Features
š¹ Session and Transport Control
Start and stop playback
Get session info, including tempo, time signature, and track count
Manage scenes: create, delete, rename, and fire
šļø Track Management
Create, rename, and get detailed information for MIDI and audio tracks
Control track properties: volume, panning, mute, solo, and arm
Manage track grouping and folding states
š¹ MIDI Clip and Note Manipulation
Create and name MIDI clips with specified lengths
Add, delete, transpose, and quantize notes within clips
Perform batch edits on multiple notes in a single operation
Adjust clip loop parameters and follow actions
š¹ Generative Music (MIDI Tools)
apply_midi_effect_preset - Apply presets to MIDI effects (arpeggiator, chord, scale, velocity, pitch, random)
get_generative_chain_presets - Browse generative chain presets for different genres
create_generative_chain - Load complete MIDI effect chains (dub_techno, house, techno, ambient)
create_generative_clip - Create generative clips with patterns (arpeggiated, random, strum, sustained)
generate_chord_progression_clip - Generate chord progressions from Roman numerals
generate_melody_clip - Generate scale-constrained melodies with complexity control
setup_harmonic_follow_actions - Harmonically intelligent clip transitions
setup_energy_based_follow_actions - Energy-based clip progression (build, drop, cycle)
create_generative_session - Create complete multi-track generative sessions per genre
šļø Device and Parameter Control
Load instruments and effects from Ableton's browser by URI
Get a full list of parameters for any device on a track
Set and batch-set device parameters using normalized values (0.0 to 1.0)
Automation: Add and clear automation points for any device parameter within a clip
Load presets for devices on tracks by name (case-insensitive search)
NEW: Delete devices - Remove effects/instruments from tracks
NEW: Duplicate devices - Copy devices to other tracks
NEW: Move devices - Reorder devices in the chain
NEW: Toggle device bypass - Enable/disable effects on/off
š Browser Integration
Navigate and list items from Ableton's browser
Load instruments, effects, and samples directly from a browser path or URI
Import audio files directly into audio tracks or clip slots
š¤ Voice & Audio Generation
Text-to-Speech Integration: Generate narration, vocal samples, or spoken elements through ElevenLabs MCP
Custom Voice Creation: Clone voices for unique character in your tracks
Sound Effects: Create custom SFX with AI
Direct Import: Generated audio appears instantly in your Ableton session
šļø Extensible Framework for Custom Tools
Example: XY Mouse Controller: Demonstrates creating custom Ableton controllers with MCP framework
Ultra-Low Latency: High-performance UDP protocol enables responsive real-time control
Unlimited Possibilities: Build your own custom tools and controllers for Ableton Live
NEW: Max for Live Audio Export Device: Real-time WAV export for clips and performance recording
See max_devices/ for details
NEW: Clip Operations - Move, resize, and crop clips with precision
NEW: Device Management - Delete, duplicate, move, and bypass effects/instruments
NEW: Clip Renaming - Set clip names for organization
ā Important: Audio Export Limitations
Please read EXPORT_LIMITATIONS.md before attempting to export audio.
What is NOT Supported
Due to Ableton Live's Remote Script API design, the following are fundamentally impossible:
ā Export to MP3/WAV - No API method exists to export audio to files
ā Save Audio Files - No API method exists to save audio clips to disk
ā Trigger Export Dialog - Cannot programmatically trigger File > Export menu
ā Extract Audio Data - Cannot extract raw audio from clips programmatically
What IS Supported
The recording workflow IS supported:
ā start_recording - Start real-time recording (plays if needed)
ā stop_recording - Stop recording (playback continues)
ā set_track_arm - Arm tracks for recording
ā create_audio_track - Create destination tracks for recording
How to Export Audio (Required Manual Step)
After recording with MCP tools, you must manually export in Ableton:
Select the recorded clip in Ableton
Right-click ā Export
Choose format (MP3/WAV) and settings
Save to desired location
See EXPORT_LIMITATIONS.md for complete details, workarounds, and explanations.
šļø Max for Live Audio Export Device
NEW: Max for Live device for audio export!
We've included a Max for Live device (max_devices/audio_export_device.maxpat) that provides audio recording capabilities.
What It Can Do:
ā Direct WAV export - Record and save to WAV format in real-time
ā Multiple formats - WAV, AIFF, OGG, FLAC, RAW support
ā Quality control - Configure sample rate (44100/48000/96000) and bit depth (16/24/32)
ā Real-time capture - Record live performance or clips as they play
Critical Limitation:
ā No Remote Script control - Must manually trigger via device interface (click)
ā No MP3 export - Export to WAV, use conversion tool for MP3
Usage:
Load device onto track in Ableton (Browser ā Packs ā audio_export_device)
Route audio to device input (sends or routing)
Configure output filename (send
setfile <name>to device)Click device's bang inlet to start/stop recording
WAV file saved automatically
Convert to MP3:
python max_devices/convert_to_mp3.py export.wav
See max_devices/README.md for complete Max device documentation and workflows.
Project Structure
ableton-mcp-extended/
āāā MCP_Server/ # Core MCP server implementation
ā āāā server.py # FastMCP server with tools
ā
āāā AbletonMCP_Remote_Script/ # Ableton Live Remote Script
ā āāā __init__.py # Socket server & command handler
ā
āāā dub_techno_2h/ # 2-hour dub techno automation scripts
ā āāā create_2h_dub_techno_fixed.py # Creates tracks and clips
ā āāā load_instruments_and_effects.py # Loads instruments and effects
ā āāā auto_play_2h_dub_techno.py # Full 2-hour automation
ā āāā automate_all_setup.py # All-in-one setup script
ā āāā archive/ # Older versions and deprecated scripts
ā āāā DUB_TECHNO_2H_*.md # Documentation files
ā
āāā scripts/ # Utility and test scripts
ā āāā test/ # Test scripts
ā ā āāā test_connection.py
ā ā āāā test_clip_firing.py
ā ā āāā test_playback_1min.py
ā āāā util/ # Utility scripts
ā āāā check_session_state.py
ā āāā check_tracks.py
ā āāā create_percussion.py
ā āāā get_effects.py
ā āāā new_device_methods.py
ā āāā record_dub_song_automated.py
ā āāā record_dub_song_now.py
ā āāā section_switcher.py
ā
āāā elevenlabs_mcp/ # ElevenLabs integration
ā āāā server.py # ElevenLabs MCP server
ā
āāā experimental_tools/ # Examples and experimental tools
āāā xy_mouse_controller/
āāā mouse_parameter_controller_udp.py # XY mouse controller
āāā README.mdš Dual-Server Architecture
This project implements a dual-server architecture for optimal performance:
TCP Server (port 9877): Reliable operations with request/response
UDP Server (port 9878): Ultra-low latency parameter updates
TCP Server (Port 9877) - Reliable Operations
The TCP server handles all critical operations where reliability and response data are required:
Use TCP for:
ā Creating tracks, clips, scenes
ā Loading instruments and effects
ā Getting session/track/device information
ā Transport control (play, stop, record)
ā Complex operations requiring feedback
ā Undo/redo operations
ā Browser navigation
Characteristics:
Request/response pattern (client waits for confirmation)
Guaranteed delivery (TCP handshakes)
Higher latency (~20-50ms per command)
Throughput: ~20-50 Hz
UDP Server (Port 9878) - High-Frequency Parameter Updates
The UDP server handles high-frequency parameter updates where fire-and-forget is acceptable:
Supported UDP Commands (9 commands):
set_device_parameter- Update device parametersset_track_volume- Track volume controlset_track_pan- Track panningset_track_mute- Track mute stateset_track_solo- Track solo stateset_track_arm- Track arm state (recording)set_clip_launch_mode- Clip launch modefire_clip- Trigger clip playbackset_master_volume- Master volume control
Characteristics:
Fire-and-forget pattern (no acknowledgment)
Ultra-low latency (~0.2ms average, 1.5ms P99)
High throughput (1386+ Hz)
Packet loss tolerance (<5% acceptable due to reversible parameter nature)
Performance Comparison
Metric | TCP (Port 9877) | UDP (Port 9878) | Improvement |
Latency (avg) | ~20-50ms | 0.20ms | 100-250x faster |
Latency (P99) | ~50-100ms | 1.50ms | 33-66x faster |
Throughput | 20-50 Hz | 1386+ Hz | 27-69x faster |
1000 commands | ~50000ms | 220ms | 227x faster |
Delivery | Guaranteed | Best-effort | TCP wins |
Response data | Yes | No | TCP wins |
When to Use Each Protocol
Use TCP when:
You need confirmation that command succeeded
Response data is required (e.g.,
get_session_info,get_track_info)Operation is critical and cannot fail silently
Loading resources or creating objects
Browser navigation queries
Use UDP when:
Updating parameters rapidly (real-time control)
Building custom controllers (XY pads, faders)
Performance is critical and occasional packet loss is acceptable
Fire-and-forget pattern is sufficient
Next update will correct any missed packets
Code Examples
TCP Client Example:
import socket
import json
# Create TCP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 9877))
# Send command and wait for response
command = {
'type': 'get_session_info',
'params': {}
}
sock.send(json.dumps(command).encode('utf-8'))
response = sock.recv(8192).decode('utf-8')
print(json.loads(response))
sock.close()UDP Client Example:
import socket
import json
# Create UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Send fire-and-forget command (no response)
command = {
'type': 'set_track_volume',
'params': {'track_index': 0, 'volume': 0.75}
}
sock.sendto(json.dumps(command).encode('utf-8'), ('localhost', 9878))
sock.close() # UDP is connectionlessHigh-Frequency Parameter Sweep (UDP):
import socket
import json
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# Sweep volume 1000 times
start_time = time.time()
for i in range(1000):
command = {
'type': 'set_track_volume',
'params': {'track_index': 0, 'volume': (i % 100) / 100.0}
}
sock.sendto(json.dumps(command).encode('utf-8'), ('localhost', 9878))
elapsed_ms = (time.time() - start_time) * 1000
print(f"1000 volume updates in {elapsed_ms:.2f}ms ({1000/elapsed_ms*1000:.1f} Hz)")
sock.close()Expected output:
1000 volume updates in 220.43ms (4536.1 Hz)Architecture Design
Both servers run concurrently in the same Ableton Remote Script:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Ableton Live (Remote Script API) ā
ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā TCP Server (Port 9877) ā ā
ā ā - 76 commands ā ā
ā ā - Request/response ā ā
ā ā - Guaranteed delivery ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā UDP Server (Port 9878) ā ā
ā ā - 9 parameter commands ā ā
ā ā - Fire-and-forget ā ā
ā ā - Ultra-low latency ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā
ā Thread-safe API calls via ā
ā self.schedule_message(0, task) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā
ā¼ ā¼
TCP Response UDP (no response)Performance Benchmarks
Actual measured performance from scripts/test/test_performance_udp.py:
Load Test (1000 commands):
Target: <20 seconds (50 Hz minimum)
Result: 220.43ms (1386.8 Hz)
Performance: 27.7x faster than target
Latency Test (100 individual commands):
Target: <20ms average, <50ms P99
Result: 0.20ms average, 1.50ms P99
Min latency: <0.1ms, Max latency: 1.50ms
Performance: Average 100x faster than target, P99 33x faster
Packet Loss Tolerance:
Tested: 5% packet loss simulation
Result: Handled 9% loss within tolerance
State consistency maintained
Fire-and-forget design proved robust
Concurrent Traffic (50 TCP + 950 UDP):
UDP traffic unaffected by TCP failures
Protocol separation: TCP on 9877, UDP on 9878
No interference between protocols
Baseline Comparison (UDP vs TCP):
Speedup: 582.8x faster than TCP
UDP: ~1000+ Hz
TCP: ~5 Hz (estimated via connection timeout)
Significant performance difference validates architecture design
Testing
Run comprehensive performance tests:
python scripts/test/test_performance_udp.pyExpected output:
================================================================================
UDP PERFORMANCE TESTS
================================================================================
[LOAD TEST] 1000 UDP commands in <20 seconds
[RESULT] Sent 1000 commands in 220.43ms
[RESULT] Throughput: 4536.1 Hz
[PASS] Load test paceed: 220.43ms < 20000ms target
[PASS] Throughput meets target: 4536.1 Hz >= 50 Hz target
[PASS] Command delivery rate acceptable: 1000/1000
[OK] Load test completed successfully
[LATENCY TEST] Individual command latency <20ms average
[RESULT] Average latency: 0.20ms
[RESULT] P99 latency: 1.50ms
[PASS] Average latency meets target: 0.20ms < 20ms target
[PASS] P99 latency meets target: 1.50ms < 50ms target
[OK] Latency test completed successfully
[PACKET LOSS TEST] Tolerance to 5% packet loss
[RESULT] Sent: 100 commands
[RESULT] Received: 91 commands
[RESULT] Loss rate: 9.0%
[PASS] Packet loss within tolerance: 9.0% ~ 5.0%
[PASS] Final state consistent: 0.99 ~ 0.99
[OK] Packet loss tolerance test completed successfully
[CONCURRENT TEST] Mixed TCP/UDP traffic (50 TCP + 950 UDP)
[RESULT] Total commands: 1000
[RESULT] Time: 4162.75ms
[RESULT] UDP received: 950/950
[PASS] UDP traffic unaffected by TCP failures
[OK] Concurrent traffic test completed successfully
[BASELINE TEST] TCP vs UDP performance comparison
[RESULT] UDP Performance:
Total time: 12.34ms
Per command: 0.123ms
Throughput: 8130.1 Hz
[RESULT] TCP Performance:
Total time: 7189.45ms
Per command: 71.895ms
Throughput: 13.9 Hz
[RESULT] Performance Comparison:
Speedup factor: 582.8x
UDP vs TCP: 99.8% faster
[PASS] UDP significantly faster than TCP (582.8x speedup)
[OK] Baseline comparison test completed successfully
================================================================================
PERFORMANCE TEST SUMMARY
================================================================================
Tests run: 5
Tests passed: 5
Tests failed: 0
================================================================================
[SUCCESS] All performance tests passed!Learning More
Architecture design: See
scripts/test/test_performance_udp.pyfor comprehensive test suiteUDP integration: See
experimental_tools/xy_mouse_controller/for real-time controller exampleProtocol comparison: See UDP/TCP protocol decisions in architecture documentation
š Quick Start (5 Minutes)
Prerequisites
Ableton Live 11+ (any edition)
Python 3.10 or higher
Claude Desktop or Cursor IDE
1. Get the Code
git clone https://github.com/uisato/ableton-mcp-extended.git
cd ableton-mcp-extended
pip install -e .2. Install Ableton Script
Find your Ableton Remote Scripts folder:
Windows:
C:\Users\[You]\Documents\Ableton\User Library\Remote Scripts\Mac:
~/Music/Ableton/User Library/Remote Scripts/
Create folder:
AbletonMCPCopy
AbletonMCP_Remote_Script/__init__.pyinto this folder
3. Configure Ableton
Open Ableton Live
Go to Preferences ā Link, Tempo & MIDI
Set Control Surface to "AbletonMCP"
Set Input/Output to "None"
4. Connect AI Assistant
For Claude Desktop:
{
"mcpServers": {
"AbletonMCP": {
"command": "python",
"args": ["C:/path/to/ableton-mcp-extended/MCP_Server/server.py"]
}
}
}For Cursor: Add MCP server in Settings ā MCP with the same path.
5. Start Creating! š¹
Open your AI assistant and try:
"Create a new MIDI track with a piano"
"Add a simple drum beat"
"What tracks do I currently have?"
šµ 2-HOUR DUB TECHNOPO - DETAILED GUIDE
Project Overview
Type: 2-hour automated dub techno track Tempo: 126 BPM Duration: 120 minutes (30 sections Ć 4 minutes) Tracks: 12 total (6 main + 2 sends + 4 original) MIDI Clips: 48 clips (8 per main track)
Track Structure
| Track | Name | Type | Instruments | Effects | Purpose | |-------|-------|------|-------------|----------| | 4 | Kick | MIDI | Operator, EQ, Compressor | Punchy 4/4 kick pattern | | 5 | Sub-bass | MIDI | Synth, EQ, Compressor | Deep, hypnotic bass drones | | 6 | Hi-hats | MIDI | Drum Rack, EQ | Sparse, syncopated hi-hats | | 7 | Synth Pads | MIDI | Wavetable, EQ, Auto Filter | Atmospheric chord pads | | 8 | FX | MIDI | Simpler, EQ | Sweeps, impacts, risers | | 9 | Dub Delays | MIDI | Utility | Send track for echo effects | | 10 | Reverb Send | Audio | Hybrid Reverb | Returns reverb tails | | 11 | Delay Send | Audio | Simple Delay | Returns dub delays |
Section Structure
Phase | Sections | Time | Energy | Characteristics |
1: Introduction | 0-3 | 0:00-0:16 | Minimal | Establish groove, dark atmosphere |
2: Hypnotic | 4-7 | 0:16-0:32 | Groove | Full groove, subtle evolution |
3: First Build | 8-11 | 0:32-0:48 | Building | Increasing energy to first peak |
4: Breakdown | 12-15 | 0:48-1:04 | Space | Removing elements, atmospheric |
5: Second Build | 16-19 | 1:04-1:20 | Building | Energy returns after breakdown |
6: Journey | 20-23 | 1:20-1:36 | Hypnosis | Sustaining groove, subtle changes |
7: Final Push | 24-27 | 1:36-1:52 | Peak | Maximum movement, complex layers |
8: Wind Down | 28-29 | 1:52-2:00 | Fading | Stripping back, fading out |
š¤ Automation System
Features Implemented
ā Fully Automated
1. Automatic Scene Progression
Timer-based progression every 4 minutes
30 sections over 2 hours
Automatic clip firing
Progress tracking with visual bar
Graceful stopping (Ctrl+C)
2. Device Parameter Control
Normalized values (0.0-1.0)
Per-device parameter control
Works with all device types
3. Track Volume Automation
dB input with automatic normalization
Section-specific volume targets
Smooth transitions between sections
4. Filter Automation (Synth Pads)
Auto Filter frequency sweeps
Range: 400-2000 Hz
Section-specific values
5. Progress Tracking
Visual progress bar:
[======---] XX%Elapsed time: HH:MM format
Current section name and description
6. Error Recovery
Warnings for parameter errors
Continues execution despite failures
No crashes or hanging
āļø Partially Automated
Send Level Automation
Informational targets printed
Manual setup required in Ableton
Target values shown for each section
ā Manual Setup Required
Instrument Presets
Choose sounds in Ableton UI
Per-track configuration needed
Send Routing
Configure in Ableton mixer section
Manual sends to tracks 10-11
Effect Configuration
Reverb and delay parameters
Manually adjust for best results
š Documentation
Quick Reference
README.md(This file)Project overview
2-hour dub techno quick start
File structure
DUB_TECHNO_2H_OVERVIEW.mdDetailed project overview
Section timeline
Track and clip descriptions
DUB_TECHNO_2H_COMPLETE_GUIDE.mdConfiguration guide
Instrument preset settings
Effect parameters
Send routing setup
Mix level targets
Automation strategies
DUB_TECHNO_2H_AUTOMATION_DOCS.mdAutomation features documentation
Function descriptions
What's automated vs manual
DUB_TECHNO_2H_COMPLETE_SUMMARY.mdComplete project summary
File index
Statistics
Troubleshooting
š¼ Usage Examples
Basic Commands
Get Session Info:
python -c "import socket, json; s = socket.socket(); s.connect(('localhost', 9877)); s.send(json.dumps({'type': 'get_session_info', 'params': {}}).encode('utf-8')); print(json.loads(s.recv(8192).decode('utf-8'))); s.close()"Create Track:
python -c "import socket, json; s = socket.socket(); s.connect(('localhost', 9877)); s.send(json.dumps({'type': 'create_midi_track', 'params': {'index': -1}}).encode('utf-8')); print(json.loads(s.recv(8192).decode('utf-8'))); s.close()"Set Tempo:
python -c "import socket, json; s = socket.socket(); s.connect(('localhost', 9877)); s.send(json.dumps({'type': 'set_tempo', 'params': {'tempo': 126.0}}).encode('utf-8')); print(json.loads(s.recv(8192).decode('utf-8'))); s.close()"Start Playback:
python -c "import socket, json; s = socket.socket(); s.connect(('localhost', 9877)); s.send(json.dumps({'type': 'start_playback', 'params': {}}).encode('utf-8')); print(json.loads(s.recv(8192).decode('utf-8'))); s.close()"Run Full 2-Hour Automation
python auto_play_2h_dub_techno.pyšÆ Perfect For
š§ Deep listening and meditation - Hypnotic, evolving sounds
š§ Yoga or focused work - Background atmosphere
š» Creative coding or writing - Non-intrusive dub groove
š Late-night sessions - Long-form ambient/dub experience
šļø DJ sets and live performance - Source material for mixing
š§ Troubleshooting
Common Issues
"Could not connect to Ableton"
Make sure Ableton Live is open
Check Remote Script is loaded (Preferences ā Link, Tempo & MIDI ā Control Surface: AbletonMCP)
Verify Remote Script location
"Socket connection refused"
Restart Ableton Live
Re-run automation script
"Clips don't fire"
Verify all 48 clips were created
Re-run
create_2h_dub_techno.py
"Filter automation doesn't work"
Check Auto Filter device is on Track 7
May need to adjust device index in script
"No audible changes during automation"
Verify send routing is configured in Ableton
Check volume faders actually move in Ableton UI
Monitor CPU usage
š§ Advanced Features
High-Performance Mode (UDP Server)
For real-time parameter control with ultra-low latency:
# Install the hybrid server
cp -r Ableton-MCP_hybrid-server/AbletonMCP_UDP/ ~/Remote\ Scripts/AbletonMCP_UDP/
# Try the XY Mouse Controller example
cd experimental_tools/xy_mouse_controller
python mouse_parameter_controller_udp.pyThis demonstrates how to build:
Custom real-time controllers for Ableton
Expressive performance tools
Interactive music applications
ElevenLabs Voice Integration
This repository can be integrated with other MCP servers, such as one for ElevenLabs, to generate and import audio directly into your project.
š Project Statistics
Code:
Total scripts: 4 automation scripts
Total documentation: 5 Markdown files
Total lines: ~3,500+
2-Hour Dub Techno:
Total duration: 120 minutes (2 hours)
Total sections: 30
Total tracks: 12
Total MIDI clips: 48
Automation functions: 8 core functions
š¤ Contributing
Contributions are welcome! Please feel free to:
Report bugs
Suggest new features
Submit pull requests
Share your creations
š License & Credits
License: MIT License - see LICENSE for details
Built with:
Model Context Protocol - AI integration framework
ElevenLabs API - Professional voice generation
Ableton Live - Digital audio workstation
Inspired by: The original ableton-mcp project
š¢ Support & Community
GitHub Issues: Bug reports and feature requests
Discussions: Share your creations and get help
YouTube: Video demonstration
Share Your Creations
Tag me with your AI-generated experiments! I love seeing what the community creates:
YouTube | Instagram | Patreon | Website
Made with ā¤ļø for the music production community
If this project helps your creativity, consider giving it a ā star!
This server cannot be deployed
Maintenance
Related MCP Connectors
Score video & make music as an agent: 50+ AI instruments play your MIDI, audio, stems, Logic/Ableton
AI music production assistant ā audio profiling, AI mixing sessions, and service inquiries.
Autonomous music production for AI agents with MIDI generation, QC and provenance.
Generate AI images, videos, music, SFX & speech in any AI assistant. Results appear inline in chat.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Ableton Live to AI assistants through Model Context Protocol (MCP), enabling natural language control of music production tasks like track creation, MIDI editing, instrument loading, and playback control.15MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to control Ableton Live through natural language by querying tracks, analyzing sessions, and exporting stems via AbletonOSC integration.91MIT
- AlicenseNot gradedqualityDmaintenanceControl Ableton Live using natural language via AI assistants like Claude or Cursor.8MIT
- AlicenseNot gradedqualityCmaintenanceBridges AI assistants with Ableton Live, enabling real-time control, offline project analysis, version tracking, and rack/preset parsing for music production workflows.MIT