mcpField
R
REAPER MCP

REAPER MCP

本地服务
twelvetake.com媒体与设计97今天更新

关于 REAPER MCP

TwelveTake REAPER MCP 是一个 MCP 服务,让 AI 助手检查和控制 REAPER 项目,用于音频制作与 MIDI 工作。工具涵盖轨道、路由、FX、自动化和编辑操作,也提供多步骤制作工作流及测量功能。

主要功能

  1. 01轨道与项目控制
  2. 02FX、路由和自动化编辑
  3. 03MIDI 与音频素材编辑
  4. 04多步骤混音工作流工具
  5. 05响度与频谱测量
  6. 06可在 REAPER 中撤销的更改

适用场景

  1. 01设置侧链或并行压缩
  2. 02构建母带链或路由总线
  3. 03编辑 MIDI 音符和力度
  4. 04检查项目电平与频谱

MCP 相关

该 MCP 服务向兼容的 AI 客户端提供 REAPER 控制和分析工具。它通过邮箱目录中的 JSON 文件,与运行在 REAPER 内的 Lua 桥接脚本通信。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"com-twelvetake-reaper": {
"command": "uvx",
"args": [
"twelvetake-reaper-mcp"
]
}
}
}
启动命令uvx twelvetake-reaper-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypitwelvetake-reaper-mcp1.9.4

工具

179

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

TwelveTake REAPER MCP

TwelveTake Studios 的一个项目。

工具 请我喝咖啡 Ko-fi

安装指南、示例和常见问题 -> twelvetake.com/tools/reaper-mcp

已在 MCP Registry 中登记,名称为 mcp-name: com.twelvetake/reaper-mcp。

TwelveTake REAPER MCP 是一个模型上下文协议服务,可让 AI 助手控制 REAPER,完成混音、母带处理、MIDI 编曲和音乐制作。

版本: 1.9.3

为什么选择此服务

工作流工具

除了直接控制 REAPER 外,该服务还提供工作流工具,只需一次调用即可完成多步骤制作任务:

工具它能为你做什么
setup_sidechain_compression()创建发送,将信号路由到通道 3-4,并配置 ReaComp 的检测器输入——一次调用即可完成完整的侧链设置
add_mastering_chain()为主轨添加 ReaEQ → ReaComp → ReaEQ → ReaLimit,并设置正确的信号流
add_parallel_compression()创建总线轨,设置发送并添加压缩器——即可混合使用 NY 风格压缩
create_bus()创建子混音轨,并将指定轨道路由到该轨
get_project_summary()返回轨道数量、所有轨道的名称/音量/声像/FX、标记、区域、速度、拍号——AI 所需信息一应俱全,只需一次调用
零配置
  • 基于文件的通信可立即使用——无需设置网络,也无需配置端口
  • 仅需 REAPER 自带组件:桥接程序是一个普通的 Lua 脚本,分析器是一个 JSFX 插件,因此无需在 REAPER 中安装其他内容
  • 复制脚本、运行脚本,然后连接 AI 助手即可
180 个工具,满足实际制作需求
  • 全面的 FX 控制——添加/移除插件,按索引获取/设置任意参数,管理预设,旁通插件
  • FX 参数自动化——自动化任意插件旋钮(如镶边深度、滤波器截止频率等)
  • 完整路由——发送、接收,以及路由侧链信号到特定的通道对
  • 自动化——创建包络、添加/编辑节点、设置自动化模式
  • MIDI——创建片段,逐个或批量添加音符,编辑力度
  • MIDI 编辑——移调、带摇摆量化、人性化处理、按音阶吸附、拉伸、连奏、扫弦、力度渐变——每项操作均可按音高范围、节拍窗口或通道指定目标
  • 音频片段——导入、拆分、复制、淡化、定位、静音
  • 标记与区域——创建、编辑、导航,按区域渲染
  • 测量:测量主控、轨道或片段的响度、响度范围、真峰值、倍频程频谱和立体声相关性。它通过 EBU 用于响度、真峰值和响度范围的合成合规性信号测试。
  • 可撤销的编辑:AI 所做的每项更改在 REAPER 的撤销历史中都是一个带名称的步骤(“MCP: delete track”),因此在 REAPER 中按 Ctrl+Z,即可逐次撤销工具调用

