RE-MCP
RE-MCP opens IDA Pro and Ghidra to an agent in headless mode: functions, decompiler, cross-references, types and patching.
- 178 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- Dual use: the tool dissects and patches binaries, including third-party ones.
- `run_script` and `execute` run code, and patching changes analysis databases.
Install
- Works in
Manual install
uv tool install re-mcp-idaThe first install command in the README installs the IDA backend. For Ghidra: `uv tool install re-mcp-ghidra`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Dual use: the tool dissects and patches binaries, including third-party ones.
- `run_script` and `execute` run code, and patching changes analysis databases.
This is third-party code. Review the repository files before installing.
What it does
RE-MCP is a reverse-engineering MCP server with two backends: IDA Pro (package `re-mcp-ida`) and Ghidra (`re-mcp-ghidra`). Both run as standalone servers with no plugin inside the application: IDA through idalib, Ghidra through pyghidra. Core tools carry the same names across backends, so agent workflows port over. The basic order is `open_database`, `wait_for_analysis`, then function lists, decompilation, disassembly, string and byte search, cross-references, types and structures, renames, comments and database snapshots. Byte and instruction patching is included. Rare tools are reached via `search_tools`, `get_schema` and `call`, and `execute` chains calls in a sandboxed Python. The `proxy` mode keeps databases across client reconnects.
Who it is for. Reverse engineers and security researchers who dissect binaries in IDA Pro or Ghidra and want an agent to take over routine work.
Good fit when
- Functions referencing a given string must be found in firmware.
- A large binary is worked through function by function with renames and comments done by the agent.
- The same workflow is run on both IDA and Ghidra.
- Database snapshots are needed first so the agent's edits can be rolled back.
Not a fit when
- You have no IDA Pro 9 license and no Ghidra 12 installed.
- The analysed file must not be shown to an external model.
- You would be analysing someone else's software without permission.
Example request
Open the binary in a database, wait for analysis and find functions referencing the server-address string. Show the pseudocode of the first one.MCP
- Transport
- stdio, http
- Authentication
- not required
Environment variables
`IDADIR`- Path to the IDA Pro installation when it is not in a standard place.
`GHIDRA_INSTALL_DIR`- Path to the Ghidra installation.
`IDA_MCP_ALLOW_SCRIPTS`- A value of `1` enables `run_script` for arbitrary IDAPython.
Limitations
Python 3.12 or newer, the `uv` manager and at least one backend are required: IDA Pro 9 or newer with a license, or Ghidra 12 or newer with JDK 21. Binaries must sit in a writable directory because database files are created beside them. Patching tools and the optional `run_script` (arbitrary IDAPython, enabled by `IDA_MCP_ALLOW_SCRIPTS`) change the database and execute code. Content of the analysed binary reaches the agent's model.
How to disable. Remove the server entry from the client configuration and run `<backend> stop` if you started a daemon. Delete database files beside the binaries by hand.
FAQ
Which backend should I choose?
Pick IDA Pro if you have an IDA 9 or newer license. Ghidra is free and needs version 12 or newer with JDK 21. Core tools are the same.
Is a plugin inside IDA or Ghidra needed?
No. Backends run as standalone servers through idalib and pyghidra.
How do I keep databases between sessions?
Run `<backend> proxy`: it starts a persistent HTTP daemon and databases survive client reconnects.
How do I turn off arbitrary code?
Leave `IDA_MCP_ALLOW_SCRIPTS` unset: without it `run_script` is off. Hide the `execute` meta-tool with `<PREFIX>DISABLE_EXECUTE`.
How does it find the IDA or Ghidra install?
The server reads `IDADIR` and `GHIDRA_INSTALL_DIR`, then a config file in the home folder, then standard paths.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for IDA Pro with one endpoint for several open databases: decompilation, cross-references and similar-function search across binaries
A Ghidra MCP server: the agent decompiles, renames variables, builds cross references and works through a binary via a set of small tools
MCP server that bridges IDA Pro with an agent: reading decompilation, renaming and typing, comments and running IDAPython right in the database
MCP server and Ghidra plugin that lets an agent decompile binaries, follow cross-references and rename functions in an open project
MCP server for IDA Pro that hosts several headless idalib sessions: an agent opens binaries, keeps each database isolated and connects with an access key
A headless IDA Pro MCP server in Rust: the agent opens a database, lists functions, disassembles, decompiles and builds cross references
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| RE-MCP (this card) | no | not required | 178 | |
| IDA Pro MCP | no | not required | 13,379 | connects an agent to IDA Pro only; RE-MCP gives the same set for IDA and Ghidra |
| GhidraMCP | no | not required | 11,777 | is built for Ghidra; RE-MCP works with both tools and keeps databases between sessions |
README in short
Two backends share an interface and need no plugins, while rare tools open on request so the agent's tool list stays small.