reaper-mcp
The reaper-mcp server provides comprehensive control over the REAPER DAW via an MCP interface, exposing tools (all prefixed with reaper_) that enable an LLM or any MCP client to:
Project & Transport: Get project info (name, length, tempo, cursor position, transport state, track count); set tempo; play, stop, pause, and record; move the edit cursor; set/clear time selections; enable/disable looped playback; render the project to disk using last-used render settings.
Track Management: List, create, rename, and delete tracks; get/set volume (dB), pan, mute, solo, and arm state; set record input; set automation mode (trim/read/touch/write/latch/etc.).
Master Track: Get/set master track volume and pan.
FX / Plugin Management: List installed FX plugins (VST2/VST3/CLAP/JS/AU) with filtering; add/remove FX on tracks; enable or bypass FX; list/set FX parameters by index or name; list and switch FX presets.
Automation: Add envelope points for track volume, pan, or any FX parameter with configurable interpolation shapes (linear, bezier, square, etc.); clear envelopes.
MIDI & Media Items: List media/MIDI items on a track; insert empty MIDI items; add individual MIDI notes (pitch, velocity, channel, timing); delete media/MIDI items; insert existing audio/MIDI files from disk.
Routing: List, add, remove, and set volume on track sends.
Markers & Regions: List, add, and delete markers and regions; navigate the edit cursor to a marker.
Mix Analysis: Analyze a rendered or quick-exported audio file for DSP metrics (LUFS, loudness range, peak, crest factor, clipping, per-band EQ balance, stereo width/correlation); optionally get AI-powered feedback via Gemini with reference track comparison.
Escape Hatch: Execute any REAPER action by numeric command ID for functionality not explicitly wrapped as a dedicated tool.
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-mcplist my installed synths"
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 gives Claude Code (or any MCP client) full control of Reaper.
Claude can:
List every VST/VST3/CLAP/JS/AU plugin you have scanned
Add plugins to tracks, set parameters, and pick presets
Move volume faders, pan, mute, solo (track and master)
Write automation envelopes (track volume/pan or any FX parameter)
Set up track sends / routing
Create/rename/delete tracks; create/delete media & MIDI items and write MIDI notes (one at a time or a whole part in one batch call)
Insert existing media files — audio samples/loops or
.midclips — onto a track from diskAdd markers and regions; set the time selection and toggle looping
Arm tracks and drive the transport (play / stop / record)
Render the project using the last-used render settings
Trigger any Reaper action by command ID (escape hatch)
All 55 tools are namespaced with a reaper_ prefix (e.g. reaper_create_track) so they
don't collide with other MCP servers. Read tools accept a response_format argument
(markdown for humans, json for machines).
How it works
Claude Code ──stdio──▶ reaper-mcp server ──TCP 127.0.0.1:8765──▶ Reaper bridge ReaScript
(MCP) (this package) (runs inside Reaper)The bridge is a Python ReaScript that lives inside Reaper. It opens a non-blocking
TCP listener and polls it from reaper.defer so the DAW UI never freezes.
Every mutation is wrapped in Undo_BeginBlock / Undo_EndBlock, so anything Claude does
is a single undo step.
Related MCP server: ableton-mcp
Prerequisites
Reaper installed (default location:
C:\Program Files\REAPER (x64)\)Python ReaScript enabled in Reaper. Open Options → Preferences → Plug-ins → ReaScript and point "Custom path to Python dll" at your Python install (e.g.
C:\Users\<you>\AppData\Local\Programs\Python\Python311\). Restart Reaper. The page should sayPython loaded successfully.Python 3.10+ on your host machine for the MCP server itself.
Install
cd "C:\Users\tommy\Desktop\CODING STUFF\reaper-mcp"
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .Launch the bridge inside Reaper
Copy
reaper_scripts\reaper_mcp_bridge.pyinto%APPDATA%\REAPER\Scripts\.In Reaper: Actions → Show action list → ReaScript: Load → pick the file → Run.
You should see
[reaper-mcp] bridge listening on 127.0.0.1:8765in the ReaScript console.
Optional: in the action list, right-click the loaded action and "Add to toolbar", so you can start the bridge with one click. To make it auto-start with Reaper, install SWS Extension and use SWS: Set startup action.
Wire it up to Claude Code
Add to your Claude Code MCP config (%APPDATA%\Claude\claude_desktop_config.json for Claude Desktop, or ~/.claude.json / project settings for Claude Code):
{
"mcpServers": {
"reaper": {
"command": "C:\\Users\\tommy\\Desktop\\CODING STUFF\\reaper-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "reaper_mcp.server"]
}
}
}Restart Claude Code. Verify with the reaper_ping tool — it should return Reaper's version.
Try it
Ask Claude things like:
"List every synth I have installed." →
reaper_list_installed_fxfiltered to instruments"Make a new track called 'Bass', drop Serum on it, and switch to the first preset." →
reaper_create_track→reaper_add_fx_to_track→reaper_list_fx_presets→reaper_set_fx_preset"Automate the volume of track 1 to fade in over the first 4 seconds." →
reaper_add_envelope_point× 2"Send track 2 to a reverb bus and pull the send down 6 dB." →
reaper_add_send→reaper_set_send_volume_db"Drop a 2-bar MIDI clip on track 3 and write a C major chord." →
reaper_insert_midi_item→reaper_add_midi_notes(all 3 notes in one call)"Mark the chorus at 32 seconds." →
reaper_add_marker"Arm track 1 and start recording." →
reaper_set_track_record_arm→reaper_transport_record
Configuration
Env var | Default | Effect |
|
| Where the MCP server looks for the bridge |
|
| Bridge TCP port (set on both sides if you change it) |
Troubleshooting
could not reach Reaper bridge— the bridge script isn't running. Re-load it via the action list. Check Reaper's ReaScript console for errors.Python ReaScript not loadedin Reaper — point Preferences → Plug-ins → ReaScript at a Python install of the same bitness (Python 3.x x64 for Reaper x64) and restart.could not add FX 'X' (not found?)— callreaper_list_installed_fxand copy the exact name (including theVST3:/VST3i:prefix). Reaper matches by exact suffix.Preset name doesn't match — some plugins expose presets as
.fxpfiles in%APPDATA%\REAPER\presets\vst-<plugin>\. Callreaper_list_fx_presetsto see what Reaper actually sees.Automation doesn't seem to do anything — set the track to
readmode:reaper_set_track_automation_mode(idx, "read").
Adding new capabilities
To add a tool:
Write an
h_<method>handler inreaper_scripts/reaper_mcp_bridge.pyand register it inHANDLERS.Add a
@mcp.tool(name="reaper_<verb_noun>", annotations={...})wrapper inreaper_mcp/server.pythat calls_call("<method>", ...). Validate inputs withAnnotated[type, Field(...)]andEnumtypes, give read tools aresponse_formatargument, and let failures raise (do not return an error dict —_callraises so FastMCP reports it as anisErrorresult).Re-load the bridge script in Reaper (Actions list → ReaScript: Load) and restart the MCP server in Claude Code.
The method-name string is the contract between the two files and must match exactly on both sides.
Evaluations
evaluations/reaper_eval.xml holds read-only eval questions (mcp-builder Phase 4) for checking that an
LLM can drive the server. See evaluations/README.md for how to run them and verify answers against a
live project.
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/T-Rzeznik/reaper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server