ableton-holland-mcp
Click on "Install 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-holland-mcpcapture audio from Ableton and analyze the key and tempo"
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 Holland MCP
Capture audio en direct depuis Ableton Live via VB-Cable et analyse musicale automatique avec librosa.
Architecture
┌─────────────────┐ Voicemeeter ┌──────────────┐
│ Ableton Live │────Virtual Input──▶│ Voicemeeter │
│ (audio engine) │ │ (mixer) │
└─────────────────┘ └──────┬───────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌────────────┐ ┌──────────────┐ ┌──────────────┐
│ Enceintes │ │ CABLE Input │ │ Casque / │
│ (Intel) │ │ (VB-Cable) │ │ Focusrite │
│ monitoring│ │ (capture) │ │ (optionnel) │
└────────────┘ └──────┬───────┘ └──────────────┘
│
▼
┌──────────────┐
│ CABLE Output │
│ (sounddevice)│
└──────┬───────┘
│
┌─────────┴─────────┐
▼ ▼
┌────────────┐ ┌──────────────┐
│ MCP server │ │ Dashboard │
│ (opencode) │ │ (Tkinter) │
└──────┬─────┘ └──────┬───────┘
│ │
▼ ▼
┌──────────────────────────┐
│ librosa (analyse) │
└────────────┬─────────────┘
▼
┌──────────────────────┐
│ data/analyses/ │
│ (.wav + .csv) │
└──────────────────────┘Related MCP server: io.github.peterkolbe/ableton-for-ai
Prérequis
| Logiciel | Rôle | |---|---|---| | Ableton Live 11+ | Station audio | | VB-Cable | Routage audio virtuel (capture) | | Voicemeeter (Vanilla ou Banana) | Mixeur virtuel (monitoring + routage) | | Python 3.12+ | Moteur d'analyse | | opencode | CLI agent MCP |
Installation
1. VB-Cable
Télécharger depuis vb-audio.com/Cable
Lancer
VBCABLE_Setup.exeen administrateurRedémarrer Windows
2. Voicemeeter
Télécharger depuis vb-audio.com/Voicemeeter
Lancer
VoicemeeterSetup.exeen administrateurRedémarrer Windows
3. Python
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt4. Configuration Voicemeeter
Lancer Voicemeeter (démarrer menu ou
C:\Program Files (x86)\VB\Voicemeeter\Voicemeeter.exe)Dans Hardware Out (colonne de droite) :
A1 → choisir tes enceintes (Intel Display Audio, Focusrite...)
A2 → choisir CABLE Input (VB-Audio Virtual Cable)
Dans Virtual Input (colonne de gauche) → laisser Voicemeeter VAIO par défaut
Régler les niveaux (A1 = monitoring, A2 = capture)
5. Configuration Ableton Live
Options → Preferences → Audio
Driver Type: MME / DirectX
Audio Output Device: Voicemeeter Virtual Audio Cable (ou Voicemeeter VAIO)
Audio Input Device: CABLE Output (VB-Audio Virtual Cable) (optionnel)
Activer "In/Out" dans la vue Session
6. AbletonMCP Remote Script
Le Remote Script AbletonMCP_Remote_Script.py (à la racine du projet) permet à ableton-mcp de communiquer avec Ableton Live via socket.
Installation
Copie
AbletonMCP_Remote_Script.pyet renommer dans le dossier des Remote Scripts d'Ableton :
--> "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCP_init_.py"
copy /Y "C:\Users\admin\dev\ableton-holland-mcp\AbletonMCP_Remote_Script.py" "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCP_init_.py"
copy /Y "ableton-mcp-extended\AbletonMCP_Remote_Script_init.py" "C:\ProgramData\Ableton\Live 12 Lite\Resources\MIDI Remote Scripts\AbletonMCPExtended_init.py"
Lance Ableton Live → Options → Preferences → Link, Tempo & MIDI
Dans Control Surface, sélectionne "AbletonMCP"
Mets Input et Output sur "None"
Redémarre Ableton
Le script se trouve aussi dans le dépôt GitHub original : ahujasid/ableton-mcp/AbletonMCP_Remote_Script
7. Configuration opencode
{
"mcp": {
"ableton-full": {
"type": "local",
"command": [".venv/Scripts/python", "ableton_full_mcp_server.py"],
"enabled": true
}
}
}Le serveur ableton-full (unifié) remplace les deux anciens serveurs (ableton-mcp + music-analysis). Un seul process, outils atomiques comme capture_at_position.
Outils MCP disponibles (128 tools)
Tous les indices sont 0-based (track_index=0 = première piste après Master).
Session / Transport
Tool | Description |
| Tempo, signature, track count, playback state |
| Changer le tempo |
| Démarrer / arrêter |
| Seek + play atomique (Live reset le temps au |
| Positionner le playhead |
| Métronome on/off |
| Record on/off |
| Tempo nudge |
| Signature rythmique |
| Vue Arrangement |
Pistes
Tool | Description |
| Nouvelle piste MIDI (fin de liste) |
| Renommer |
| Supprimer par index ou nom |
| Dupliquer |
| Sélectionner dans l'UI |
| Nom, devices, clip slots, volume, pan |
| Couleur (0–255) |
| Vérifier si supression possible |
Clips Session
Tool | Description |
| Nouveau clip MIDI |
| Importer audio (Live 12.0.5+) |
| Ajouter notes MIDI |
| Lire notes MIDI |
| Nommer |
| Lancer / arrêter |
| Dupliquer |
| Quantifier |
| Supprimer |
| Couleur (0–255) |
Arrangement
Tool | Description |
| Lister clips |
| Lire notes MIDI |
| Écrire notes MIDI |
| Supprimer clip |
| Renommer |
| Copier session → arrangement |
| Copier session → arrangement (bar/beat) |
| Créer clip MIDI arrangement |
| Placer fichier audio |
| Boucle arrangement |
| Gain clip audio (dB) |
| Pitch (semitones/cents) |
| Warp (0=beats..5=complex-pro) |
| Marqueurs (beats) |
Mixer
Tool | Description |
| Volume (0.85 = 0 dB) |
| Volume + pan actuels |
| Pan |
| Solo / mute |
| Envois |
| Monitoring |
| Crossfader |
| Groove global |
Master
Tool | Description |
| Infos master (volume, pan, devices) |
| Volume master |
| Pan master |
| Paramètres d'un device master |
| Modifier paramètre master |
| Charger effet sur master |
Browser / Instruments
Tool | Description |
| Arborescence complète |
| Catégories |
| Items d'un chemin |
| Un item spécifique |
| Items à un chemin |
| Charger instrument/effet par URI |
| Charger plugin VST/AU par nom |
| Lister plugins externes |
| Charger drum rack + kit |
Devices
Tool | Description |
| Lire tous les paramètres |
| Modifier un paramètre |
| Supprimer un device |
| Activer / bypasser |
| Preset suivant/précédent |
| Chaînes dans un rack |
| Pads remplis dans un Drum Rack |
Cue Points
Tool | Description |
| Lister tous les cue points |
| Créer un cue point |
| Supprimer un cue point |
| Sauter au suivant/précédent/par nom |
Vue
Tool | Description |
| Changer de vue (Arranger, Session, Detail, Browser...) |
| Zoom, scroll, follow, collapse/expand |
Automation / Enveloppes
Tool | Description |
| Lire envelope |
| Écrire courbe d'automation |
| Créer / effacer enveloppes |
| Ajouter un point |
| Effacer enveloppe |
| Diagnostic exhaustif |
| Tests automatisés |
| Dump complet état |
| Test signatures |
Routing
Tool | Description |
| Routing entrée/sortie |
| Source d'entrée |
| Destination sortie |
Projet / Système
Tool | Description |
| Sauvegarder (non dispo Live 12 Lite) |
| Annuler / rétablir |
| Freeze / flatten |
| Créer / lancer une scene |
| CPU average + peak |
| Version Live + build ID |
| Tempo follower |
| Control surfaces actives |
| Message dans la barre d'état |
| Hot-reload du Remote Script |
Capture & Analyse Audio
Tool | Description |
| Capture + analyse complète en un appel |
| Charger fichier audio |
| Tout-en-un : key, energy, spectral, tempo, tuning |
| RMS, peak, dynamic range |
| Centroid, rolloff, bandwidth, ZCR |
| Cents offset |
| Tonalité (Krumhansl-Kessler) |
| BPM |
| Durée secondes |
| Temps forts |
| Chromagram (12 notes) |
| Timbre / texture spectrale |
Structure du projet
ableton-holland-mcp/
├── data/
│ ├── tests/ # Fichiers audio de test (.wav, .mp3)
│ ├── analyses/ # Résultats d'analyse (.wav + .csv)
│ └── scripts/ # Scripts utilitaires
├── dashboard/
│ └── app.py # Interface graphique (Tkinter + matplotlib)
├── ableton_full_mcp_server.py # Serveur MCP UNIFIÉ (Ableton + analyse)
├── AbletonMCP_Remote_Script.py # Remote Script Ableton (à copier)
├── music_analysis_plus.py # Serveur analyse standalone (legacy)
├── ableton_mcp_server.py # Serveur Ableton standalone (legacy)
├── opencode.jsonc # Configuration MCP
├── requirements.txt # Dépendances Python
├── AGENTS.md
├── SPEC.md
├── .gitignore
└── README.mdÉcouter le monitoring audio
Quand Ableton envoie son audio vers VB-Cable → plus de son dans les enceintes. Solutions :
Méthode 1 : Windows "Listen to this device"
Panneau de configuration → Son → Enregistrement
Double-clic sur "CABLE Output (VB-Audio Virtual Cable)"
Onglet "Écouter" → cocher "Écouter ce périphérique"
Choisir Focusrite / enceintes dans la liste déroulante
Appliquer
Avantage : sans logiciel supplémentaire. Inconvénient : léger décalage (latence WDM).
Méthode 2 : Voicemeeter (recommandée)
Route l'audio d'Ableton vers plusieurs sorties simultanément.
Configuration
Lance Voicemeeter
Hardware Out (colonne de droite) :
A1 → enceintes (Intel Display Audio, Focusrite...)
A2 → CABLE Input (VB-Audio Virtual Cable)
Virtual Input → Ableton envoie sur Voicemeeter VAIO
Ajuste les volumes (A1 = ce que tu entends, A2 = niveau envoyé à la capture)
Routage final
Ableton → Voicemeeter VAIO → A1: Enceintes (monitoring)
→ A2: CABLE Input → CABLE Output → captureAvantage : monitoring temps réel, contrôle du mix, pas de latence supplémentaire. Remarque : la capture MCP continue d'écouter sur CABLE Output — inchangé.
Méthode 3 : Dashboard Python
Bouton Playback dans le dashboard après chaque capture :
python dashboard/app.pyMéthode 4 : Console Python / MCP
# Dans le dashboard
from dashboard.app import AudioAnalyzer
audio, sr = AudioAnalyzer.capture(device_id, duration)
AudioAnalyzer.save_audio(audio, sr, "mon_capture")
# Dans le serveur MCP
play_wav("data/analyses/mon_capture.wav")Dashboard graphique
Interface native Windows (Tkinter + matplotlib, zéro dépendance supplémentaire).
python dashboard/app.pyFonctionnalités
Section | Contrôle |
Périphérique | Menu déroulant pour choisir la source audio (CABLE Output, Focusrite...) |
Capture | Spinbox durée (1-60s) + bouton 🎤 Capturer |
Playback | Bouton 🔊 Playback pour réécouter la dernière capture |
Fichier | Parcourir → sélection fichier dans |
Visualisation | Chroma CQT (heatmap) + Waveform avec onsets (lignes rouges) |
Résultats | Durée, tempo BPM, nombre d'onsets |
Architecture du code
dashboard/app.py contient deux classes :
AudioAnalyzer— capture (sounddevice), analyse (librosa), sauvegarde (soundfile)Dashboard— interface Tkinter, appelleAudioAnalyzerdans un thread séparé
Prochaines étapes
Itération 3 — Monitoring temps réel avec Voicemeeter ✅
Installer et configurer Voicemeeter
Router Ableton → Voicemeeter → enceintes (monitoring) + CABLE Input (capture)
Valider la capture MCP inchangée
Documenter le setup final
Itération 4 — Analyse avancée
Détection de la tonalité / key detection (
librosa.feature.tonnetz)Analyse harmonique (accords)
Détection de genre / voix
Itération 5 — Améliorations pipeline
Interface web Streamlit (dashboard plus riche, graphiques interactifs Plotly)
Streaming continu (capture + analyse en boucle, metronome visuel)
Whisper / transcription automatique des paroles (si voix)
Export des résultats en JSON structuré
A etudier
Customize Ableton Live with the Live API https://www.youtube.com/watch?v=Hfq-NXEhmzs
Ableton free packs https://www.ableton.com/en/packs/#?item_type=free
Future Explorations. Voir pour combiener avec un VCVRack MCP comme https://community.vcvrack.com/t/mcp-server-let-claude-cursor-build-and-control-your-rack-patches-live/25607
autre MCP ableton : https://github.com/adamjmurray/producer-pal#readme
Dépannage
"CABLE Output not found"
→ Vérifier que VB-Cable est installé et qu'Ableton n'est pas en mode ASIO
Capture silencieuse
→ Vérifier qu'Ableton joue bien sur la sortie "CABLE Input" → Vérifier que la piste n'est pas en mute/solo → Vérifier le volume Master
Timeout MCP
→ Le serveur utilise async def + await asyncio.sleep() pour la capture
→ Si timeout : réduire la durée de capture ou vérifier les logs du serveur
Device busy
→ Ableton est en mode ASIO. Passer en MME/DirectX dans les préférences Ableton
Voicemeeter ne s'affiche pas dans Ableton
→ Redémarrer Voicemeeter et/ou Ableton. Vérifier que le service Voicemeeter est lancé (icône dans la barre des tâches).
Pas de son dans les enceintes (Voicemeeter)
→ Vérifier que A1 est bien assigné à un périphérique physique dans Voicemeeter → Vérifier le niveau du slider A1 → Vérifier le bouton Mute sur la colonne Virtual Input
Capture silencieuse avec Voicemeeter
→ Vérifier que A2 pointe bien vers CABLE Input → Vérifier le niveau du slider A2 → Vérifier que VB-Cable est installé
Notes de version
Itération 5 (28 juin 2026) — Serveur unifié + capture atomique
Serveur unifié
ableton_full_mcp_server.py(remplaceableton-mcp+music-analysis)capture_at_position(position, duration)— stop → switch → play at position → capture → stop → loadcapture_and_analyze(position, duration)— capture + analyse en un appelFix
start_playback_at:start_playing()PUIScurrent_song_time = X(Live reset le temps au démarrage)Fix
load():np.mean(audio, axis=1)au lieu delibrosa.to_mono()(inversion canaux)Documentation mise à jour (README, AGENTS, SPEC)
Itération 4 (24 juin 2026) — Remote Script arrangement
Mise à jour du Remote Script Ableton (v1314 lignes) avec support Arrangement View
Remote Script copié à la racine du projet (
AbletonMCP_Remote_Script.py)Documentation de l'installation du Remote Script dans le README
Commandes arrangement :
switch_to_arrangement_view,duplicate_to_arrangement,set_arrangement_time,get_arrangement_clips
Itération 3 (24 juin 2026) — Monitoring temps réel
Voicemeeter installé et configuré (A1 = enceintes, A2 = CABLE Input)
Monitoring en temps réel sans latence supplémentaire
Documentation du routage Voicemeeter
Itération 2 (24 juin 2026) — Stabilisation
Capture sauvegardée dans
data/analyses/avec timestampDashboard graphique Tkinter (capture, analyse, visualisation, playback)
Documentation complète (README, requirements.txt, .gitignore)
Export WAV + CSV organisé dans
data/
Itération 1 (20 juin 2026) — Première version
Serveur MCP
music_analysis_plus.pyavec capture asyncAnalyse tempo, chroma CQT, MFCC, beats
Fix timeout MCP (
async def+await asyncio.sleep())
Licence
MIT
other mcp
human voice
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Ableton Live that exposes the Live Object Model to LLMs, enabling natural language control of music production.Last updated36534MIT
- AlicenseAqualityCmaintenanceMCP server that bridges Ableton Live with AI models, enabling real-time project inspection and control such as track overview, device parameters, and audio analysis.Last updated12MIT
- FlicenseBqualityDmaintenanceMCP server for controlling Ableton Live, enabling AI assistants to interact with Live sessions through tools for track/clip/scene management, playback control, and device parameter adjustments.Last updated48
- Alicense-qualityBmaintenanceAn MCP server that exposes Ableton Live control (session state, transport, tracks, devices, clips, MIDI note editing) as tools for LLM agents, enabling natural language manipulation of a Live session.Last updated1MIT
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/scenaristeur/ableton-holland-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server