MCP Hub
Back to servers

ReaMCP

An MCP server that enables users to control and edit REAPER projects through a Python-based interface and a Lua bridge. It supports managing tracks, controlling transport, manipulating MIDI and audio items, and adjusting FX parameters within the digital audio workstation.

glama
Updated
Mar 5, 2026

ReaMCP (reaper-mcp)

MCP server for controlling and editing REAPER projects.

This is an early public draft focused on a reliable core toolset.

What it does

  • Read project and track state
  • Create tracks and MIDI items
  • Insert audio files onto tracks
  • Control transport and cursor position
  • Add/list FX and read/write FX parameters
  • Read and set tempo/time signature and selected project parameters

Architecture

MCP client (AI / IDE)
     │  stdio
     ▼
Python MCP server  ──── JSON-RPC over TCP (127.0.0.1:9001) ────►  bridge/reaper_mcp_bridge.lua
(src/reaper_mcp/)                                                     └─ reaper.* Lua API (inside REAPER)

The Python process is a standard mcp server. REAPER control happens through a persistent Lua bridge script running inside REAPER.

Requirements

  • REAPER (with ReaPack)
  • Python 3.10+
  • mavriq-lua-sockets installed in REAPER

Setup

1) Install the Python server

pip install -e .

2) Install mavriq-lua-sockets in REAPER and restart

REAPER's embedded Lua cannot load stock LuaSocket builds in this context. Install mavriq-lua-sockets via ReaPack:

  1. REAPER → Extensions → ReaPack → Import repositories
  2. Add https://github.com/mavriq-dev/public-reascripts/raw/master/index.xml
  3. REAPER → Extensions → ReaPack → Browse packages
  4. Install mavriq-lua-sockets
  5. Restart REAPER

3) Load and run the bridge script in REAPER

  1. REAPER → Actions → Show action list → Load ReaScript
  2. Select bridge/reaper_mcp_bridge.lua
  3. Run it once
  4. Confirm REAPER console shows Listening on 127.0.0.1:9001
  5. Optional: add it to startup actions so it auto-runs

4) Start the MCP server

python -m reaper_mcp

Optional environment variables:

VariableDefaultDescription
REAPER_BRIDGE_HOST127.0.0.1Bridge host
REAPER_BRIDGE_PORT9001Bridge port

MCP tools

ToolDescription
pingVerify bridge is reachable
get_project_infoProject metadata/state
get_project_parametersLoop range, cursor, loop-enabled
list_tracksList all tracks
get_trackGet one track by 0-based index
create_trackInsert a track
set_track_propertiesSet name/volume/pan/mute/solo/arm
create_midi_itemCreate MIDI item, optional notes
insert_audio_fileInsert audio file at time position
transportplay / stop / pause / record / goto_start / goto_position
add_fxAdd FX/instrument to track
list_fxList FX chain entries
get_fx_paramsList all FX parameters
set_fx_paramSet FX parameter (normalized 0.0-1.0)
get_tempoRead BPM and time signature
set_tempoSet BPM and optional time signature
set_project_parameterSet loop_start, loop_end, loop_enabled, cursor_position, playrate

MCP client config (VS Code / stdio)

{
  "servers": {
    "reaper": {
      "type": "stdio",
      "command": "./.venv/bin/python",
      "args": ["-m", "reaper_mcp"]
    }
  }
}

ReaPack package in this repo

reapack/index.xml currently ships a setup helper script for onboarding. The bridge script itself remains in bridge/reaper_mcp_bridge.lua.

Reviews

No reviews yet

Sign in to write a review