Ableton Live MCP
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/mcpClaude 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等)发现。对象 id 会一直有效,直到对象被删除或移动,或重新加载了另一个 Live Set。失效的 id 会返回错误,提示客户端重新获取列表。
所有时间 / 位置均以拍为单位;颜色为
#RRGGBB;MIDI 音高为 0–127。多个值的写入(
parameter_set)会在 Live 中合并为单个撤销步骤。
工具
Song
工具 | 描述 |
| 获取 Live Set 状态:速度、调号、网格、轨道、返听/主轨道、场景、定位点、环境信息。它是入口点 —— 返回其他地方所需的部分 id。 |
| 设置歌曲属性(tempo)。 |
轨道
工具 | 描述 |
| 获取轨道详情:片段插槽 + 片段、take lane、编排片段、设备以及带参数的混音器。可通过 |
| 设置名称 / 启用静音 / 独奏 / 预备录音。 |
| 新建音频或 MIDI 轨道。 |
| 删除轨道。 |
| 轨道复制。 |
| 在拍范围内删除或截断编排片段。 |
| 为一条轨道新增 take lane。 |
| 重命名 take lane。 |
Scenes & cue points
工具 | 描述 |
| 管理场景。 |
| 管理编排区定位点。 |
Clips
工具 | 描述 |
| 在 Session 插槽(按 id 或 track + |
| 获取完整片段信息(音频:warp 设置和标记;MIDI:音符数量)。 |
| 设置名称、颜色、静音、循环、warp 开关、warp 模式。 |
| 删除 Session 片段或编排片段。 |
| 读取所有 MIDI 音符。 |
| 写入音符: |
| 服务端音符变换 —— 移调、时移、力度缩放/偏移、量化、删除 —— 并支持音高/时间范围选择。无需往返读写。 |
Devices & racks
工具 | 描述 |
| 设备详情:带范围和取值列表的参数( |
| 将内置 Live 设备插入到轨道或 rack 链中。 |
| 删除或复制设备。 |
| Rack 链详情:设备和链混音参数。 |
| 向 rack 中添加一条链。 |
| 设置一个 drum rack pad 的 MIDI 音符。 |
| 替换 Simpler 中的采样。 |
Parameters & mixing
工具 | 描述 |
| 批量读取设备/混音器参数值。 |
| 批量写入参数值(单个撤销步骤)。 |
| 读取音频 / 声像 / 发送的轨道或 chain 状态,连同参数 id 和单位提示。 |
| 一次调用(单个撤销步骤)设置 track 或 chain 的音量 / 声像 / 发送。 |
Files & rendering
工具 | 描述 |
| 将文件拷入 Live 工程。 |
| 将音频轨 pre-FX 的音频渲染为 WAV。 |
UI & commands
工具 | 描述 |
| 在 Live 内显示一个模态 HTML 对话框(向用户询问、展示报告)。 |
| 调用 Extension Host 命令,例如 |
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 loadedlive smoke test 会创建自己的轨道/Clip/设备,验证每一个工具族(MIDI notes、warping、drum racks、rendering……),然后删除它创建的所有内容。
Extension Host 的怪癖(值得了解)
本项目对 beta 版 Extension Host 的两个行为做了规避:
裸 VM 上下文。 扩展在没有任何
global或 web 全局对象(Request、Response、ReadableStream、fetch、EventTarget……)的 V8 上下文中执行,而 MCP SDK 在加载时需要这些对象。build.ts注入一段 banner,把全局对象从主 Node 上下文拉取进来(core-module 的函数是共享的,所以它们的Function构造函数会在那里进行求值)。详见build.ts。bigint 数值。 宿主会对一些 SDK 类型为
number的值返回bigint(clip 颜色、音符音高……)。src/serialize.ts会在算术/JSON 处理前用num()进行归一化。异步写入。 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_get的environment.storage_directory下)——该文件只在启动时读取一次,所以之后要重启 Live。改动了 config.json 但没生效:配置只在扩展启动时读取。请重启 Live(或 dev Extension Host)。
许可证
本仓库中的代码采用 MIT 许可。vendor/ 下的 tarball(Ableton Extensions SDK 与 CLI)归 Ableton 所有,并受其自有许可约束(见 SDK 发行版中的 sdk/LICENSE.md)。
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
- AlicenseCqualityBmaintenanceA Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.237992MIT
- AlicenseAqualityAmaintenanceMCP server for Ableton Live that exposes the Live Object Model to LLMs, enabling natural language control of music production.36714MIT
- 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.48
- AlicenseNot gradedqualityBmaintenanceAn 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.1MIT
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.
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/ulm0/ableton-live-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server