MCP · ABLETON LIVE · ИИ-АГЕНТ

Ableton MCP: как дать ИИ-агенту руль от Live

MCP-сервер отдаёт агенту прямой доступ к Live API — и тот собирает треки, клипы, ноты и цепочки эффектов обычным текстом. Разбираю, из чего это склеено, что реально работает и где начинает скрипеть.

Как поставить у себя

Весь код — в одном репозитории: github.com/marchitecht/ableton-mcp. Нужно положить Remote Script в Ableton и подключить MCP-сервер к своему ИИ-клиенту (Claude Desktop или Cursor). По шагам:

  1. Что нужно заранее: Ableton Live 10 или новее, Python 3.8+ и пакет-менеджер uv (на macOS — brew install uv).
  2. Склонировать репозиторий:
    git clone https://github.com/marchitecht/ableton-mcp
    cd ableton-mcp
  3. Поставить Remote Script в Ableton: создать папку AbletonMCP в каталоге MIDI Remote Scripts и скопировать туда AbletonMCP_Remote_Script/__init__.py из репозитория.
    # macOS — User Remote Scripts
    ~/Library/Preferences/Ableton/Live 12/User Remote Scripts/AbletonMCP/__init__.py
  4. Подключить MCP-сервер к ИИ-клиенту. Claude Desktop → Settings → Developer → claude_desktop_config.json:
    {
      "mcpServers": {
        "AbletonMCP": { "command": "uvx", "args": ["ableton-mcp"] }
      }
    }
    В Cursor — Settings → MCP → добавить команду uvx ableton-mcp.
  5. Открыть Ableton → Settings → Link, Tempo & MIDI. В блоке MIDI выбрать в столбце Control Surface значение AbletonMCP, а Input и Output оставить None — как на скрине ниже.
Ableton Settings → Link, Tempo & MIDI: AbletonMCP выбран как Control Surface, Input и Output — None
Ableton → Settings → Link, Tempo & MIDI: строка Control Surface = AbletonMCP, Input/Output = None.

Готово. Теперь ИИ-клиент видит Ableton — можно просить агента собрать трек прямо из чата. Дальше — как это устроено внутри.

Что это вообще такое

MCP (Model Context Protocol) — это стандартный способ показать модели набор инструментов: сервер объявляет функции, агент их вызывает. Ableton MCP — это такой сервер вокруг Ableton Live. С одной стороны у него JSON-инструменты для агента, с другой — мост в саму DAW через её родной механизм расширений (Remote Script) и Live Object Model.

Итог простой: я пишу «сделай хаус-грув 124 BPM, добавь трек с баса и накинь сайдчейн от кика» — а агент дёргает нужные вызовы и это появляется в проекте, а не в чате.

Как это устроено

Ключевой момент — Live не принимает команды по HTTP. Внутри неё живёт Python-Remote Script, который слушает локальный сокет и разговаривает с движком через Live API. MCP-сервер — это прослойка-переводчик между агентом и этим сокетом.

Агент Claude / LLM MCP-сервер инструменты Remote Script Python в Live Ableton Live Live API · LOM естеств. язык JSON-RPC socket
Команда идёт слева направо: текст → вызов инструмента → сокет в Live → правка в проекте.

Что агент реально умеет

Набор инструментов покрывает почти весь рутинный сетап сессии — то, на что руками уходят минуты кликов:

Суть. Агент хорош не в «напиши мне хит», а в лесах вокруг музыки: развернуть болванку трека, разложить грув по сетке, накидать роутинг — чтобы ты сел уже на готовый холст.

Как это выглядит в деле

Один текстовый запрос разворачивается в цепочку вызовов инструментов. Грубо — вот что происходит под капотом «сделай хаус-заготовку»:

# то, что превращается в вызовы MCP / what turns into MCP calls
set_tempo(124)
create_midi_track()                 # Drums
load_drum_kit("909 Core Kit")
add_notes_to_clip(track="Drums", notes=[
  {pitch:36, start:0.0, dur:0.25},   # kick / бочка
  {pitch:36, start:1.0, dur:0.25},
])
create_midi_track()                 # Bass
set_sidechain_source(track="Bass", src="Drums")

Я вижу результат сразу в Live, слушаю, и дальше уже правлю руками или следующим запросом — «кик пожёстче, бас на две октавы ниже».

Где начинает скрипеть

Зачем мне это

Тот же паттерн, что и в остальных моих заметках: агент + доменный API + понятные инструменты. Ableton здесь — просто ещё одна «предметная область», куда можно дотянуться через MCP, как Temporal дотягивается до маршрутов, а браузерный агент — до веба. Меняется API — не меняется подход.