要求

  • REAPER(任意近期版本;完整实时测试套件在 REAPER 7.79 中全部通过)
  • Python 3.10+(用于 MCP 服务)
  • 兼容 MCP 的 AI 助手

安装

1. 在 REAPER 中安装桥接脚本

桥接脚本是一个在 REAPER 内运行的 Lua 脚本。MCP 服务通过它操作你的项目。可通过以下三种方式之一安装。

选项 A:运行一条命令,然后在 REAPER 中运行一次

uvx twelvetake-reaper-mcp --install-bridge

此命令会将 reaper_mcp_bridge.lua 复制到适用于你平台的 REAPER Scripts 文件夹,并将测量工具使用的 JSFX 插件 TwelveTake MCP Analyzer 复制到 Effects/TwelveTake。如果那里已有另一份桥接脚本,会先备份该文件。除此之外不会写入任何内容,而且服务绝不会自行修改你的 REAPER 安装。若 REAPER 是便携版或安装在不常见的位置,请传入路径:--install-bridge "/path/to/REAPER/Scripts"。

接下来,在 REAPER 中加载脚本。打开 Actions → Show action list:

REAPER 的 Actions 菜单,其中 Show action list 已高亮显示

点击 New action → Load ReaScript:

打开 New action 菜单且 Load ReaScript 已高亮显示的操作列表

在 Scripts 文件夹中选择 reaper_mcp_bridge.lua,然后点击 Open:

REAPER 的 Scripts 文件夹中的 Load Script 对话框,已选中 reaper_mcp_bridge.lua

现在,脚本已出现在操作列表中。选中它并点击 Run:

已筛选出桥接脚本且可供运行的操作列表

桥接脚本会在后台运行,不会打开窗口,直到你关闭 REAPER。第 3 步会检查它是否正常工作。

下次使用时,可在操作列表的筛选框中输入 mcp bridge 找到它,或让 REAPER 自动启动它(见下文)。

选项 B:ReaPack

如果你使用 ReaPack,打开 Extensions → ReaPack → Import repositories:

REAPER 的 Extensions 菜单,其中 ReaPack 的 Import repositories 已高亮显示

然后粘贴此地址:

https://github.com/TwelveTake-Studios/reaper-mcp/raw/main/index.xml

ReaPack 的 Import repositories 对话框,已粘贴地址

接着打开 Extensions → ReaPack → Browse packages,找到 TwelveTake REAPER MCP bridge,右键点击它,选择 Install,然后点击 OK:

ReaPack 的软件包浏览器中,桥接脚本的 Install 已高亮显示

ReaPack 会将脚本添加到操作列表并安装分析器。按照选项 A 的说明从列表中运行脚本。

选项 C:手动安装

  1. 将 reaper_mcp_bridge.lua 复制到 REAPER 的 Scripts 文件夹:
    • Windows:%APPDATA%\REAPER\Scripts\
    • macOS:~/Library/Application Support/REAPER/Scripts/
    • Linux:~/.config/REAPER/Scripts/
  2. 将 twelvetake_mcp_analyzer.jsfx 复制到 Effects/TwelveTake/,与该 Scripts 文件夹相邻。测量工具需要它,其他功能则不需要。
  3. 按照选项 A 的说明加载并运行脚本。
随 REAPER 启动桥接脚本

REAPER 关闭时,脚本也会停止。若要让 REAPER 每次启动时都启动桥接脚本:

uvx twelvetake-reaper-mcp --install-bridge --autostart

此命令会在 REAPER Scripts 文件夹中的 __startup.lua 添加一个带标记的代码块,并在修改前备份该文件,同时保留文件中的其他内容。--remove-autostart 会移除此代码块。如果你通过 ReaPack 安装,请改为运行 uvx twelvetake-reaper-mcp --autostart;它会让 REAPER 使用 ReaPack 中的副本。

更新

从 1.7.8 开始,更新无需在 REAPER 中执行任何步骤:

uvx twelvetake-reaper-mcp@latest --install-bridge

正在运行的桥接脚本会自行加载新脚本,并通过命令告知你,例如:

The running bridge reloaded itself: 1.7.8 -> 1.7.9.

