WHAT YOU CAN DO
Say it the way you'd say it to an engineer
Your AI assistant does it in REAPER, in your open project. A few examples:
Mixing
- "Add a compressor to the bass track"
- "Set up sidechain compression from the kick to the bass"
- "Create a drum bus and route tracks 1 through 4 to it"
- "Add a mastering chain to the master track"
Tracks & transport
- "How many tracks are in my project?"
- "Set the vocal track to -6 dB and mute the drums"
- "Add a marker called Chorus at the cursor"
- "Set the tempo to 120 BPM"
FX & plugins
- "What plugins are on the vocal track?"
- "Set the compressor threshold to -20 dB"
- "Bypass the EQ on track 3"
- "Automate the filter cutoff over four bars"
MIDI
- "Create a 4-bar MIDI item and add a C major chord"
- "Quantize the drums with a bit of swing"
- "Humanize the hi-hats so they feel less robotic"
- "Snap the bassline to E minor"
Editing & comping
- "Split the item at the cursor and fade the tail"
- "Comp lane 2 across the vocal takes"
- "Duplicate this item four times"
Rendering & project
- "Render the project to a WAV file"
- "Render just the Chorus region"
- "Save the project"
How it works
REAPER can't accept outside requests on its own, so REAPER MCP comes in two parts:
- The MCP server: a Python program your AI client runs. Your assistant sends it plain-language requests.
- The bridge script: a stock-Lua script (
reaper_mcp_bridge.lua) that runs inside REAPER and carries out those requests. It has no dependencies and installs nothing extra in REAPER.
The two talk through files on your own computer: no network, no ports, nothing leaves your machine. Changes happen in your currently open project, in real time, so keep REAPER running with the project you want to work on loaded.
reaper_mcp_bridge.lua from the Actions list (or add it to a toolbar / startup action). You'll see a "REAPER MCP Bridge … started" message in REAPER's console each time it's active.
Set it up
Requirements
- REAPER (any recent version; live-tested through 7.77) on Windows, macOS, or Linux
- Python 3.10 or newer, handled for you by
uvorpipxin the steps below - An MCP-compatible AI client (Claude Desktop, Cline, Cursor, VS Code, Windsurf, or any other client with MCP support)
The quick way: let your AI assistant set it up
If your client has an agent that can run terminal commands, paste this in. It handles the install and config, then walks you through the one manual step REAPER needs. If it cannot, follow the manual steps below instead.
Set up the TwelveTake REAPER MCP server for me. - It's a Python package on PyPI called twelvetake-reaper-mcp. Install it so it can run (uvx or pipx) and add it to my MCP client config as a server named "reaper". - REAPER needs a small bridge script. Download reaper_mcp_bridge.lua from github.com/TwelveTake-Studios/reaper-mcp and copy it into my REAPER Scripts folder. - Then tell me the one manual step: in REAPER, open Actions -> Show action list -> Load ReaScript, choose reaper_mcp_bridge.lua, and Run it. I should see a "REAPER MCP Bridge ... started" message in REAPER's console. - Confirm it works by asking how many tracks are in my project.
Or do it by hand
Step 1: Install the bridge in REAPER
One command puts the bridge script where REAPER expects it, on any platform. It backs up an existing copy first, and writes nothing else:
uvx twelvetake-reaper-mcp --install-bridge To place it by hand instead, download reaper_mcp_bridge.lua from the REAPER MCP repository and copy it into your REAPER Scripts folder:
Windows: %APPDATA%\REAPER\Scripts\
macOS: ~/Library/Application Support/REAPER/Scripts/
Linux: ~/.config/REAPER/Scripts/ Then in REAPER: Actions → Show action list → Load ReaScript, choose reaper_mcp_bridge.lua, and click Run. You should see a REAPER MCP Bridge (File-based, Full API) started message in REAPER's console.
Step 2: Add the server to your AI client
Nearly every MCP client uses the same JSON: an mcpServers entry with a command and its args. Add this to your client's MCP configuration:
{
"mcpServers": {
"reaper": {
"command": "uvx",
"args": ["twelvetake-reaper-mcp"]
}
}
} Where you put it depends on your client:
- Cursor: Settings → MCP → Add, or paste the block above into
~/.cursor/mcp.json: same shape. - Windsurf: in the Cascade panel, click the MCP icon → Configure, or edit
~/.codeium/windsurf/mcp_config.json: same shape. - VS Code: Command Palette → "MCP: Add Server," or edit
.vscode/mcp.json. VS Code uses a top-levelserverskey with"type": "stdio"instead ofmcpServers.
Using a different client? Add the same command and args wherever it lists MCP servers. After adding it, fully quit and reopen your client.
Step 3: Check it's working
With REAPER open and the bridge running, ask your assistant: "How many tracks are in my project?" A number back means everything's connected.
Keeping it updated
The server updates through uvx / pipx (or re-run the setup prompt). When a release changes the bridge, run twelvetake-reaper-mcp --install-bridge to copy the new reaper_mcp_bridge.lua into place, then re-run it in REAPER so the two stay in step.
Troubleshooting
- No "Bridge … started" message? Re-run
reaper_mcp_bridge.luafrom Actions → Show action list, and confirm the file is in your Scripts folder. - Assistant can't see the "reaper" server? Fully quit and reopen your client after editing the config, and check the JSON is valid (a stray trailing comma is the usual culprit).
- "Cannot connect to REAPER"? Make sure REAPER is open and you re-ran the bridge this session. It doesn't persist across REAPER restarts.
What it can control
It gives your assistant 176 tools across your whole production workflow. You don't call these directly. You ask in plain language and your assistant picks the right one.
Tracks
Create, rename, delete, volume / pan / mute / solo, phase, width, color, folders, record-arm, inputs, and metering.
FX & plugins
Add, remove, reorder, and bypass any plugin; read and set any parameter; save and load presets.
ReaEQ bands
Dedicated EQ band control in real units (Hz, dB, Q), handling ReaEQ’s non-linear curves correctly.
Takes & comping
Per-take FX, multi-take workflows, explode / crop, and REAPER 7 fixed-lane comping.
Routing & sidechain
Sends, receives, channel-specific routing, and complete sidechain setup in a single call.
Automation
Track and FX-parameter envelopes: add and edit points, set automation modes, arm for recording.
MIDI
Create items, add notes individually or in batches, then reshape them: transpose, quantize (with swing), humanize, snap to a scale, stretch, legato, strum, velocity ramps, and overlap cleanup.
Audio items
Import, split, duplicate, fade, position, mute, and copy / paste items.
Markers & regions
Add, edit, and navigate markers and regions, and render by region.
Transport
Play, stop, record, loop, and move the edit cursor.
Project & rendering
Tempo, time signature, save / open, project summary, and render to audio.
Mixing helpers
One-call mastering chain, parallel (NY) compression, and submix buses.
The complete, current tool reference lives in the REAPER MCP repository.
Is it safe to let it change my project?
Yes. The same safety nets you already use in REAPER apply:
- The MIDI editing tools group their changes for undo. Transpose, quantize, humanize and the other MIDI transforms land in REAPER's own undo history, so
Ctrl+Zreverses them as one step. - Edits stay in your open session until you save. Close without saving to discard them, or save when you're happy. Rendering and freezing are the exception: those write audio files when you ask for them.
- It runs locally. The server and bridge talk through files on your machine, and nothing is sent over the network.
For big AI-driven changes, it's still worth saving a copy first (or leaning on REAPER's project auto-backups), the same as any major edit.
FAQ
What is this, in plain terms?
It's an MCP server: a program your AI assistant connects to so it can drive REAPER directly. Once it's set up, you ask in normal language and it does the work.
Do I need to know how to code?
No. If your assistant can run commands, it can install and configure everything for you from the prompt above. Otherwise it's a download, a couple of pasted settings, and running one script inside REAPER, all shown in the setup steps.
Is it safe to let it change my project?
Yes. Changes go into REAPER's normal undo history (Ctrl+Z reverses them), and nothing is saved to disk until you save the project, so you can always close without saving to discard AI edits. See Safety above.
Does REAPER need to be open?
Yes. It works on your live, currently-open project, and the bridge script must be running (re-run it after each REAPER restart). Keep REAPER open with the project you want to work on loaded.
Why does REAPER need a bridge script?
REAPER can't accept outside requests on its own, so a tiny stock-Lua script runs inside it and relays what your assistant asks for. It has no dependencies and installs nothing extra. You just load and run it. See How it works.
Which platforms are supported?
Windows, macOS, and Linux: anywhere REAPER and Python run. The bridge works the same on all three.
Can I use this with ChatGPT?
It works with any client that can run a local MCP server, including Claude Desktop, Cline, Cursor, VS Code and Windsurf. ChatGPT isn't one of them today: it generally connects to remote, HTTPS-hosted MCP servers rather than local ones like this. You can wrap a local server as a remote one with a bridge, but a client with built-in local MCP support is the simpler route.
How do updates work?
The server updates through uvx / pipx. When a release changes the bridge, re-download reaper_mcp_bridge.lua and re-run it in REAPER so the two versions match.
Is it still being worked on?
Yes, actively. Recent releases have focused on setup and reliability. Check the GitHub repo for the latest changes.
Is it really free?
Yes. It's free and open source under the MIT license. If it saves you time, you're welcome to buy us a coffee or support us on Ko-fi.
Want an AI wired into your own software?
We build custom MCP servers to order, whether the software is a DAW, a design tool, or something internal. Describe the workflow and we'll scope it.
See development services