Skip to main content
Glama
ilfafinni
by ilfafinni

AbletonMCP

Puente MCP (Model Context Protocol) para controlar Ableton Live 12 desde cualquier cliente MCP: opencode, Claude Desktop, Cursor, o tu propio agente.

No es una app cerrada. Es el protocolo + el puente: tú conectas tu agente y él maneja Live — pistas, clips, notas, devices, mixer, transporte, browser, automatización y arreglo.

┌──────────────────────────────────────────┐
│  Tu cliente MCP (opencode, Claude, …)    │
└────────────────┬─────────────────────────┘
                 │  MCP sobre HTTP  (127.0.0.1:9004/mcp)
┌────────────────▼─────────────────────────┐
│  bridge/mcp_http.py                      │
│    └── bridge/mcp_server.py  (56 tools)  │
└───────┬──────────────────────┬───────────┘
        │ MIDI Remote (TCP 9878)          │ UDP 9001→9002 (helper M4L)
┌───────▼──────────────┐   ┌───────────────▼────────────┐
│ midi-remote-script/  │   │ bridge/device_helper.amxd  │
│ AbletonMCP (en Live) │   │ (devices nativos, racks)   │
└──────────────────────┘   └────────────────────────────┘

Qué puedes hacer

56 herramientas, agrupadas:

Grupo

Herramientas

Conexión

ping, list_instances, select_instance

Sesión

list_song, get_device_parameters, set_parameter, set_track

Transporte

transport, set_tempo, get_tempo, set_metronome

Escenas y clips

get_scenes, fire_scene, fire_clip, create_clip

Pistas

create_track, create_midi_track, delete_track

Devices

insert_device, load_plugin, create_rack, chain_create_device, map_macro

Notas MIDI

add_notes, create_arrangement_clip, clip_to_arrangement

Arreglo

list_arrangement_clips, delete_arrangement_clip, set_follow_action

Automatización

automate_clip_param, clear_clip_param, get_clip_param_envelope

Browser

browser_list, browser_load

Análisis de audio

ableton_listen, analyze_clip, analyze_key, get_chords, get_groove, transcribe_file, separate_stems, compose_accompaniment, describe_sound, compare_mix

Memoria

session_summary, session_note, session_preference, global_memory_*

Related MCP server: ableton-mcp

Requisitos

Pieza

Versión

Ableton Live

11 o 12 (probado en 12 Suite)

Python

3.11 o 3.12 (evita 3.13)

Un cliente MCP

opencode, Claude Desktop, etc.

Instalación

1. El puente

git clone https://github.com/ilfafinni/ableton-mcp-bridge.git
cd ableton-mcp-bridge
pip install -r requirements.txt

Solo python-osc es imprescindible. El resto (librosa, basic-pitch, demucs) habilita las herramientas de análisis de audio; si no las instalas, el puente funciona igual y esas tools concretas devolverán error.

2. El MIDI Remote Script (la pieza clave)

Este script corre dentro de Live y es lo que permite crear clips y escribir notas (AbletonOSC no puede).

Windows:

.\install_midi_script.ps1

macOS / Linux:

cp -r midi-remote-script/AbletonMCP \
  ~/Music/Ableton/User\ Library/Remote\ Scripts/

Después, en Live: Preferencias → Link/Tempo/MIDI, y en Control Surface elige AbletonMCP. Debe aparecer el mensaje de que escucha en el puerto 9878.

3. (Opcional) El helper Max for Live

Solo necesario para devices nativos (Eq8, Compressor, DrumRack…). Para VSTs y plugins del browser no hace falta.

Arrastra bridge/device_helper.amxd a cualquier pista de Live.

4. Conectar tu cliente MCP

El puente habla MCP sobre HTTP. El endpoint es:

http://127.0.0.1:9004/mcp

Arranca el servidor:

python bridge/mcp_http.py

opencode — añade a tu opencode.json:

{
  "mcp": {
    "ableton": {
      "type": "remote",
      "url": "http://127.0.0.1:9004/mcp",
      "enabled": true
    }
  }
}

Claude Desktop — en claude_desktop_config.json:

{
  "mcpServers": {
    "ableton": {
      "type": "http",
      "url": "http://127.0.0.1:9004/mcp"
    }
  }
}

También funciona por stdio si tu cliente no soporta HTTP:

{
  "mcpServers": {
    "ableton": { "command": "python", "args": ["bridge/mcp_server.py"] }
  }
}

Autenticación

Por defecto el puente no pide token y escucha solo en 127.0.0.1, así que solo tu máquina puede hablarle.

Si quieres exigir token (recomendado si expones el puerto o usas la API móvil), define la variable de entorno antes de arrancar:

export ABLETON_MCP_TOKEN="tu-token-largo-aqui"
python bridge/mcp_http.py

Y manda el header x-ableton-token en cada petición.

El MIDI Remote Script busca el mismo token en bridge_token dentro de ~/.config/ableton-mcp/ (Linux/macOS) o %APPDATA%\ableton-mcp\ (Windows). Si no lo encuentra, no exige autenticación.

Servidor de análisis de audio (opcional)

python/audio_server.py expone análisis musical sobre HTTP (puerto 8787): tonalidad, acordes por compás, groove, transcripción a MIDI, separación de stems, y escucha del máster vía WASAPI loopback.

python python/audio_server.py

Es lo que alimenta las tools analyze_key, get_chords, ableton_listen, etc. Si no lo arrancas, el resto del puente funciona igual.

Ejemplos

En examples/ hay fragmentos listos para copiar: crear una canción completa, escribir notas relativas al clip (el detalle que más confunde), y automatizar un parámetro.

Notas importantes

  • add_notes usa tiempos relativos al inicio del clip, no absolutos. Es el error más común: pasar tiempos absolutos estira el clip en vez de rellenarlo.

  • Varias instancias de Live: cada una usa un puerto distinto (9878, 9879…). Usa list_instances y select_instance.

  • list_song tiene caché de 10 s y opciones para ahorrar tokens (track=N, compact=true, skip_values=true, depth=N).

Tests

python tests/test_bridge.py     # puente MCP con AbletonOSC simulado
python tests/test_quantize.py   # cuantización
python tests/test_amxd.py       # cableado del helper M4L

Los tests no necesitan Live abierto: levantan un AbletonOSC falso en 11000/11001 y un helper M4L falso en 9001/9002.

El chequeo final de test_bridge.py consulta el servidor de tempo (UDP 9003) del propio puente. Si el puerto está ocupado por otra instancia, ese último assert puede expirar; el resto pasa. Cierra cualquier mcp_http.py que tengas corriendo antes de lanzar los tests.

Arquitectura

Archivo

Rol

bridge/mcp_http.py

Servidor MCP sobre HTTP. Punto de entrada.

bridge/mcp_server.py

Las 56 tools y la traducción a OSC/TCP.

bridge/midi_remote_tcp.py

Cliente TCP hacia el script dentro de Live.

bridge/build_helper.py

Genera el helper M4L (device_helper.amxd).

midi-remote-script/AbletonMCP/

El Control Surface que corre dentro de Live.

python/audio_server.py

Análisis de audio y escucha del máster (opcional).

Licencia

MIT — ver LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    MCP 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.
    48
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI/LLM tools to Ableton Live through 440+ MCP tools spanning tracks, clips, devices, mixer, MIDI mapping, plugin management, video integration, setlists, performance monitoring, and audio analysis. Enables natural-language music production and real-time live show control, including scene firing, preset recall, and emergency stop.
    MIT