使用 ReaPack 时,Extensions → ReaPack → Synchronize packages 会获取新脚本。它会在桥接脚本下次启动时运行,或通过 uvx twelvetake-reaper-mcp --reload-bridge 立即运行。如果桥接脚本版本过旧,无法满足服务的要求,服务也会要求正在运行的桥接脚本重新加载。

从 1.7.7 或更早版本更新时,仍需执行最后一个手动步骤:安装脚本后,在 REAPER 中再次运行它。

2. 安装并配置 MCP 服务

该服务已发布到 PyPI,名称为 twelvetake-reaper-mcp。最简单的方法是让你的 MCP 客户端通过 uvx(或 pipx)启动它——无需手动安装任何内容。

将它添加到 MCP 客户端的配置中(例如 .mcp.json 或客户端的 MCP 设置):

{
  "mcpServers": {
    "reaper": {
      "command": "uvx",
      "args": ["twelvetake-reaper-mcp"]
    }
  }
}

VS Code 使用顶层 servers 键和 "type": "stdio",而不是 mcpServers。

若要确认服务可以自行启动:

uvx twelvetake-reaper-mcp
# or: pipx run twelvetake-reaper-mcp

它会安静地等待客户端连接——按 Ctrl+C 停止。

3. 验证

打开 REAPER 并运行桥接脚本后,询问你的助手 “我的项目中有多少条轨道?”——如果得到一个数字,就表示服务、桥接脚本和 REAPER 已成功通信。


从源代码运行(用于开发)

若要开发服务本身,请从克隆的仓库运行,而不是从 PyPI 运行。安装依赖项:

pip install -r requirements.txt   # or: pip install "mcp>=1.2.0,<2.0"

让 MCP 客户端指向本地脚本:

{
  "mcpServers": {
    "reaper": {
      "command": "python",
      "args": ["path/to/reaper_mcp_server.py"]
    }
  }
}

然后通过以下命令检查连接:

python test_connection.py
Nix flake(可选)

如果你使用 Nix,仓库提供了基于 flake 的开发 Shell,其中包含 Python 3.12,并会为你创建和激活虚拟环境:

# Enter the dev shell manually
nix develop

# Or, with direnv, auto-activate on cd:
direnv allow

然后按常规方式安装依赖项:

pip install -r requirements.txt

这会固定 Python 版本,并将依赖项与系统环境隔离。

注意:x86_64-linux 开发 Shell 已经过测试并可正常运行。macOS(Darwin)Shell 已提供,但尚未经过测试——欢迎 macOS 用户确认其可用性。

通信方式

服务和桥接脚本会在邮箱目录中交换 JSON 文件。桥接脚本在 REAPER 内部轮询该目录。无需配置网络,也无需开放端口。

MCP Server                    REAPER Bridge
    │                              │
    ├── writes request_N.json ────►│
    │                              ├── processes request
    │◄── reads response_N.json ────┤

**桥接目录:**REAPER 自身的 Scripts/mcp_bridge_data,按平台解析路径:

平台路径
Windows%APPDATA%\REAPER\Scripts\mcp_bridge_data
macOS~/Library/Application Support/REAPER/Scripts/mcp_bridge_data
Linux~/.config/REAPER/Scripts/mcp_bridge_data(较旧的安装版本使用 ~/.reaper/...)

便携式安装可通过 REAPER_BRIDGE_DIR 覆盖该路径。服务启动时会将解析后的目录打印到 stderr,并在任何超时错误中包含该目录。

随附的 HTTP 传输已在 v1.7.2 中移除。它自 v1.2.1 起就已弃用,而且其请求解析器始终无法读取 POST 请求体,因此传递给它的调用从未到达 REAPER。REAPER_COMM_MODE 不再起任何作用。

快速入门示例

