Skip to main content
Glama
ulm0
by ulm0

Ableton Live MCP

MCP-сервер для Ableton Live 12, построенный на официальном Ableton Extensions SDK. MCP-сервер запускается внутри Live как расширение — без процесса-моста и без MIDI Remote Scripts. Любой MCP-клиент (Claude Code, Claude Desktop, Cursor, ...) подключается по streamable HTTP и получает полный программный контроль над Live Set: треки, клипы, MIDI-ноты, устройства, параметры, микшер, сцены, варпинг, рендеринг и не только.

MCP client (Claude, ...) ──streamable HTTP──▶ http://127.0.0.1:8722/mcp
                                                      │
                                     Live Extension Host (Node.js)
                                                      │
                                              Ableton Live 12

Требования

  • Ableton Live 12.4.5 или новее (поддержка расширений)

  • Node.js >= 24.14 (только для сборки)

Related MCP server: ableton-mind

Установка

npm install
npm run package        # builds and produces Ableton-Live-MCP-<version>.ablx

Затем перетащите .ablx-файл на пункт Settings → Extensions в Live. MCP-эндпоинт запускается вместе с Live по адресу http://127.0.0.1:8722/mcp (GET /health — быстрая проверка).

Режим разработчика

Включите в Live Settings → Extensions → Developer Mode, затем:

npm start              # builds and runs the extension against the running Live

.env должен указывать на вашу установку Live, например:
EXTENSION_HOST_PATH=/Applications/Ableton Live 12 Beta.app.

Подключение клиента

Claude Code:

claude mcp add --transport http ableton-live http://127.0.0.1:8722/mcp

Claude Desktop (или любой клиент, поддерживающий только stdio) через mcp-remote:

{
  "mcpServers": {
    "ableton-live": {
      "command": "npx",
      "args": ["mcp-remote", "http://127.0.0.1:8722/mcp"]
    }
  }
}

Конфигурация

Порт хранится в config.json в каталоге хранилища расширения (папка создаётся при первом запуске; путь сообщается методом song_get в поле environment.storage_directory). По умолчанию:

{ "port": 8722 }

Как это работает

  • Каждый объект Live (трек, клип, устройство, параметр, ...) адресуется стабильным object id, который получается из инструментов листинга (song_get, track_get, device_get, ...).

  • Идентификаторы остаются валидными, пока объект не удалён или перемещён, либо пока не загружен другой Live Set. Устаревшие id возвращают ошибку, предлагающую клиенту повторить листинг.

  • Все временные позиции задаются в долях; цвета — #RRGGBB; MIDI notes — 0–127.

  • Записи нескольких значений (parameter_set) группируются в один шаг отмены внутри Live.

Инструменты

Композиция

Инструмент

Описание

song_get

Состояние Live Set: темп, тональность (scale), сетка, треки, return/main каналы, сцены, cue точки, информация об окружении. Это точка входа — возвращает id объектов, используемых во всех остальных инструментах. Параметр include запрашивает только выбранные разделы.

song_set

Устанавливает свойства композиции (темп).

Треки

Инструмент

Описание

track_get

Детали трека: клип-слоты и клипы, take lanes, клипы аранжировки, устройства, микшер со значениями. Адрес через track_id, track_index или track_name; include выбирает разделы.

track_set

Имя / mute / solo / arm.

track_create

Создаёт новый аудио- или MIDI-трек.

track_delete

Удалить трек.

track_duplicate

Дублировать трек.

track_clear_clips_in_range

Удаляет/обрезает клипы аранжировки в диапазоне долей.

take_lane_create

Добавляет take lane в трек.

take_lane_set

Переименовывает take lane.

Сцены и cue-точки

Инструмент

Описание

scene_create / scene_set / scene_delete / scene_duplicate

Управление сценами.

cue_point_create / cue_point_set / cue_point_delete

Управление локаторами аранжировки.

Клипы

Инструмент

Описание

clip_create

Создаёт MIDI- или аудио-клипы в слоте сессии (по id или track + scene_index), в треке аранжировки или take lane. MIDI-клипы принимают ноты напрямую в notes; name/color применяются при создании. Аудиофайлы импортируются в проект автоматически.

clip_get

Полная детализация клипа (аудио: настройки варпа и маркеры; MIDI: количество нот).

clip_set

Имя, цвет, mute, looping, warping, режим warp.

clip_delete

Удаляет клип сессии или аранжировки.

midi_clip_get_notes

Читает все MIDI-ноты.

midi_clip_set_notes

Записывает ноты: replace всё или fixed merge (поверх текущих).

midi_clip_edit_notes

Основные преобразования нот на сервере: транспозиция, сдвиг во времени, масштабирование/сдвиг velocity, квантование, удаление — с выбором по позиции высоты/нахождения. Без цикла «чтение-изменение-запись».

Устройства и рэки

Инструмент

Описание

device_get

Данные об устройстве: параметры с диапазонами/вариантами значений (parameter_filter, include_values, include_value_items), цепи раков (include_chain_devices — включает устройства цепей), семпл Simpler.

device_insert

Вставляет встроенное устройство Live в трек или цепь рэка.

device_delete / device_duplicate

Удаляет или копирует устройства.

chain_get

Детали цепи рэка: устройства и микшер цепочки.

rack_insert_chain

Добавляет цепь в рэк.

drum_chain_set

Устанавливает MIDI-ноту для пэда Drum Rack.

simpler_replace_sample

Заменяет сэмпл в Simpler.

Параметры и микширование

Инструмент

Описание

parameter_get

Читает значения параметров устройства/микшера (пакетно).

parameter_set

Записывает значения параметров (пакетно, одним шагом отмены).

mixer_get

Громкость/панорамы/отправки звуковой дорожки или цепочки с id параметров и подсказками по единицам.

mixer_set

Устанавливает громкость/панорамы/отправки трека или цепочки одним вызовом (один шаг отмены).

Файлы и рендеринг

Инструмент

Описание

import_file

Копирует файл в проект Live.

render_track_audio

Рендерит pre-FX-аудио трека в WAV.

Интерфейс и команды

Инструмент

Описание

show_dialog

Показывает модальный HTML-диалог внутри Live (задать вопрос пользователю, показать отчёты).

execute_command

Вызывает команды Extension Host, например ableton-live-mcp.status.

Навыки

skills/ableton-live/SKILL.md — это устанавливаемый навык агента, который обучает MCP-клиента правильному использованию этих инструментов: поиск id, доли против секунд, паттерны редактирования ноТ, рабочие процессы с устройствами. Установите его для Claude Code:

mkdir -p ~/.claude/skills && cp -r skills/ableton-live ~/.claude/skills/

Примеры типовых задач, которые можно попросить у подключённого ассистента:

  • «Создай 4-тактовый барабанный паттерн в стиле house на новом MIDI-треке с Drum Rack»

  • «Заваливардируй все клипы на дорожке Drums в режиме Complex Pro»

  • «Опусти на 3 дБ все треки, кроме вокальной шины»

  • «Собери каркас песни: intro, verse, chorus сцены с локаторами»

  • «Замени сэмпл в Simpler на /path/to/kick.wav и назначь его на C1»

Ограничения

  • Расширение (а значит, и MCP endpoint) работает, только пока открыт Live.

  • Вставить можно только встроенные устройства Live; сторонние плагины SDK загрузить не может.

  • Нет управления транспортом (play/stop/record) и запуска клипов — Extensions API v1.0.0 их не предоставляет. То же касается доступа к браузеру и кривых автоматизации параметров.

  • show_dialog блокируется до тех пор, пока пользователь не закроет диалог в Live.

Tests

npm test                  # E2E against a mock Extension Host: MCP client ↔ HTTP ↔ all tools
node test/live-smoke.mjs  # against a real running Live with the extension loaded

Смоук-тест Live создаёт собственные треки/клипы/устройства, проверяет все семейства инструментов (MIDI-ноты, варпинг, драм-рэки, рендеринг, ...) и удаляет всё, что создал.

Особенности Extension Host (полезно знать)

Две особенности бета-версии Extension Host, которые обходятся в этом проекте:

  1. Голый контекст VM. Расширения выполняются в контексте V8 без global и веб-глобалов (Request, Response, ReadableStream, fetch, EventTarget, ...), которые нужны MCP SDK при загрузке. build.ts вставляет баннер, который подтягивает их из основного контекста Node (функции core-модуля общие, поэтому их конструктор Function выполняется там). Подробности — в build.ts.

  2. Числовые значения bigint. Хост возвращает bigint для некоторых значений, которые SDK типизирует как number (цвета клипов, высота бот, ...). src/serialize.ts нормализует их с помощью num() перед арифметическими операциями/JSON.

  3. Асинхронные записи. Сеттеры свойств SDK (ноты, имена, значения) возвращают управление до того, как Live применит данные; чтение в течение десятков миллисекунд может вернуть прошлое. Агенты редко замечают это, но тестам «запись‑затем‑чтение» нужно повторять попытки (см. eventually() в test/live-smoke.mjs).

Также: если dev Extension Host упадёт, Live может отказать в следующем рукопожатии на канале управления ("bring-up timed out") — перезапустите Live и снова запустите npm start.

Troubleshooting

  • Endpoint не отвечает: проверьте curl http://127.0.0.1:8722/health. Щёлкните правой кнопкой мыши на любом треке в Live — действие контекстного меню "Ableton Live MCP: Status" показывает endpoint, к которому на самом деле привязалось расширение.

  • Порт уже занят: если другой процесс использует заданный порт, сервер записывает ошибку в ExtensionHost.txt и не запускается. Измените port в config.json расширения (путь отображён song_get в environment.storage_directory) — файл читается только один раз при запуске, поэтому после изменения перезапустите Live.

  • Изменил config.json, но ничего не произошло: конфиг читается только при запуске расширения. Перезапустите Live (или dev Extension Host).

Лицензия

MIT для кода в этом репозитории. Tarball-архивы vendor/ (Ableton Extensions SDK & CLI) являются собственностью Ableton и регулируются их собственной лицензией (см. sdk/LICENSE.md в дистрибутиве SDK).

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • 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
    B
    maintenance
    An 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.
    1
    MIT

View all related MCP servers

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 for Clipkit — gives AI agents a video toolbox via the Clipkit schema.

View all MCP Connectors

Latest Blog Posts

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/ulm0/ableton-live-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server