A comprehensive Model Context Protocol (MCP) server that enables AI agents to create fully mixed and mastered tracks in REAPER with both MIDI and audio capabilities.
- Complete project management (creation, saving, rendering)
- Track operations (creation, routing, parameter adjustment)
- MIDI composition and editing
- Audio recording and importing
- Virtual instrument and effect management
- Mixing and automation
- Mastering tools
- Audio analysis and feedback
- REAPER DAW installed
- Python 3.8+
- OSC support enabled in REAPER (for OSC mode)
- ReaScript API enabled in REAPER (for ReaScript mode)
# Clone the repository
git clone https://github.com/itsuzef/reaper-mcp.git
cd reaper-mcp
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e .The easiest way to get started is to use the provided startup script:
# Start REAPER first
open /Applications/REAPER.app # On macOS
# or start REAPER manually on other platforms
# Then start the MCP server
./scripts/start_reaper_mcp_server.sh # On Unix/MacFor Windows users, use one of the provided Windows scripts:
# Using Command Prompt (CMD)
scripts\start_reaper_mcp_server.bat
# Using PowerShell
powershell -ExecutionPolicy Bypass -File scripts\start_reaper_mcp_server.ps1By default, the server will use OSC mode, which is more reliable and doesn't require the ReaScript API to be working correctly. You can configure the server using command-line arguments:
# Start in OSC mode (default)
./scripts/start_reaper_mcp_server.sh --mode=osc # Unix/Mac
scripts\start_reaper_mcp_server.bat --mode=osc # Windows CMD
powershell -File scripts\start_reaper_mcp_server.ps1 -mode osc # Windows PowerShell
# Start in ReaScript mode
./scripts/start_reaper_mcp_server.sh --mode=reapy # Unix/Mac
scripts\start_reaper_mcp_server.bat --mode=reapy # Windows CMD
powershell -File scripts\start_reaper_mcp_server.ps1 -mode reapy # Windows PowerShell
# Configure OSC settings (Unix/Mac)
./scripts/start_reaper_mcp_server.sh --host=192.168.1.110 --send-port=8000 --receive-port=9000
# Configure OSC settings (Windows CMD)
scripts\start_reaper_mcp_server.bat --host=192.168.1.110 --send-port=8000 --receive-port=9000
# Configure OSC settings (Windows PowerShell)
powershell -File scripts\start_reaper_mcp_server.ps1 -host "192.168.1.110" -sendPort 8000 -receivePort 9000
# Enable debug logging
./scripts/start_reaper_mcp_server.sh --debug # Unix/Mac
scripts\start_reaper_mcp_server.bat --debug # Windows CMD
powershell -File scripts\start_reaper_mcp_server.ps1 -debug # Windows PowerShell- Open REAPER
- Go to Preferences > Control/OSC/web
- Click "Add" and select "OSC (Open Sound Control)"
- Configure the following settings:
- Device name: ReaperMCP
- Mode: Local port
- Local listen port: 8000
- Local IP: 127.0.0.1 (or your computer's IP address)
- Allow binding messages to REAPER actions and FX learn: Checked (optional)
- Outgoing max packet size: 1024
- Wait between packets: 10ms
- Open REAPER
- Go to Preferences > Plug-ins > ReaScript
- Make sure "Enable Python for ReaScript" is checked
- Set the Python DLL/dylib path to your Python installation
- On macOS:
/opt/homebrew/Cellar/python@3.x/3.x.x/Frameworks/Python.framework/Versions/3.x/Python - On Windows:
C:\Path\to\Python\python3x.dll
- On macOS:
- Run the setup script:
python scripts/setup_reaper_python.py
src/reaper_mcp/: Main package directory__main__.py: Command-line interfaceosc_server.py: OSC-based server implementationserver.py: ReaScript-based server implementation
examples/: Example scripts demonstrating usagescripts/: Utility scripts for setup and running
The server provides the following MCP tools:
create_project: Creates a new REAPER projectcreate_track: Creates a new track in the current projectlist_tracks: Lists all tracks in the current projectadd_midi_note: Adds a MIDI note to a trackget_project_info: Gets information about the current project
If you're experiencing issues with the ReaScript API, try using the OSC mode instead:
./scripts/start_reaper_mcp_server.sh --mode=oscMake sure REAPER is configured correctly for OSC:
- Check that the OSC settings in REAPER match the server settings
- Verify that no firewall is blocking the communication
- Try using the local IP address (127.0.0.1) instead of a network IP
If you're having issues running the MCP server on Windows:
-
Script Execution Issues:
- For PowerShell scripts, you may need to adjust the execution policy:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - Alternatively, use the
-ExecutionPolicy Bypassflag as shown in the examples
- For PowerShell scripts, you may need to adjust the execution policy:
-
Path Issues:
- Ensure the REAPER path in the scripts matches your installation location
- Default is
C:\Program Files\REAPER\reaper.exe, modify if needed
-
Virtual Environment:
- If you created the venv with a different method, the activation script might be in a different location
- Try activating manually before running:
venv\Scripts\activate
-
Firewall Blocking:
- Windows Firewall may block OSC communication
- Add exceptions for Python and REAPER in Windows Firewall settings
-
Administrator Rights:
- Try running the Command Prompt or PowerShell as Administrator if you encounter permission issues
MIT