基本轨道操作
"How many tracks are in my project?"
"Create a new track called 'Vocals'"
"Set track 0 volume to -6dB"
"Mute track 2"
"Solo the drums track"
混音
"Add ReaComp to the bass track"
"Set up sidechain compression from the kick to the bass"
"Create a drum bus and route tracks 0-3 to it"
"Add a mastering chain to the master track"
效果器和参数
"What plugins are on track 0?"
"Get the parameters for the compressor on track 1"
"Set the threshold to -20dB"
"Bypass the EQ on the vocal track"
MIDI 编曲
"Create a 4-bar MIDI item on track 0"
"Add a C major chord at the start"
"Get all the notes in the MIDI item"
"Set the velocity of note 0 to 100"
播放控制和导航
"Play the project"
"Stop playback"
"Set the cursor to 30 seconds"
"Add a marker called 'Chorus' at the current position"
项目管理
"What's the project tempo?"
"Set the tempo to 120 BPM"
"Save the project"
"Render to D:/Output/mix.wav"

工具参考

轨道操作(23 个工具)
工具描述
get_track_count()获取轨道总数(不包括主轨道)
get_track(index)获取轨道信息(名称、音量、声像、静音、独奏)
get_all_tracks()获取所有轨道的信息
get_master_track()获取主轨道信息
insert_track(index, name)创建新轨道
create_click_track(start, end, name)添加跟随速度映射的节拍轨道
delete_track(index)删除轨道
set_track_name(index, name)重命名轨道
set_track_volume(index, db)设置音量(dB)
set_track_pan(index, pan)设置声像(-1 至 1)
set_track_mute(index, mute)静音/取消静音轨道
set_track_solo(index, solo)独奏/取消独奏轨道
set_track_phase(index, invert)反转相位
set_track_width(index, width)设置立体声宽度(0-2)
set_track_color(index, r, g, b)设置轨道颜色
get_track_peak(index, channel)获取当前峰值电平(dB)
get_track_peak_hold(index, channel)获取上次重置以来保持的峰值(dB)
clear_all_peak_indicators()重置所有轨道的峰值保持值
get_track_master_send(index)获取主轨道/父轨道发送状态
set_track_master_send(index, enabled)启用/禁用主轨道发送
set_track_as_folder(index, depth)设置为文件夹父轨道/子轨道
arm_track(index, arm)启用轨道录音准备
set_track_input(index, input)设置录音输入
set_track_monitor(index, mode)设置监听模式
FX 操作(16 个工具)
工具描述
track_fx_get_count(index)统计轨道上的 FX 数量
track_fx_get_list(index)列出所有 FX 及其详细信息
track_fx_add_by_name(index, name, position?)添加 FX 插件(可选指定位置)
track_fx_move(index, fx_index, new_position)调整 FX 链中的顺序
track_fx_delete(index, fx_index)移除 FX
track_fx_get_name(index, fx_index)获取 FX 名称
track_fx_get_enabled(index, fx_index)检查是否已启用
track_fx_set_enabled(index, fx_index, enabled)启用/旁通 FX
track_fx_get_num_params(index, fx_index)统计参数数量
track_fx_get_param_name(index, fx_index, param)获取参数名称
track_fx_get_param(index, fx_index, param)获取参数值
track_fx_set_param(index, fx_index, param, value)设置参数值
get_fx_presets(index, fx_index)列出可用预设
get_fx_preset(index, fx_index)获取当前预设
set_fx_preset(index, fx_index, name)加载预设
save_fx_preset(index, fx_index, name)不支持:始终返回错误,因为 REAPER 的 API 无法保存命名的 FX 预设
ReaEQ 操作(5 个工具)

使用 REAPER 专用的 EQ API 控制 ReaEQ 频段,该 API 可以正确处理 ReaEQ 的 非线性参数曲线(dB 增益、对数频率、对数 Q 值)。

工具描述
find_eq(track, instantiate?)查找轨道上的 ReaEQ(可选择添加)
get_eq_bands(track, fx)读取所有 ReaEQ 频段及易读的数值
set_eq_band(track, fx, bandtype, bandidx, paramtype, value, is_normalized?)设置频段参数(Hz、dB 或 Q)
get_eq_band_enabled(track, fx, bandtype, bandidx?)检查频段是否已启用
set_eq_band_enabled(track, fx, bandtype, bandidx?, enabled?)启用/禁用频段
单次 FX 操作(11 个工具)

单次(每个项目)FX,与轨道 FX 工具相对应。每个单次通过 (track_index, item_index, take_index) 寻址。

