# Reported issues for REAPER MCP

Pod holds 8 of 8 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [REAPER MCP](/mcp/reaper-mcp).

## Most discussed

### Measured: the 1000-probe scan costs 26.8% of a core idle; reaper.file_exists is 1.26x cheaper

`process_request` already carries a TODO about the fixed 1000-probe scan, and the reasoning there is right, including why `reaper.EnumerateFiles` was reverted in 1.6.1. This is not a new bug report — it is the measurement that comment is missing, plus one lever that does not require touching the protocol.

### Measured in REAPER's own Lua

Against the real, empty mailbox, min-of-12 runs, REAPER 7.78/x64, Windows 11:

| | ms per tick |
|---|---|
| `io.open` × 1000 (what the bridge does today) |…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/13) · 2026-08-08 · closed · outside contributor · 3 comments

### File transport falls back to unslotted writes whenever the version probe has no verdict, and the response carries no request id to catch the collision

Two things that are individually defensible combine into cross-talk: the fallback path in `reaper_call_file` writes without claiming a slot, and the response wait has nothing to check the answer against.

### The fallback is entered on "no verdict", not just on "old bridge"

`reaper_call_file` uses the pre-1.6.6 single-shot write whenever `_bridge_check["claims_ok"]` is false (`reaper_mcp_server.py:311`). That flag is only ever set true inside the one branch of `ensure_bridge_current()` where…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/16) · 2026-08-21 · closed · outside contributor · 2 comments

### render_project rewrites six project render settings and never restores them

`RenderProject` in the bridge writes six project render settings and restores none of them (`reaper_mcp_bridge.lua`, around lines 5948–5963):

```lua
reaper.GetSetProjectInfo_String(0, "RENDER_FILE",    dir,  true)
reaper.GetSetProjectInfo_String(0, "RENDER_PATTERN", base, true)
reaper.GetSetProjectInfo_String(0, "RENDER_FORMAT",  "evaw", true)   -- when ext is .wav
reaper.GetSetProjectInfo(0, "RENDER_SETTINGS",   0, true)
reaper.GetSetProjectInfo(0, "RENDER_BOUNDSFLAG", 0 or 1, true)…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/12) · 2026-08-08 · closed · outside contributor · 2 comments

### Hardcoded 5s FILE_TIMEOUT makes any render report a failure that did not happen

`FILE_TIMEOUT` is hardcoded at 5.0s (`reaper_mcp_server.py:129`) and is the only transport knob that is not env-configurable — `REAPER_HOST`, `REAPER_PORT`, `REAPER_BRIDGE_DIR` and `REAPER_COMM_MODE` all are.

That would just be an inconvenience, except that the bridge renders **synchronously**:

```lua
-- reaper_mcp_bridge.lua, RenderProject
reaper.Main_OnCommand(42230, 0)   -- blocks for the whole render
response.ret = true               -- response written only afterwards
```

So…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/11) · 2026-08-08 · closed · outside contributor · 2 comments

### Possible bugs in reaper_mcp_server.py preventing startup and MIDI tools from working

Hey! Love this project. I was setting it up and ran into a few issues that might be bugs. Sharing in case it helps others or if I'm misunderstanding something.

## 1. Server restart loop

It seems like line 16 in `reaper_mcp_server.py` sets `__name__ = "twelvetake-reaper-mcp"`, which I think overwrites Python's built-in `__name__` variable. That means `if __name__ == "__main__":` on line 2180 never evaluates to true, so `main()` never gets called. The server exits immediately and the MCP…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/3) · 2026-03-28 · closed · outside contributor · 2 comments

### insert_audio_file inserts on wrong track in bridge 1.7.5 and reports failure; one-line fix tested

## Summary

On Windows, `insert_audio_file` can insert a readable WAV on a different track from the requested `track_index`, while returning `ok: false` and a misleading missing-file/unsupported-format error.

Adding `reaper.Main_OnCommand(40914, 0)` immediately after `reaper.SetTrackSelected(track, true)` in the bridge's `InsertAudioFile` function resolved the observed wrong-track behavior locally. A subsequent six-line alternating-track dialogue succeeded.

## Environment

- Windows
- REAPER…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/18) · 2026-09-28 · closed · outside contributor · 1 comment

### Lua JSON decoder drops JSON \uXXXX escapes (Chinese/Unicode paths become u53ef...)

## Bug
`decode_json` in `reaper_mcp_bridge.lua` does not implement JSON `\uXXXX` unescaping.

Python `json.dumps` (default `ensure_ascii=True`) encodes non-ASCII as `\u53ef\u60dc...`. The decoder then does:

```lua
s = s:gsub('\\(.)', function(c) return escapes[c] or c end)
```

`\u` is not in the escape table, so the backslash is dropped and the letter `u` is kept. The codepoint digits stay. Result: the string for 可 arrives in REAPER as the literal ASCII `u53ef`.

On Windows this wrote broken…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/17) · 2026-09-09 · closed · outside contributor · 1 comment

### __version__ stuck at 1.6.5 since the 1.6.6 release — --version and the startup banner under-report by two releases

`reaper_mcp_server.py:15` hardcodes `__version__ = "1.6.5"`. `pyproject.toml` is at 1.6.7. The two tracked each other exactly up to 1.6.5 and then diverged:

| tag | `pyproject.toml` | `__version__` |
|---|---|---|
| v1.6.4 | 1.6.4 | 1.6.4 |
| v1.6.5 | 1.6.5 | 1.6.5 |
| v1.6.6 | 1.6.6 | **1.6.5** |
| v1.6.7 | 1.6.7 | **1.6.5** |

So the bump was missed in both of the last two releases, not just the most recent one.

### Why it's worth fixing rather than shrugging at

`__version__` is not…

[Read the thread](https://github.com/TwelveTake-Studios/reaper-mcp/issues/15) · 2026-08-21 · closed · outside contributor · 1 comment

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/TwelveTake-Studios/reaper-mcp/issues).
