Files
claude-re-setup/README.md
T
LinusandClaude Opus 5.5 43ed5f9183 Add the REA (Reverse Engineer Anything) MCP server
REA 6.8.0 (rea-agents on npm, checked against the registry's integrity
hash) runs in its own container from the same image, because some of its
tools run the target: workspace only, no display, no capabilities, and
only an internal network with no route out. It serves MCP over HTTP and
Claude Desktop reaches it through mcp-remote, installed from a committed
lockfile. It uses the image's Ghidra 12.1.4 headless and binwalk.

run.sh creates the internal network, starts REA before Claude Desktop and
stops it when Claude Desktop's container ends. Adds a README with usage
and sources.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:43:08 +01:00

51 lines
2.3 KiB
Markdown

# claude_re_setup
A Docker-based reverse-engineering workstation for Linux. Claude Desktop is
connected over MCP to Ghidra and to REA ("Reverse Engineer Anything"), and
binwalk and esptool are installed alongside them. Nothing beyond Docker and
an X server (or XWayland) is needed on the host.
## Usage
```bash
./run.sh # build the image if needed, pick a folder to share, start
./run.sh --build # rebuild the image first
./run.sh --workspace ~/re/target-x # share this folder without asking
docker stop claude-desktop # stop everything
```
The shared folder is mounted at `/workspace` in both containers. Sign in to
Claude Desktop on every start; the sign-in is not kept. Closing Claude
Desktop or Ghidra's project window stops everything.
## What runs where
| Container | Contents | Network |
| ---------------- | ------------------------------------------------------------ | -------------------------- |
| `claude-desktop` | Claude Desktop, Ghidra GUI + GhidraMCP, binwalk, esptool | default + internal |
| `claude-re-mcp` | REA MCP server (headless Ghidra, binwalk), no display | internal only, no internet |
Both containers run from the same image. REA gets its own container because
some of its tools run the target. Claude Desktop reaches it at
`http://rea:8765/mcp` through `mcp-remote`.
MCP servers in Claude Desktop (`claude-desktop/claude_desktop_config.json`):
- **ghidra**: needs a program open in Ghidra's CodeBrowser.
- **rea**: opens files from `/workspace` by itself, with its own headless
Ghidra project.
## Sources
- Claude Desktop: Anthropic's apt repository (https://code.claude.com/docs/en/desktop-linux)
- Ghidra 12.1.4: https://github.com/NationalSecurityAgency/ghidra
- GhidraMCP 2.0: https://github.com/LaurieWired/GhidraMCP
- ESP32 Flash Loader: https://github.com/dynacylabs/ghidra-esp32-flash-loader
- REA 6.8.0 (Reverse Engineer Anything): https://github.com/morluto/rea, npm `rea-agents`
- mcp-remote 0.15.1: https://github.com/punkpeye/mcp-remote (formerly geelen/mcp-remote)
- binwalk 3.1.1: https://github.com/ReFirmLabs/binwalk
- esptool 5.6.0: https://github.com/espressif/esptool
Versions and checksums are pinned in the `Dockerfile`. `CLAUDE.md` has the
details.