← All Tools

REAPER MCP

v1.2.0

MCP 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 Operations19Create/delete tracks, volume, pan, mute, solo
FX Operations15Add plugins, manage parameters, presets
Audio Items17Import audio, split, fade, duplicate
Project14Save/open projects, tempo, rendering
Selection & Editing11Undo/redo, track selection, time selection
Transport10Play, stop, record, cursor positioning
Routing9Sends, sidechains, sidechain compression
Markers & Regions8Add/manage markers and regions
Automation8Envelope points, automation modes
MIDI Operations8Create items, add/edit notes
Mixing Helpers6Mastering chains, parallel compression, buses
Advanced4Run 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

ReaEQ ReaComp ReaLimit ReaGate ReaDelay ReaVerbate

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 failureVerify REAPER running, bridge script active
Track not foundCheck 0-based indexing, use -1 for master
Slow responseBatch operations when possible (~50ms latency per call)
Script won't loadEnsure Lua support enabled in REAPER

Questions or Issues?

Open an issue on GitHub or get in touch.