reaper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fx_addA | Add an FX/plugin (VST/VST3/AU/JS by name, e.g. 'ReaEQ' or 'VST3: Pro-Q 3 (FabFilter)') to the end of a track's FX chain. Returns the new fx_index. |
| fx_removeB | Remove the FX at fx_index from a track's FX chain. |
| fx_set_enabledC | Bypass (False) or enable (True) an FX on a track. |
| fx_listB | List all FX on a track's FX chain with their index, name, and enabled state. |
| fx_set_paramC | Set a normalized (0.0-1.0) parameter value on a track's FX. |
| fx_get_paramC | Get a normalized (0.0-1.0) parameter value from a track's FX. |
| item_splitC | Split the media item on a track that starts at item_start_sec, at split_at_sec. |
| item_moveB | Move the media item on a track that starts at item_start_sec to new_start_sec. |
| item_glue_selectedA | Glue all currently selected media items into one item each (per track). |
| item_render_in_place_selectedB | Render selected items in place (applies FX/pitch/rate destructively to new item). |
| marker_addB | Add a project marker at the given position in seconds. |
| region_addC | Add a project region spanning start_sec to end_sec. |
| midi_add_itemA | Create an empty MIDI item on a track spanning start_sec to end_sec. Returns nothing useful yet to reference the item by -- use midi_add_note with the same track/time range, which locates the item itself. |
| midi_add_noteB | Add a MIDI note to the MIDI item on a track that starts at item_start_sec. note_start_sec/note_end_sec are absolute project time in seconds. pitch is 0-127 (60 = middle C), velocity is 1-127. |
| project_saveC | Save the current project. |
| project_undoA | Undo the last action in REAPER. |
| reaper_infoA | Get REAPER version, resource path, current project path, track count, and play state. |
| run_reascriptA | Execute arbitrary Lua code inside REAPER's ReaScript environment (full access to the reaper.* API) and return its result as a string. Use this for anything not covered by a dedicated tool -- e.g. advanced routing, item editing, or calling ReaScript functions with no wrapper yet. Be precise: this runs with the same permissions as any ReaScript. |
| render_projectA | Render the project using its current render settings. If output_path is given, it overrides the configured render output file path first. |
| reaper_statusA | Report REAPER installs found, running REAPER processes (with PIDs), and whether the reaper_bridge.lua socket bridge is reachable. Call this first when diagnosing connection issues. |
| install_bridgeA | Copy reaper_bridge.lua into the detected REAPER Scripts folder(s). This does not start it -- REAPER must load it once via its Actions list (or you can set it to run on startup). |
| track_addA | Insert a new track, optionally at a specific 0-based index (default: end of track list) and with a given name. |
| track_removeC | Delete the track at the given 0-based index. |
| track_renameB | Rename the track at the given 0-based index. |
| track_set_volume_dbB | Set a track's volume fader in dB (0 = unity gain). |
| track_set_panB | Set a track's pan, from -1.0 (full left) to 1.0 (full right). |
| track_set_muteC | Mute or unmute a track. |
| track_set_soloB | Solo or unsolo a track. |
| track_set_colorA | Set a track's color using 0-255 RGB components. |
| track_listA | List all tracks in the current project with name, mute/solo state, volume (dB), and pan. |
| transport_playA | Start playback from the current edit cursor position. |
| transport_stopB | Stop playback/recording. |
| transport_pauseB | Pause playback. |
| transport_recordA | Arm and start recording. |
| transport_seekC | Move the edit cursor to an absolute position in seconds. |
| transport_set_tempoC | Set the project tempo in beats per minute. |
| transport_get_stateA | Get current play state, cursor position (seconds), and tempo. |
| view_zoom_to_selectionA | Zoom the arrange view horizontally to fit the currently selected item(s). |
| view_scroll_toA | Scroll the arrange view so the given position (seconds) is visible. |
| view_set_arrange_zoomB | Set the arrange view's horizontal zoom level, in pixels per second. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vecnode/reaper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server