WHAT YOU CAN DO
Just ask, in plain language
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 talk to your AI assistant on its own, so REAPER MCP has two small pieces:
- The MCP server — a Python program your AI client runs. Your assistant sends it plain-language requests.
- The bridge script — a tiny stock-Lua script (
reaper_mcp_bridge.lua) that runs inside REAPER and carries out those requests. No dependencies, nothing extra to install 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) — Windows, macOS, or Linux
- Python 3.8+ — handled for you by
uvorpipxin the steps below - An MCP-compatible AI assistant (e.g. Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, and other clients with built-in MCP support)
The quick way: let your AI assistant set it up
If your assistant can run terminal commands (Claude Code, Cursor, or VS Code's agent), paste this in — it handles the install and config, then walks you through the one manual step REAPER needs. On plain Claude Desktop, 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
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:
- Claude Desktop — Settings → Developer → Edit Config (opens
claude_desktop_config.json); paste the block above. - Claude Code — skip the JSON and just run:
claude mcp add reaper -- uvx twelvetake-reaper-mcp - 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, re-download reaper_mcp_bridge.lua into your Scripts folder and 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
170+ 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:
- Undo works. Every change lands in REAPER's own undo history — press
Ctrl+Z(or ask your assistant to undo) to reverse it. - Nothing is written to disk until you save. Changes live in your open session; close without saving to discard them, or save when you're happy.
- Runs locally. The server and bridge talk through files on your machine — no network calls, nothing sent anywhere.
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 a small helper program (an "MCP server") that your AI assistant talks to. Once it's set up, you can ask your assistant — in normal language — to do things in REAPER for you, from adding a compressor to rendering a mix, instead of clicking through it yourself.
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 file-based bridge is the same on all three.
Can I use this with ChatGPT?
It works with any client that can run a local MCP server — Claude Desktop, Cursor, Windsurf, VS Code, and Claude Code among them. 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. It just shipped v1.6.0, which added a set of MIDI editing tools, and every release is live-tested against REAPER before it goes out. Check the GitHub repo for the latest.
Is it really free?
Yes — 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 tools like this for clients, too.
See development services