一个通过干净的API接口暴露 REAPER DAW 功能的MCP(模型上下文协议)服务器。

该项目在macOS上进行开发和测试,但在Windows和Linux上只需少量调整即可运行,因为REAPER提供了跨平台的一致性支持。
本项目采用混合的Lua-Python方法:
通信流程:
# 使用默认配置文件(dsl-production: 53个工具)
# 包括自然语言DSL和基本生产工具
python -m server.app
# 或选择特定配置文件:
python -m server.app --profile dsl # 最小自然语言工具集(15个工具)
python -m server.app --profile groq-essential # 传统ReaScript工具集(146个工具)
python -m server.app --profile full # 所有工具(600+个工具)
默认的dsl-production配置文件针对AI/LLM使用进行了优化,提供了自然语言命令以及基本的MIDI、FX和渲染工具。
./scripts/install.sh
这将:
注意:快速安装脚本可能引用了过时的配置。为了最可靠的设置,请遵循下面的手动指令。
# 创建并激活虚拟环境(需要Python 3.10+)
python3.10 -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate
# 安装包
pip install -e .
目前,只有基于文件的桥接完全实现并经过测试。基于套接字的桥接存在但缺乏相应的服务器实现。
MCP服务器通过基于文件的桥接与REAPER通信。这不需要额外的依赖项,并且是最可靠的方法。
安装桥接:
./scripts/install_bridge.sh
在REAPER中加载桥接:
mcp_bridge_file_v2.lua启动MCP服务器:
# 默认配置文件(dsl-production: 53个工具,带有自然语言界面)
python -m server.app
# 或使用特定配置文件
python -m server.app --profile dsl # 自然语言工具集(15个工具)
python -m server.app --profile full # 所有工具(600+个工具)
重要架构说明:
lua/mcp_bridge.lua)支持所有配置文件mcp_bridge_file_v2.lua安装以保持向后兼容性虽然Lua脚本lua/mcp_bridge.lua存在用于基于套接字的通信,但没有对应的Python服务器实现。基于套接字的桥接需要LuaSocket,并且需要一个监听UDP端口9000的服务器。
~/Library/Application Support/REAPER/Scripts/mcp_bridge_data/进行基于文件的通信确保你已经:
mcp_bridge_file_v2.luapython -m server.app)然后运行测试:
pytest tests/ -v
要测试特定配置文件:
# 测试DSL工具
MCP_TEST_PROFILE=dsl pytest tests/test_dsl_minimal.py -v
# 使用不同的配置文件测试
MCP_TEST_PROFILE=mixing pytest tests/test_integration.py -v
注意:由于时间问题或轻微的输出格式差异,某些测试可能会失败。核心功能已被验证为正确工作。
对于集成测试:
pytest tests/test_integration.py -v
REAPER MCP服务器包括全面的自然语言处理(NLP)测试,以确保系统能够正确地将用户意图映射到适当的工具。这些测试对于AI/LLM集成尤为重要。
# 从reaper-chat目录
cd reaper-chat
node test-nlp-mcp-mapping.js
这将运行测试,验证自然语言输入是否正确映射到MCP工具。
为了进行全面测试,具有质量评估和改进跟踪:
# 确保你设置了OpenAI API密钥
export OPENAI_API_KEY=your-api-key-here
# 运行带有对话跟踪的增强测试
node test-nlp-with-tracking.js
这个高级测试套件:
详见 reaper-chat/RUN-TRACKED-TESTS.md:
对话跟踪系统会在reaper-chat/conversation-tracking/中创建详细的报告,帮助识别:
REAPER MCP服务器支持工具配置文件,根据你的需求或LLM限制来限制暴露的工具数量。许多LLM有工具数量限制(例如,Groq:128,OpenAI:128),配置文件可以帮助你在这些限制内专注于你需要的工具。
| 配置文件 | 工具数量 | 描述 | 使用场景 |
|---|---|---|---|
dsl-production | ~53 | DSL + 基本工具 | 默认 - 自然语言 + 核心生产 |
dsl | 15 | 自然语言DSL工具 | 最小化的AI友好界面 |
groq-essential | ~146 | 核心REAPER功能 | 传统的ReaScript界面,Groq兼容 |
groq-extended | ~200+ | 扩展功能 | 更多工具,可能超过Groq的限制 |
minimal | ~100 | 最基础工具 | 测试和轻量级操作 |
midi-production | ~150 | MIDI聚焦工具 | MIDI创作和编辑工作流 |
mixing | ~120 | 混音和母带工具 | 音频混音、效果和路由 |
full | 600+ | 所有可用工具 | 完整访问(可能会使LLM超载) |
# 列出所有可用配置文件
python -m server.app --list-profiles
# 使用默认配置文件(dsl-production)
python -m server.app
# 使用特定配置文件
python -m server.app --profile dsl # 最小自然语言(15个工具)
python --m server.app --profile groq-essential # 传统的ReaScript界面
python -m server.app --profile mixing # 混音聚焦工具
python -m server.app --profile full # 所有600+个工具
# 使用中继脚本
python run_with_relay.py # 使用默认(dsl-production)
python run_with_relay.py --profile dsl # 最小DSL配置文件
DSL工具(包含在默认的dsl-production配置文件中)提供了一个易于自然语言理解的接口,可以理解灵活的输入:
DSL使用示例:
# 替代复杂的ReaScript调用:
await dsl_track_create(name="Bass", role="bass")
await dsl_track_volume(track="bass", volume="-6dB")
await dsl_loop_create(track="bass", time="8 bars")
在server/tool_profiles.py中添加自己的配置文件:
"my-workflow": {
"name": "我的自定义工作流",
"description": "满足我特定需求的工具",
"categories": [
"DSL", # 自然语言工具
"Tracks", # 轨道管理
"MIDI", # MIDI操作
"FX", # 效果
]
}
REAPER MCP服务器实现了600+个工具,跨越40+类别。可用的工具数量取决于你选择的配置文件(参见上面的工具配置文件部分)。
有关所有已实现方法的完整列表,请参阅 IMPLEMENTATION_MASTER.md。
./scripts/uninstall.sh
REAPER 是一款适用于计算机的完整数字音频制作应用程序,提供全面的多轨音频和MIDI录制、编辑、处理、混音和母带工具集。REAPER支持Windows、macOS和Linux,提供跨平台的一致性功能。
此项目实现了REAPER ReaScript API的一个子集。ReaScript API提供了对REAPER功能的全面控制,包括:
详情请参阅 IMPLEMENTATION_MASTER.md,了解当前已实现的方法。
当添加新的ReaScript方法时: