REAPER MCP
v1.2.0MCP server for REAPER DAW. AI assistants can control mixing, mastering, MIDI composition, and full music production workflows.
Overview
REAPER MCP connects AI assistants to REAPER DAW through file-based communication. Control tracks, FX, routing, automation, MIDI composition, and mastering workflows with 129 tools. Works with stock REAPER - no external plugins required.
Features
- 129 MCP tools for complete DAW control
- Mixing - Tracks, volume, pan, mute, solo, FX, routing
- MIDI - Create items, add/edit notes, batch operations
- Audio editing - Import, split, fade, duplicate
- Mastering - One-click chains, parallel compression, buses
- Automation - Envelope points, automation modes
- Zero configuration - File-based communication, no network setup
- Stock REAPER - Uses built-in Lua, no additional installations
Requirements
- REAPER (any recent version)
- Python 3.8+
- An MCP-compatible AI client (Claude Desktop, Claude Code, etc.)
Installation
Step 1: Install the Package
pip install twelvetake-reaper-mcp Step 2: Set Up the Bridge Script
Copy reaper_mcp_bridge.lua to your REAPER Scripts folder:
Windows: %APPDATA%\REAPER\Scripts\
macOS: ~/Library/Application Support/REAPER/Scripts/
Linux: ~/.config/REAPER/Scripts/
Then load the script via REAPER's Actions menu (Actions → Show action list → Load ReaScript).
Step 3: Configure Your AI Client
Choose your AI assistant and add the configuration:
Claude Desktop
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "twelvetake_reaper_mcp"]
}
}
} ChatGPT Desktop
Settings → Beta features → Enable MCP servers, then add to config:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "twelvetake_reaper_mcp"]
}
}
} Cursor
Settings → Features → MCP Servers, or add to .cursor/mcp.json:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "twelvetake_reaper_mcp"]
}
}
} Other MCP Clients
For Windsurf, Continue, Zed, or any other MCP-compatible client, add the server to your client's MCP configuration. The standard format is:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "twelvetake_reaper_mcp"]
}
}
} Check your client's documentation for the config file location. Common paths:
- Windsurf: ~/.codeium/windsurf/mcp_config.json
- Continue: ~/.continue/config.json
- Zed: ~/.config/zed/settings.json
Step 4: Verify Connection
With REAPER running and the bridge script loaded:
python -m twelvetake_reaper_mcp.test_connection If connection is successful, you're ready to go.
Available Tools (129)
| Category | Count | Key Functions |
|---|---|---|
| Track Operations | 19 | Create/delete tracks, volume, pan, mute, solo |
| FX Operations | 15 | Add plugins, manage parameters, presets |
| Audio Items | 17 | Import audio, split, fade, duplicate |
| Project | 14 | Save/open projects, tempo, rendering |
| Selection & Editing | 11 | Undo/redo, track selection, time selection |
| Transport | 10 | Play, stop, record, cursor positioning |
| Routing | 9 | Sends, sidechains, sidechain compression |
| Markers & Regions | 8 | Add/manage markers and regions |
| Automation | 8 | Envelope points, automation modes |
| MIDI Operations | 8 | Create items, add/edit notes |
| Mixing Helpers | 6 | Mastering chains, parallel compression, buses |
| Advanced | 4 | Run actions, access FX state data |
Usage Examples
Track Operations
Mute track 2 Set track 0 volume to -6dB Create a new track called "Vocals" Mixing
Add ReaComp to the bass track Create a drum bus Set the threshold to -20dB MIDI
Create a 4-bar MIDI item on track 0 Add a C4 quarter note at beat 1 Track Indexing
Tracks use 0-based indexing:
- First track = index 0
- Second track = index 1
- Master track = index -1
Common Plugin Names
FAQ
Do I need REAPER running to use this?
Yes. REAPER must be running with the bridge script loaded for the MCP server to communicate with it.
How does communication work?
By default, file-based communication: the server writes JSON requests to a file, and REAPER's Lua bridge script reads and responds. This is the most reliable method and requires no network configuration.
Is there latency?
About 50ms per file-based call. Batch operations when possible for better performance.
Can I use third-party plugins?
Yes. Any VST/AU/JS plugin installed in REAPER can be controlled. Use the plugin's exact name as it appears in REAPER's FX browser.
Connection failed - what do I check?
1) REAPER is running. 2) Bridge script is loaded (Actions → Running/background scripts). 3) Check script folder location. 4) Try restarting REAPER.
Is this affiliated with Cockos?
No. This is an unofficial, third-party tool. REAPER is a product of Cockos Incorporated.
Troubleshooting
| Connection failure | Verify REAPER running, bridge script active |
| Track not found | Check 0-based indexing, use -1 for master |
| Slow response | Batch operations when possible (~50ms latency per call) |
| Script won't load | Ensure Lua support enabled in REAPER |