REAPER MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Host IP address for OSC mode | |
| mode | No | Server mode (osc or reapy) | osc |
| debug | No | Enable debug logging | |
| send_port | No | Port used for sending OSC messages | |
| receive_port | No | Port used for receiving OSC messages |
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 |
|---|---|
| create_projectC | Create a new REAPER project with the given tempo and time signature. |
| save_projectA | Save the current project. If no path is given, saves to ~/Documents/REAPER Projects. |
| load_projectB | Load a REAPER project (.rpp) from the given file path. |
| get_project_infoA | Get information about the current project: name, path, tempo, tracks, length. |
| set_tempoC | Set the project tempo in BPM. |
| set_time_signatureB | Set the project time signature, e.g. 4/4, 3/4, 6/8. |
| create_trackB | Create a new track at the end of the project. track_type: audio, midi, instrument, folder |
| delete_trackC | Delete a track by its index. |
| rename_trackC | Rename a track. |
| set_track_volumeA | Set track volume in dB. Range: roughly -150 to +12 dB. |
| set_track_panB | Set track pan. -1.0 = full left, 0.0 = center, 1.0 = full right. |
| set_track_muteC | Mute or unmute a track. |
| set_track_soloC | Solo or unsolo a track. |
| get_track_infoC | Get detailed information about a track including FX and items. |
| list_tracksB | List all tracks in the current project with their basic parameters. |
| set_track_colorA | Set track color using RGB values (0–255 each). |
| create_midi_itemA | Create an empty MIDI item on a track. Returns item_id for use with add_midi_note. |
| add_midi_noteB | Add a MIDI note to an existing MIDI item. pitch: MIDI note number 0–127 (60 = middle C, 69 = A4). start/length: seconds, relative to the item's start. channel: MIDI channel 0–15 (use 9 for drums). |
| create_chord_progressionA | Create a chord progression on a track as a single MIDI item. chords: comma-separated chord names, e.g. "C,G,Am,F" or "Cm7,Fm7,Bb7,Ebmaj7". Supports: maj, min/m, dim, aug, maj7, min7/m7, dom7/7, dim7, hdim7, sus2, sus4. All chords are voiced around middle C (MIDI 60). |
| create_drum_patternA | Create a drum pattern on a track using a step-sequencer string. Each character = one step. Characters: k=kick, s=snare, h=hihat(closed), o=hihat(open), t=tom(low), m=tom(mid), f=tom(high), c=crash, r=ride, .=rest. Example 4/4 rock beat (16 steps): "k...h...s...h..." All drum notes are placed on MIDI channel 9 (GM standard). |
| add_fxA | Add an FX plugin to a track. Works for both instruments (VSTi) and effects (VST/AU). Use the exact plugin name as shown in REAPER's FX browser. Built-in Cockos plugins: ReaEQ, ReaComp, ReaDelay, ReaVerb, ReaLimit, ReaSynth, ReaSamplOmatic5000, ReaTune, ReaGate, ReaFIR, ReaXcomp. |
| remove_fxB | Remove an FX plugin from a track by its index. |
| set_fx_parameterA | Set a normalized parameter value (0.0–1.0) on an FX plugin. Use get_fx_parameters to discover available parameters and their indices. |
| get_fx_parametersC | Get all parameters for an FX plugin, including names, indices, and current values. |
| list_track_fxC | List all FX plugins on a track. |
| bypass_fxB | Enable or bypass (disable) an FX plugin on a track. |
| load_fx_presetC | Load a saved preset by name for an FX plugin. |
| import_audio_fileB | Import an audio file onto a track at the given position (seconds). Supports all formats REAPER can read: wav, aiff, mp3, flac, ogg, etc. |
| start_recordingA | Arm a track and start recording. Call stop_transport when done. |
| stop_transportA | Stop playback or recording. |
| play_projectA | Start project playback from the current cursor position. |
| set_cursor_positionB | Move the edit cursor to a position in seconds. |
| edit_audio_itemA | Trim an audio item and/or add fades. All values in seconds. start_trim: seconds to remove from the beginning. end_trim: seconds to remove from the end. fade_in/fade_out: fade length in seconds. |
| adjust_pitchB | Adjust the pitch of an audio item by semitones (can be fractional). |
| adjust_playback_rateB | Adjust playback rate of an audio item. 1.0 = normal speed, 0.5 = half speed. |
| add_volume_automationA | Add a volume automation point on a track. The volume envelope must be visible in REAPER (right-click track > Show envelope). position: time in seconds. value_db: volume level in dB. |
| add_pan_automationB | Add a pan automation point on a track. The pan envelope must be visible in REAPER. pan: -1.0 (full left) to 1.0 (full right). |
| create_sendA | Create an aux send from one track to another. |
| list_sendsC | List all sends from a track. |
| remove_sendC | Remove a send from a track by its index. |
| set_send_volumeC | Set the volume of a send in dB. |
| create_busC | Create a new bus track and route the given tracks to it via sends. track_indices: list of track indices to feed into the bus. |
| render_projectA | Render the entire project to a file. format: wav, flac, mp3 (requires LAME), ogg. sample_rate: e.g. 44100, 48000, 96000. bit_depth: 16, 24, or 32 (WAV only; ignored for mp3/ogg/flac). channels: 1 (mono) or 2 (stereo). |
| render_time_selectionC | Render a specific time range of the project to a file. |
| render_stemsA | Render each track as a separate stem file by soloing each track individually. track_indices: list of track indices, or null to render all tracks. Files are named after the track names in the output directory. |
| add_master_fxC | Add an FX plugin to the master track. |
| list_master_fxA | List all FX plugins on the master track. |
| set_master_fx_parameterA | Set a normalized parameter (0.0–1.0) on a master track FX plugin. |
| set_master_volumeA | Set the master track output volume in dB. |
| apply_mastering_chainA | Add a standard mastering FX chain to the master track. Presets: default (EQ > Comp > Limiter), loud (EQ > Comp x2 > Limiter), gentle (EQ > light Comp > Limiter). After applying, use set_master_fx_parameter to dial in specific settings. Use list_master_fx + get_fx_parameters to discover parameter indices. |
| apply_limiterC | Add ReaLimit to the master track. After adding, use set_master_fx_parameter with the parameter indices from get_fx_parameters to set the threshold and release values. |
| analyze_loudnessA | Render the project to a temp file and measure integrated loudness (LUFS) and true peak (dBTP) using the ITU-R BS.1770 standard. |
| normalize_projectA | Measure the project's integrated loudness, then adjust the master volume so the output hits the target LUFS level. Common targets: -14 LUFS (streaming), -16 LUFS (podcasts), -23 LUFS (broadcast). |
| analyze_frequency_spectrumA | Render the project and analyze frequency band levels. Returns RMS level in dB for seven bands: sub_bass (20–60Hz), bass (60–250Hz), low_mids (250–500Hz), mids (500–2kHz), high_mids (2–4kHz), presence (4–8kHz), brilliance (8–20kHz). |
| detect_clippingA | Render the project and detect digital clipping (samples at or above 0 dBFS). Returns clipped sample count, peak level in dB, and whether clipping was found. |
| analyze_dynamicsA | Render the project and measure dynamic range: RMS, peak, crest factor, and a simplified DR score (average peak-to-RMS over 3-second blocks). |
| analyze_stereo_fieldA | Render the project and analyze stereo width and mono compatibility. Returns mid/side balance, stereo width ratio, and L/R correlation. Correlation near 1 = mono-like, near 0 = wide stereo, negative = phase issues. |
| analyze_transientsA | Render the project and detect transient events (note attacks, drum hits, etc.). Returns the count and timing of up to 100 transient onset events. |
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
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/bonfire-audio/reaper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server