reaper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/dawmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server