reaper-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reaper-mcpadd a track named Bass"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
reaper-mcp
An MCP server that lets Claude drive a live, running REAPER DAW instance -
transport control, tracks, FX/plugins, MIDI, media items, markers, view/zoom,
rendering, and project state - plus a run_reascript escape hatch for
anything not covered by a dedicated tool.
Unlike file-parsing REAPER integrations, this talks to REAPER while it's running, and includes an engineer-style discovery layer that finds your REAPER install(s), the running REAPER process (with PID), and whether the bridge is actually reachable - so failures are diagnosable, not silent.
Architecture
Claude <--stdio--> reaper-mcp (Python, uv) <--file-based IPC--> reaper_bridge.lua (inside REAPER) --> reaper.* APIThe Python server writes one JSON request file per call into a bridge
directory; reaper_bridge.lua picks it up on its next reaper.defer() tick
(REAPER's UI frame rate, so ~16-33ms round trips) and writes a JSON response
back. No REAPER extensions are required - this uses only the standard
io/os Lua libraries and the reaper.* API, both built into vanilla
ReaScript. See docs/ARCHITECTURE.md for details.
Related MCP server: REAPER MCP Server
Requirements
uv (Python package/venv manager)
REAPER (tested on 6.x/7.x) - nothing else. No extensions to install.
Setup
From this repo's root, run:
build_and_run.batThis runs
uv sync, copieslua/reaper_bridge.luainto your REAPERScriptsfolder, and starts the MCP server over stdio.In REAPER: Actions -> Show action list -> New action -> Load ReaScript..., select
reaper_bridge.lua, then Run it. You should see[reaper_mcp] reaper_bridge starting, watching ...in REAPER's console (Extensions -> ReaScript console). Right-click the action and choose "Run on startup" if you want the bridge always live.Point Claude Code (or Claude Desktop) at the server. Example
.mcp.json/claude_desktop_config.jsonentry:{ "mcpServers": { "reaper": { "command": "uv", "args": ["--directory", "<path-to-this-repo>", "run", "reaper-mcp"] } } }
Testing it end to end
Open REAPER and load+run
reaper_bridge.luaas described above (step 2 in Setup). Confirm the console printed the "watching ..." line.Confirm the bridge is actually reachable, independent of the MCP server, with the CLI diagnostics command:
uv run reaper-mcp --statusWith REAPER open and the bridge script running,
bridge_reachableshould betrueandrunning_processesshould list REAPER's PID. If it'sfalse, the bridge script either isn't loaded/running in REAPER, or REAPER's resource path doesn't match what was detected - checkbridge_dirin the output against the folder the.luafile actually got copied to.Run the batch file if you haven't already:
build_and_run.batIt's stdio-based, so once started it just waits for an MCP client - that's expected, not a hang.
Wire it into Claude using the
.mcp.json/Claude Desktop config snippet above, then restart Claude Code/Desktop.Exercise it from Claude: ask it to call
reaper_statusfirst (sanity check), then something with a visible effect in REAPER, e.g. "add a track named Test" (track_add) or "play" (transport_play), and confirm REAPER actually reacts.track_listis a good read-only check if you want to confirm state without changing anything.
If a tool call errors with "bridge heartbeat not found or stale", the bridge script isn't currently running in REAPER (REAPER was closed, the script was stopped, or it crashed) - reload/rerun it via the Actions list.
Tool overview
Domain | Examples |
Status |
|
Transport |
|
Tracks |
|
FX |
|
MIDI |
|
Items |
|
Markers |
|
View |
|
Project |
|
Render |
|
Escape hatch |
|
Development
uv sync --group dev
uv run pytestLicense
Licensed under the MIT License.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/vecnode/reaper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server