Skip to main content
Glama
ulm0
by ulm0

Ableton Live MCP

一个为 Ableton Live 12 构建的 MCP 服务器,基于官方的 Ableton Extensions SDK。该 MCP 服务器以扩展形式运行在 Live 内部 —— 无需桥接进程,也无需 MIDI Remote 脚本。任何 MCP 客户端(Claude Code、Claude Desktop、Cursor 等)都可以通过 streamable HTTP 连接,并获得对 Live Set 的完整编程控制:轨道、片段、MIDI 音符、设备、参数、混音器、场景、warp、渲染等等。

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 或更高版本(支持 Extensions)

  • Node.js >= 24.14(仅用于构建)

Related MCP server: ableton-mind

安装

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

然后将 .ablx 文件拖放到 Live 中的 Settings → Extensions。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_getenvironment.storage_directory 下报告)。默认值:

{ "port": 8722 }

工作原理

  • 每个 Live 对象(轨道、片段、设备、参数等)都通过稳定的 object id 进行寻址,可通过列举工具(song_gettrack_getdevice_get 等)发现。

  • 对象 id 会一直有效,直到对象被删除或移动,或重新加载了另一个 Live Set。失效的 id 会返回错误,提示客户端重新获取列表。

  • 所有时间 / 位置均以为单位;颜色为 #RRGGBB;MIDI 音高为 0–127。

  • 多个值的写入(parameter_set)会在 Live 中合并为单个撤销步骤。

工具

Song

工具

描述

song_get

获取 Live Set 状态:速度、调号、网格、轨道、返听/主轨道、场景、定位点、环境信息。它是入口点 —— 返回其他地方所需的部分 id。include 只拉取选定的部分。

song_set

设置歌曲属性(tempo)。

轨道

工具

描述

track_get

获取轨道详情:片段插槽 + 片段、take lane、编排片段、设备以及带参数的混音器。可通过 track_idtrack_indextrack_name 指定;include 选择所需的部分。

track_set

设置名称 / 启用静音 / 独奏 / 预备录音。

track_create

新建音频或 MIDI 轨道。

track_delete

删除轨道。

track_duplicate

轨道复制。

track_clear_clips_in_range

在拍范围内删除或截断编排片段。

take_lane_create

为一条轨道新增 take lane。

take_lane_set

重命名 take lane。

Scenes & cue points

工具

描述

scene_create / scene_set / scene_delete / scene_duplicate

管理场景。

cue_point_create / cue_point_set / cue_point_delete

管理编排区定位点。

Clips

工具

描述

clip_create

在 Session 插槽(按 id 或 track + scene_index)、编排轨道或 take lane 中创建 MIDI 或音频片段。MIDI 片段可以直接传入内嵌 notes;创建时应用 name/color。音频文件会自动导入到 Live 工程中。

clip_get

获取完整片段信息(音频:warp 设置和标记;MIDI:音符数量)。

clip_set

设置名称、颜色、静音、循环、warp 开关、warp 模式。

clip_delete

删除 Session 片段或编排片段。

midi_clip_get_notes

读取所有 MIDI 音符。

midi_clip_set_notes

写入音符:replace 全部替换或 merge 叠加合并。

midi_clip_edit_notes

服务端音符变换 —— 移调、时移、力度缩放/偏移、量化、删除 —— 并支持音高/时间范围选择。无需往返读写。

Devices & racks

工具

描述

device_get

设备详情:带范围和取值列表的参数(parameter_filter 子串、include_valuesinclude_value_items)、rack 链(include_chain_devices 可内联 pad 设备)、Simpler 采样。

device_insert

将内置 Live 设备插入到轨道或 rack 链中。

device_delete / device_duplicate

删除或复制设备。

chain_get

Rack 链详情:设备和链混音参数。

rack_insert_chain

向 rack 中添加一条链。

drum_chain_set

设置一个 drum rack pad 的 MIDI 音符。

simpler_replace_sample

替换 Simpler 中的采样。

Parameters & mixing

工具

描述

parameter_get

批量读取设备/混音器参数值。

parameter_set

批量写入参数值(单个撤销步骤)。

