REA: Reverse Engineer Anything MCP server
- JavaScript 76.1%
- Dockerfile 22%
- Shell 1.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| assets | ||
| .trivyignore | ||
| Dockerfile | ||
| entrypoint.sh | ||
| rea-broker.js | ||
| rea-connect.js | ||
| rea-launch.js | ||
| README.md | ||
| roles.example.json | ||
| ROLES.md | ||
rea-mcp
REA (Reverse Engineer Anything) packaged as a container, with Ghidra 12.1.4 + JDK 21 baked in.
REA only speaks stdio MCP, so supergateway wraps it and serves Streamable HTTP at:
http://<host>:8765/mcp
What's inside
| Piece | Why |
|---|---|
node:24-trixie-slim |
REA needs Node 22.19+/24.11+ |
openjdk-21-jdk-headless |
Full JDK 21 (REA's Ghidra bridge needs javac) |
Ghidra 12.1.4 at /opt/ghidra |
The exact version REA's Ghidra provider supports |
procps |
REA needs ps for process-ownership checks |
rea-agents + supergateway |
The server and the stdio→HTTP bridge |
Image is amd64 only. REA's Ghidra provider supports Linux x64 only, so there's no arm64 build.
Image
Built by .forgejo/workflows/build.yml and pushed to:
nidavellir.jriyuu.io/jriyuu-labs/rea-mcp:latest
nidavellir.jriyuu.io/jriyuu-labs/rea-mcp:<rea version>
Triggers: push to main, manual run, and weekly (Mon) so new REA releases get picked up. Uses the ci-bot user / CI_BOT_TOKEN secret.
Deploy (Unraid)
Use unraid/rea-mcp.xml. Defaults:
- Port
8765→8000 /data→/mnt/cache/appdata/ai_models_and_tools/rea-mcp(owned by uid/gid 1000)/targets→/mnt/user/rea-targets(read-only). Drop files to analyse here.
Check the container log on first start. It prints rea doctor --json, which should show Ghidra as ready.
Connect an agent
Claude Code:
claude mcp add --transport http rea http://<host>:8765/mcp
Generic MCP config:
{
"mcpServers": {
"rea": { "type": "http", "url": "http://<host>:8765/mcp" }
}
}
Paths you give the agent must be container paths, e.g. /targets/someapp/app.exe.
Security
- The endpoint has no auth. Keep it LAN-only and don't publish it through SWAG.
- Targets are mounted read-only. Only analyse software you own or are authorised to examine.
Limits vs. running REA natively
- No Hopper or IDA, only Ghidra (plus the engine-free JS/Electron, .NET, Go/Rust and SQLite tools).
- No browser or website observation (no Chrome in the image).
- No Android device/adb, packet capture (tshark) or firmware tools (binwalk). These can be added to the Dockerfile later if needed.
- The REA agent skill (workflow instructions) isn't installed on your agent by this. Add it separately if you want it (see "Skill-only installation" in REA's installation docs).