工具描述
take_fx_get_count(track, item, take)统计单次上的 FX 数量
take_fx_get_list(track, item, take)列出单次上的所有 FX 及其详细信息
take_fx_add_by_name(track, item, take, name)向单次添加 FX 插件
take_fx_delete(track, item, take, fx)移除单次上的 FX
take_fx_get_name(track, item, take, fx)获取单次 FX 名称
take_fx_get_enabled(track, item, take, fx)检查是否已启用
take_fx_set_enabled(track, item, take, fx, enabled)启用/旁通单次 FX
take_fx_get_num_params(track, item, take, fx)统计参数数量
take_fx_get_param_name(track, item, take, fx, param)获取参数名称
take_fx_get_param(track, item, take, fx, param)获取参数值
take_fx_set_param(track, item, take, fx, param, value)设置参数值
单次管理与 Comping(7 个工具)

多单次工作流:列出/切换/删除单次、分解/裁剪,以及 REAPER 7 固定音轨 Comping。

工具描述
get_takes(track, item)列出所有单次(名称 + 激活标记)
get_active_take(track, item)获取当前激活的单次索引
set_active_take(track, item, take)切换播放的单次
explode_takes(track, item)将单次分解为重叠项目(原位)
crop_to_active_take(track, item)仅保留当前激活的单次
delete_take(track, item, take)删除指定单次
select_comp_lane(track, lane)独占播放一个固定音轨(音轨 Comping)
路由(9 个工具)
工具描述
create_send(src, dest)在轨道之间创建发送
delete_send(index, send_index)移除发送
set_send_volume(index, send_index, db)设置发送电平
get_track_num_sends(index)统计轨道的发送数量
set_send_dest_channels(index, send_index, chan)路由到指定通道
set_send_source_channels(index, send_index, chan)设置源通道
setup_sidechain_send(src, dest, db)创建侧链发送
configure_reacomp_sidechain(index, fx_index, use)配置 ReaComp 侧链
setup_sidechain_compression(trigger, target, fx, db)完整配置侧链
传输控制(10 个工具)
工具描述
play()开始播放
stop()停止播放
pause()暂停播放
record()开始录音
get_play_state()获取当前状态(播放/暂停/录音)
get_cursor_position()获取编辑光标位置(秒)
set_cursor_position(seconds)移动编辑光标
get_play_position()获取播放位置(秒)
toggle_repeat()切换循环模式
get_repeat_state()检查是否正在循环
项目(15 个工具)
工具描述
get_project_summary()一次调用即可获取完整的项目状态
save_project()保存当前项目
create_project()创建新项目(REAPER 无法为未保存的项目命名)
open_project(path)打开项目文件
get_project_path()获取项目目录
get_project_name()获取项目文件名
get_project_length()获取项目长度(秒)
get_tempo()项目起始处的速度(BPM),以及所有速度标记
set_tempo(bpm)设置项目速度
get_time_signature()获取拍号
set_time_signature(num, denom)设置拍号
render_project(path, start, end, tail, skip_postprocessing)渲染为音频文件;列出项目的归一化、淡化和其他处理,或跳过这些处理
render_region(index, path)尚未实现:始终返回错误;请使用 render_project 并指定区域的起点和终点
zoom_to_selection()缩放至时间选区
zoom_to_project()缩放以显示整个项目
MIDI 操作(8 个工具)
工具描述
create_midi_item(track, pos, length)创建空 MIDI 乐段
get_midi_item(track, item)获取 MIDI 乐段信息
add_midi_note(track, item, pitch, vel, start_beat, length_beats, chan)添加单个音符(拍)
add_midi_notes_batch(track, item, notes)添加多个音符
get_midi_notes(track, item)获取所有音符
delete_midi_note(track, item, note)删除一个音符
clear_midi_item(track, item)删除所有音符
set_midi_note_velocity(track, item, note, vel)更改音符力度
MIDI 实用工具(14 个工具)

用于编辑现有音符的工具。每个工具都接受相同的可选筛选条件——音高范围、以乐段起点为基准的拍数起音区间,以及通道——因此无需手动选择即可定位某个乐句。时间单位为拍,音高单位为半音。每项操作都会生成一个撤销步骤。