mixer_get

读取音频 / 声像 / 发送的轨道或 chain 状态,连同参数 id 和单位提示。

mixer_set

一次调用(单个撤销步骤)设置 track 或 chain 的音量 / 声像 / 发送。

Files & rendering

工具

描述

import_file

将文件拷入 Live 工程。

render_track_audio

将音频轨 pre-FX 的音频渲染为 WAV。

UI & commands

工具

描述

show_dialog

在 Live 内显示一个模态 HTML 对话框(向用户询问、展示报告)。

execute_command

调用 Extension Host 命令,例如 ableton-live-mcp.status

Skills

skills/ableton-live/SKILL.md 是一个可安装的 agent skill,它可以教会 MCP 客户端如何更好地使用这些工具(id 发现流程、节拍 vs. 秒、音符编辑模式、设备工作流)。使用以下方式为 Claude Code 安装:

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

常见可让已经连接的 assistant 协助完成的事情:

  • “在一个 MIDI 轨道上创建一个 4 小节 House 鼓组 Pattern,并挂上 Drum Rack”

  • “用 Complex Pro 模式 warp 掉 Drums 轨道上的所有 clip”

  • “把 vocal bus 以外的track 都降低 3 dB”

  • “搭建一个歌曲骨架:intro、verse、chorus 场景,外加 locator”

  • “把 Simpler 中的 sample 换成 /path/to/kick.wav 并映射到 C1”

  • 扩展(以及 MCP 端点)只在 Live 打开时运行。

  • 只能插入 Live 内置设备;SDK 无法加载第三方插件。

  • 没有走带控制(播放/停止/录音)或 Clip 启动——Extensions API v1.0.0 不暴露这些功能;浏览器访问和参数自动化曲线也一样。

  • show_dialog 会阻塞,直到用户在 Live 中关闭对话框。

测试

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 smoke test 会创建自己的轨道/Clip/设备,验证每一个工具族(MIDI notes、warping、drum racks、rendering……),然后删除它创建的所有内容。

Extension Host 的怪癖(值得了解)

本项目对 beta 版 Extension Host 的两个行为做了规避:

  1. 裸 VM 上下文。 扩展在没有任何 global 或 web 全局对象(RequestResponseReadableStreamfetchEventTarget……)的 V8 上下文中执行,而 MCP SDK 在加载时需要这些对象。build.ts 注入一段 banner,把全局对象从主 Node 上下文拉取进来(core-module 的函数是共享的,所以它们的 Function 构造函数会在那里进行求值)。详见 build.ts

  2. bigint 数值。 宿主会对一些 SDK 类型为 number 的值返回 bigint(clip 颜色、音符音高……)。src/serialize.ts 会在算术/JSON 处理前用 num() 进行归一化。

  3. 异步写入。 SDK 属性 setter(notes、names、values)在 Live 应用更改之前返回;几十毫秒内的读操作可能得到旧状态。Agent 通常不会察觉,但先写后读的测试必须短暂重试(见 test/live-smoke.mjs 中的 eventually())。

另外:如果 dev Extension Host 崩溃,Live 可能拒绝下一次控制通道握手(“bring-up timed out”)——重启 Live,然后再次运行 npm start

故障排查

  • 端点无响应:运行 curl http://127.0.0.1:8722/health 检查。在 Live 中右键任意轨道——“Ableton Live MCP: Status”上下文菜单操作会显示扩展实际绑定的端点。

  • 端口已被占用:如果其他进程占用了配置的端口,服务器会把这个失败记录到 ExtensionHost.txt,并且不会启动。请在扩展的 config.json 中修改 port(路径显示在 song_getenvironment.storage_directory 下)——该文件只在启动时读取一次,所以之后要重启 Live。

  • 改动了 config.json 但没生效:配置只在扩展启动时读取。请重启 Live(或 dev Extension Host)。

许可证

本仓库中的代码采用 MIT 许可。vendor/ 下的 tarball(Ableton Extensions SDK 与 CLI)归 Ableton 所有,并受其自有许可约束(见 SDK 发行版中的 sdk/LICENSE.md)。

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