This docker image contains REA and serves its MCP catalog over Streamable HTTP. OpenJDK, Ghidra, Hopper, and Kuna are included for native analysis.
The image builds REA from a pinned upstream source revision because Streamable HTTP support is newer than the current published npm package. Node.js and npm remain available in the runtime image; rebuild the image to make production upgrades reproducible.
REA's HTTP endpoint uses plain HTTP without client authentication. Publish it only on a trusted network or place it behind a TLS and authentication proxy.
Ghidra is the default analysis provider. Select another configured provider with REA_ANALYSIS_PROVIDER or open_binary.provider_id.
The embedded entrypoint script is located at /etc/entrypoint.d/rea and performs the following actions:
/opt/hopper/bin/Hopper./etc/rea/ida-mcp.json.The following environment variables configure the service:
| Variable | Default Value | Description |
|---|---|---|
| MCP_HOST | 0.0.0.0 | MCP listener address. |
| MCP_PORT | 8765 | MCP listener port. |
| GHIDRA_INSTALL_DIR | /opt/ghidra | Bundled Ghidra installation. |
| HOPPER_LAUNCHER_PATH | /opt/hopper/bin/Hopper | Bundled Hopper launcher. |
| REA_ANALYSIS_PROVIDER | ghidra | Default native-analysis provider. |
| REA_HOME | /var/lib/rea | Home and persistent state directory for the REA service user. |
| REA_IDA_MCP_CONFIG | IDA MCP registration; automatically set for /etc/rea/ida-mcp.json. | |
| REA_KUNA_CACHE_DIR | /var/lib/rea/cache/kuna | Kuna specification and project cache. |
| REA_KUNA_COMMAND | /usr/local/bin/kuna | Bundled Kuna executable. |
Ghidra 12.1.4 and the full OpenJDK 21 are included. REA runs Ghidra headlessly; neither a display nor a GPU is required.
Kuna 1.833 is included. This is the version verified by the pinned REA revision. Select it explicitly with REA_ANALYSIS_PROVIDER=kuna or provider_id: "kuna".
Hopper 6.6.0 for Linux is included from Hopper's public installer. Its license still governs use of the installed application. Xvfb supplies the display required by the Hopper bridge; a GPU is not required. Select it with REA_ANALYSIS_PROVIDER=hopper or provider_id: "hopper".
Mount an existing REA-compatible IDA MCP registration at /etc/rea/ida-mcp.json; the entrypoint detects it automatically:
docker run --volume=/path/to/ida-mcp.json:/etc/rea/ida-mcp.json:ro ... crashvb/rea
The commands and paths referenced by the registration must be accessible inside the container. An attached native IDA MCP endpoint can instead be used with an appropriate container network configuration.
/
├─ etc/
│ ├─ entrypoint.d/
│ │ └─ rea
│ ├─ healthcheck.d/
│ │ └─ rea
│ ├─ rea/
│ │ └─ ida-mcp.json (optional bind mount)
│ └─ supervisor/
│ └─ config.d/
│ └─ rea.conf
├─ opt/
│ ├─ ghidra/
│ └─ hopper/
├─ usr/
│ └─ local/
│ └─ bin/
│ └─ kuna
└─ var/
└─ lib/
└─ rea/
8765/tcp - REA Streamable HTTP MCP endpoint at /mcp./var/lib/rea - REA service-user home and persistent state directory.Mount analysis targets separately, preferably read-only, and pass their container paths to REA.
Content type
Image
Digest
sha256:df1a21f5e…
Size
1.1 GB
Last updated
21 days ago
docker pull crashvb/rea