工具描述
transpose_midi_notes(track, item, semitones, ...)移动音高;超出 0-127 范围的音符保持不变,不会循环
snap_midi_notes_to_scale(track, item, root, mode, ...)将不在调内的音符移至音阶音上(支持命名音阶或自定义音程列表)
quantize_midi_notes(track, item, grid, strength, swing, ...)将起音对齐到项目网格,并可设置力度和摇摆
nudge_midi_notes(track, item, amount_beats, ...)在时间上移动音符;保持时值不变
stretch_midi_notes(track, item, factor, pivot_beat, ...)以枢轴拍为基准缩放时值(半速 / 双倍速)
legato_midi_notes(track, item, mode, voice, ...)消除乐句中的间隙,或将所有音符设为相同时值
humanize_midi_notes(track, item, timing, velocity, seed, ...)通过指定种子生成可复现的时间和力度抖动
strum_midi_notes(track, item, spread_beats, direction, ...)将和弦展开为扫弦
ramp_midi_note_velocities(track, item, start_vel, end_vel, ...)在乐句中线性渐变力度(渐强)
scale_midi_note_velocities(track, item, mode, ratio, ...)乘算、设置或压缩力度
set_midi_note(track, item, note, ...)编辑单个音符的音高、力度、时间和通道
get_selected_midi_notes(track, item)读取 REAPER 编辑器中选中的音符
select_midi_notes(track, item, ...)选择符合音高 / 拍数 / 通道筛选条件的音符
remove_overlapping_midi_notes(track, item, mode, ...)修剪或删除音高相同且重叠的音符

remove_overlapping_midi_notes 是这里唯一可以移除音符的工具;其余工具只会移动现有音符。它带有 destructive 标记,因此客户端可以先提示用户。

音频片段(17 个工具)
工具描述
insert_audio_file(track, path, pos)导入音频文件
get_track_items(track)列出轨道上的所有片段
get_item_info(track, item)获取片段详情
set_item_position(track, item, pos)移动片段
set_item_length(track, item, length)更改片段长度
delete_item(track, item)删除片段
duplicate_item(track, item)复制片段
split_item(track, item, pos)在指定位置拆分片段
set_item_mute(track, item, mute)静音/取消片段静音
set_item_volume(track, item, db)设置片段音量
set_item_fade_in(track, item, length)设置淡入
set_item_fade_out(track, item, length)设置淡出
select_all_items()选择所有片段
unselect_all_items()取消选择所有片段
get_selected_items()获取已选片段
copy_selected_items()复制到剪贴板
paste_items()从剪贴板粘贴
标记与区域(8 个工具)
工具描述
add_marker(pos, name, color)添加标记
add_region(start, end, name, color)添加区域
get_markers()获取所有标记
get_regions()获取所有区域
delete_marker(index)删除标记
delete_region(index)删除区域
go_to_marker(index)跳转到标记
go_to_region(index)跳转到区域起点
自动化(8 个工具)
工具描述
get_track_envelope(track, name)按名称获取包络
get_envelope_point_count(track, name)获取包络点数量
add_envelope_point(track, name, time, value, shape, value_db)添加自动化点;如果轨道尚无包络,则创建包络(value_db:以 dB 为单位的音量级别)
get_envelope_points(track, name)获取所有点
delete_envelope_point(track, name, index)删除点
clear_envelope(track, name)清除所有点
set_track_automation_mode(track, mode)设置自动化模式
arm_track_envelope(track, name, arm)启用包络录制
FX 参数自动化(5 个工具)
工具描述
get_fx_envelope(track, fx, param)获取或创建任意 FX 参数的包络
add_fx_envelope_point(track, fx, param, time, value, shape)为 FX 参数添加自动化点
get_fx_envelope_points(track, fx, param)获取 FX 包络中的所有点
delete_fx_envelope_point(track, fx, param, point)删除 FX 包络中的点
clear_fx_envelope(track, fx, param)清除 FX 包络中的所有点
选择与编辑(11 个工具)
工具描述
undo()撤销上一步操作
redo()重做上一步撤销的操作
get_undo_state()获取撤销/重做状态
select_track(index, exclusive)选择轨道
select_all_tracks()选择所有轨道
unselect_all_tracks()取消选择所有轨道
get_selected_tracks()获取已选轨道索引
set_time_selection(start, end)设置时间选区
get_time_selection()获取时间选区
clear_time_selection()清除时间选区
delete_selected_items()删除已选片段
测量(2 个工具)
工具描述
measure_loudness(track, item, start, end)综合响度、短时最大响度和瞬时最大响度(LUFS)、响度范围、采样峰值、真峰值
measure_spectrum(track, item, start, end)倍频程频带电平、频谱质心、倾斜度、立体声相关性、侧声道与中声道比值、平衡

