REAPER MCP Server
# REAPER MCP Server
A Model Context Protocol (MCP) server that enables AI agents to control REAPER DAW — 61 tools covering project management, tracks, track templates, MIDI, FX, mixing, mastering, rendering, and audio analysis.
## Requirements
- [REAPER](https://www.reaper.fm/) 7 or later, installed and running
- Python 3.10+
- REAPER's distant API enabled (see [Setup](#setting-up-reaper))
## Installation
```bash
pip install reaper-mcp-server
```
Or install from source:
```bash
git clone https://github.com/bonfire-systems/reaper-mcp.git
cd reaper-mcp
pip install -e .
```
## Setting Up REAPER
The server communicates with REAPER via [python-reapy](https://github.com/RomeoDespres/reapy), which requires REAPER's distant API to be enabled.
1. Open REAPER
2. Go to Actions > Run ReaScript
3. Select `scripts/enable_reapy.py` from this repo (or create a new script with the contents below)
```python
import reapy
reapy.config.enable_dist_api()
```
4. Restart REAPER
## Usage
### With Claude Desktop
Add to your Claude Desktop config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"reaper": {
"command": "reaper-mcp-server",
"args": []
}
}
}
```
### With Claude Code
```bash
claude mcp add reaper -- reaper-mcp-server
```
### Standalone
```bash
reaper-mcp-server # start the server
reaper-mcp-server --debug # with debug logging
```
## Tools (60)
### Project Management
`create_project` `load_project` `save_project` `get_project_info` `set_tempo` `set_time_signature` `set_cursor_position` `play_project` `stop_transport`
### Tracks
`create_track` `delete_track` `rename_track` `list_tracks` `get_track_info` `set_track_color` `create_bus` `create_send` `remove_send` `list_sends`
### Track Templates
`list_track_templates` `insert_track_template`
Inserts saved `.RTrackTemplate` files from REAPER's TrackTemplates folder (subfolders included) with their exact FX state, routing, folder structure and items, optionally at a given track position.
### MIDI
`create_midi_item` `add_midi_note` `create_chord_progression` `create_drum_pattern`
### FX & Instruments
`add_fx` `remove_fx` `bypass_fx` `list_track_fx` `get_fx_parameters` `set_fx_parameter` `load_fx_preset` `add_master_fx` `list_master_fx` `set_master_fx_parameter`
### Audio
`import_audio_file` `edit_audio_item` `start_recording` `adjust_pitch` `adjust_playback_rate`
### Mixing
`set_track_volume` `set_track_pan` `set_track_mute` `set_track_solo` `set_send_volume` `set_master_volume` `add_volume_automation` `add_pan_automation`
### Rendering
`render_project` `render_stems` `render_time_selection` `render_regions`
### Mastering
`apply_mastering_chain` `apply_limiter` `normalize_project`
### Analysis
`analyze_loudness` `analyze_dynamics` `analyze_frequency_spectrum` `analyze_stereo_field` `analyze_transients` `detect_clipping`
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md). In short: one concern per pull request,
tested against a real REAPER (say which version), and an issue first for new
tools.
## License
MIT
TDQS
Scored across 61 tools
Most tools target clearly distinct resources and actions, and the descriptions make the intended use clear. There is some subtle overlap among master-FX tools (add_master_fx, apply_mastering_chain, apply_limiter) and among rendering/analysis families, but these are generally distinguishable by scope and output.
Tool names consistently use snake_case verb_noun patterns such as create_track, set_track_volume, render_project, and analyze_loudness. The convention is predictable throughout, with no mixed casing or chaotic verb styles.
At 61 tools this is an extreme surface for one MCP server, well beyond the typical ergonomic range even for a broad DAW domain. Many operations could be consolidated or grouped to reduce selection burden.
Coverage is strong across project lifecycle, tracks, FX, MIDI, audio import/edit, automation, transport, rendering, templates, and analysis. Minor gaps remain around deeper item editing, such as deleting/moving/splitting existing items or more advanced MIDI editing.