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.shBy 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
# Start in ReaScript mode
./scripts/start_reaper_mcp_server.sh --mode=reapy
# Configure OSC settings
./scripts/start_reaper_mcp_server.sh --host=192.168.1.110 --send-port=8000 --receive-port=9000
# Enable debug logging
./scripts/start_reaper_mcp_server.sh --debug- 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
MIT