如果未指定轨道或片段,这两项测量都会针对主混音进行。响度数据由 REAPER 自带的响度测量功能提供。真峰值、频谱和立体声数据由 TwelveTake MCP Analyzer 提供;--install-bridge 会安装该分析器,ReaPack 软件包也包含它。

混音辅助工具(6 个工具)
工具描述
add_mastering_chain()为主控轨添加 EQ→Comp→EQ→Limiter
add_parallel_compression(track, db)设置纽约压缩
create_bus(name, tracks)创建子混音总线
add_eq(track)添加 ReaEQ
add_compressor(track)添加 ReaComp
add_limiter(track)添加 ReaLimit
高级工具(4 个)
工具描述
run_action(action_id)按 ID 运行 REAPER 操作
run_action_by_name(name)按名称运行操作
get_track_fx_chunk(track, fx)获取原始 FX 状态数据
cut_selected_items()将选中的素材剪切到剪贴板

轨道索引

  • 常规轨道: 从 0 开始的索引(第一条轨道 = 0)
  • 主控轨道: 使用索引 -1
"Set the master track volume to -3dB"  → track_index = -1
"Mute track 1"                          → track_index = 1 (second track)

常见插件名称

在 track_fx_add_by_name() 中使用以下名称:

插件名称
均衡器ReaEQ
压缩器ReaComp
限幅器ReaLimit
门限器ReaGate
延迟ReaDelay
混响ReaVerbate 或 ReaVerb

第三方插件使用其在 REAPER FX 浏览器中显示的完整名称。

故障排除

“无法连接到 REAPER”
  1. 确保 REAPER 正在运行
  2. 确保桥接脚本正在运行:在操作列表中启动它(在筛选框中输入 mcp bridge)
  3. 确认桥接目录存在
“找不到轨道”
  • 轨道索引从 0 开始
  • 主控轨道使用 -1
  • 使用 get_track_count() 检查轨道数量
桥接脚本无法加载
  • 使用 twelvetake-reaper-mcp --install-bridge 部署脚本,然后从 REAPER 的操作列表中加载并运行。REAPER 运行的是已部署的副本,而不是克隆目录中的版本。
响应缓慢
  • 基于文件的模式每次调用延迟约为 50 ms
  • 尽可能批量执行操作(例如 add_midi_notes_batch)

环境变量

变量默认值描述
REAPER_BRIDGE_DIRREAPER 的 Scripts/mcp_bridge_data,按平台解析文件桥接目录
REAPER_FILE_TIMEOUT5.0等待桥接响应调用的秒数,但不包括下方的渲染和测量工具。桥接会在工作完成后才响应,因此冻结轨道或打开项目等耗时操作可能会报告超时,但 REAPER 仍会正常完成操作。值越高,桥接未运行时等待报告的时间也越长。
REAPER_RENDER_TIMEOUT600等待 render_project、measure_loudness 和 measure_spectrum 的秒数;这些操作以近乎实时的速度运行。渲染时间超过 10 分钟时,请调高此值。
REAPER_MCP_DEBUG未设置启动 REAPER 前将其设为 1,即可查看桥接启动消息以及每次调用对应的控制台行

贡献

请参阅 CONTRIBUTING.md。编写补丁前请先阅读第一节:此仓库通过明确的允许列表从私有工作仓库发布,因此 PR 会手动移植,而不是合并。最好提前了解这一点。经过充分诊断的问题在这里和补丁同样有价值,而且能为你省下不少功夫。

贡献者

CONTRIBUTORS.md 中列出了参与此软件开发的项目外人员,其中有几位的诊断成果早已发布,而当时这里还没人想到去查找。

许可证

MIT 许可证 - 请参阅 LICENSE


TwelveTake Studios LLC 网站:twelvetake.com 联系邮箱:[email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。