REAPER MCP Server
A Model Context Protocol (MCP) server that provides programmatic control over REAPER DAW through a clean, tool-based interface. Built with FastMCP and python-reapy, this server enables AI assistants and automation tools to interact with REAPER projects.
Features
- Project Management - Project details, initialization, save, playback state, undo/redo, time conversions
- Playback Control - Start, pause, stop, record, cursor and time selection management
- Markers & Regions - Add, list, and manage markers and regions
- Track Operations - Create, delete, configure tracks (volume, pan, mute, solo, color, selection)
- Tempo Control - Get/set project BPM
- MIDI - Generate and import MIDI notes, patterns, and files
- FX & Plugins - List, add, and control VST plugins and parameters
- Audio Samples - Manage sample directories, search, import, and time-stretch audio files
Prerequisites
- REAPER installed with ReaScript enabled
- python-reapy bridge configured for out-of-process control
- Python 3.11+
Note: The server must be able to communicate with REAPER. Ensure REAPER is running before starting the server.
Installation
Using uv (Recommended)
# Install with uv
uv pip install reaper-mcp
# Or run directly with uv
uv tool install reaper-mcp
Using pip
pip install reaper-mcp
Usage
Run the server (default stdio transport for MCP clients):
python -m reaper_mcp
Run with MCP Proxy (stdio):
uv tool run mcpo --port 8000 -- uv run reaper_mcp
Options:
--transport {stdio,sse,http,ws,websocket}- Transport protocol (default:stdio)--host HOST- Host for network transports (default:127.0.0.1)--port PORT- Port for network transports (default:8000)--path PATH- URL path for HTTP/SSE/WebSocket--allow-origin ORIGIN- CORS origin (repeatable)
Example with WebSocket:
python -m reaper_mcp --transport ws --port 9000
MCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "reaper_mcp"]
}
}
}
Cline (VS Code)
Add to MCP settings:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "reaper_mcp"]
}
}
}
Continue (VS Code)
Add to config.json:
{
"mcpServers": {
"reaper": {
"command": "python",
"args": ["-m", "reaper_mcp"]
}
}
}
Using uv
For any client, replace "command": "python" with "command": "uv" and "args": ["run", "python", "-m", "reaper_mcp"]
Notes
- Tools are designed to be small and focused - prefer calling multiple tools over complex combined actions
- File paths must be accessible from the REAPER host machine
- Some operations depend on REAPER configuration, OS, and installed plugins
- Tools return helpful error messages when operations are unavailable
Testing
A comprehensive integration test suite is available to validate all 115+ MCP tools across 13 categories. The test suite can optionally use Ollama LLM to generate songs and validate functionality.
Quick Start
cd tests
./run_tests.sh
Features
- Tests all 4 producer workflow methods (create_song_from_scratch, create_variation, continue_song, arrange_song_structure)
- Validates song structure, BPM, tracks, and MIDI content
- Tests all 115+ tools systematically across 13 categories
- Generates comprehensive JSON and text reports
- Optional Ollama LLM integration (granite4:micro-h model)
Configuration
Default Ollama settings (edit tests/test_config.py to customize):
- Host:
10.0.0.192 - Port:
11434 - Model:
granite4:micro-h
Run without Ollama:
./run_tests.sh --no-ollama
See tests/README.md for complete documentation including:
- Installation and prerequisites
- Configuration options
- Test phases and categories
- Sample output and success criteria
- Troubleshooting guide
- Architecture details
Links
Metadata
Release files for reaper-mcp 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reaper_mcp-1.4.0.tar.gz | 194.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reaper_mcp-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 261.3 kB
Release files / reaper_mcp-1.4.0.tar.gz
| Download URL | reaper_mcp-1.4.0.tar.gz |
|---|---|
| Size | 194.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e19cf6425bb7621c45fbd02b6eda40d2e787a253a2e504dcf09af811edfb0e64
|
|
BLAKE2b-256 checksum How to use checksums |
f745ae9c2b29f32c6644a72dc2c26fcc2f8b3eccc728403651c83a0b70613179
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2025.
Transparency logRelease files / reaper_mcp-1.4.0-py3-none-any.whl
| Download URL | reaper_mcp-1.4.0-py3-none-any.whl |
|---|---|
| Size | 67.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e896624613e16af7b210c9b4eda7627fbd2713dd004a19555d79cbb33e59f095
|
|
BLAKE2b-256 checksum How to use checksums |
ad39761a8594cd48a88ed0939f965e80975c2b49bd385e2bb1a547c0b8099bba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2025.
Transparency log