MCP server for REAPER DAW: project, tracks, MIDI, FX, samples.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reaper_mcp-1.4.0.tar.gz.
File metadata
- Download URL: reaper_mcp-1.4.0.tar.gz
- Upload date:
- Size: 194.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e19cf6425bb7621c45fbd02b6eda40d2e787a253a2e504dcf09af811edfb0e64
|
|
| MD5 |
7b937f5e06e16612563b952ca592b986
|
|
| BLAKE2b-256 |
f745ae9c2b29f32c6644a72dc2c26fcc2f8b3eccc728403651c83a0b70613179
|
Provenance
The following attestation bundles were made for reaper_mcp-1.4.0.tar.gz:
Publisher:
publish.yml on nbdy/reaper-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reaper_mcp-1.4.0.tar.gz -
Subject digest:
e19cf6425bb7621c45fbd02b6eda40d2e787a253a2e504dcf09af811edfb0e64 - Sigstore transparency entry: 656766379
- Sigstore integration time:
-
Permalink:
nbdy/reaper-mcp@76eb017d0ef92e8ccf00bff0ba08bbf1f838e5c8 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/nbdy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@76eb017d0ef92e8ccf00bff0ba08bbf1f838e5c8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file reaper_mcp-1.4.0-py3-none-any.whl.
File metadata
- Download URL: reaper_mcp-1.4.0-py3-none-any.whl
- Upload date:
- Size: 67.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e896624613e16af7b210c9b4eda7627fbd2713dd004a19555d79cbb33e59f095
|
|
| MD5 |
5a7eba5746842a4e7c6cdf111f6d94d4
|
|
| BLAKE2b-256 |
ad39761a8594cd48a88ed0939f965e80975c2b49bd385e2bb1a547c0b8099bba
|
Provenance
The following attestation bundles were made for reaper_mcp-1.4.0-py3-none-any.whl:
Publisher:
publish.yml on nbdy/reaper-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reaper_mcp-1.4.0-py3-none-any.whl -
Subject digest:
e896624613e16af7b210c9b4eda7627fbd2713dd004a19555d79cbb33e59f095 - Sigstore transparency entry: 656766399
- Sigstore integration time:
-
Permalink:
nbdy/reaper-mcp@76eb017d0ef92e8ccf00bff0ba08bbf1f838e5c8 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/nbdy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@76eb017d0ef92e8ccf00bff0ba08bbf1f838e5c8 -
Trigger Event:
push
-
Statement type: