reaper-mcp-mac
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REAPER_MCP_TIMEOUT | No | Per-call timeout in ms (default 15000; raise for very large MIDI inserts). | 15000 |
| REAPER_MCP_BRIDGE_DIR | No | Override the shared IPC folder (must match on both sides). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| reaper_pingA | Check that the REAPER bridge is alive. Returns the REAPER version. Call this first to confirm the connection. |
| reaper_get_project_stateA | Return the current project's tempo (BPM), length in seconds, transport play state, and the list of tracks (index, name, item count, mute/solo, volume in dB). Use this to orient before making changes. |
| reaper_set_tempoA | Set the project master tempo in BPM. |
| reaper_save_projectA | Save the current REAPER project to disk. |
| reaper_insert_trackA | Insert a new track at the given index (0-based). Omit index to append at the end. Returns the new track's index. |
| reaper_delete_trackA | Delete the track at the given 0-based index. |
| reaper_set_track_nameB | Set the name of the track at the given index. |
| reaper_set_track_muteC | Set the mute state of a track. |
| reaper_set_track_soloC | Set the solo state of a track. |
| reaper_set_track_volumeA | Set a track's volume in decibels (0 dB = unity, negative = quieter). |
| reaper_create_midi_itemA | Create an empty MIDI item on a track, positioned and sized in beats (quarter notes). Returns the item's index on that track, which you pass to reaper_add_midi_notes. |
| reaper_add_midi_notesA | Add MIDI notes to the active take of an existing MIDI item. Positions and lengths are in beats relative to the item start. Insert many notes in one call for chords/melodies. |
| reaper_list_track_fxA | List the FX on a track (index, name, enabled state). |
| reaper_add_fxA | Add an FX/plugin to a track by name (e.g. 'ReaEQ', 'ReaComp', or a VST name). Returns the new FX index. Matching is fuzzy on the plugin name. |
| reaper_get_fx_paramsA | List all parameters of an FX on a track (index, name, current value, min, max). Values are normalized as the plugin reports them. |
| reaper_set_fx_paramA | Set one parameter of an FX by parameter index. Use reaper_get_fx_params to discover indices and ranges. |
| reaper_transportA | Control playback: play, stop, pause, or record. Returns the resulting play state (0=stopped, 1=playing, 2=paused, 4=recording as bit flags). |
| reaper_set_edit_cursorA | Move the edit cursor to a time position in seconds. |
| reaper_renderA | Render (bounce) the project master to a 24-bit WAV file on disk. By default renders the current time selection (your loop); set bounds='project' for the whole project. Returns the absolute file path and size. Renders headlessly — no dialog. |
| reaper_callA | Escape hatch: call ANY ReaScript API function by name with positional args, for operations the dedicated tools don't cover. Example: {"func":"CountTracks","args":[0]}. Pointers returned by the API come back as "handle:N" strings, valid only within this REAPER session; pass them back verbatim as args to chain calls. Prefer the dedicated reaper_* tools when one exists. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |