rekit
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
rekit
Read-only reverse-engineering toolkit — CLI and MCP server.
rekit gives a terminal — and any MCP-speaking AI agent — a single safe front-end for
static analysis: file triage, strings, IOC extraction, disassembly, APK/DEX, firmware
images, JS bundles, PCAPs and headless Ghidra decompilation. It never executes a sample,
and it never invents a result.

Guarantee | How it works |
Read-only | only analysis binaries are shelled out ( |
Nothing faked | a missing backend is reported as |
Machine-readable | every subcommand accepts |
Bounded | every subprocess has a timeout; inputs are size-capped by |
Subcommands
command | what it does | backend (optional) |
| sha256/md5, kind, sections, entropy, packer hints |
|
| strings + an "interesting" filter (URLs, keys, paths, JWTs) | pure Python |
| extract URLs, IPs, domains, keys, JWTs, wallets, onion addresses | pure Python |
| disassembly of a function/offset range |
|
| APK/DEX: manifest, permissions, packer, string surface |
|
| firmware image signature scan (squashfs, ubifs, uboot, ELF…) |
|
| JS bundle: endpoints, suspect secrets (redacted), obfuscation signals | pure Python |
| conversations, DNS, HTTP hosts, TLS SNI |
|
| headless decompile to C (one function or all) | Ghidra |
| capability / MITRE ATT&CK mapping |
|
| obfuscated and decoded strings |
|
| YARA scan, built-in ruleset or your own |
|
| raw radare2 escape hatch |
|
Related MCP server: Antardrishti
Install
git clone https://github.com/Amz34/rekit.git && cd rekit
python3 rekit.py --help # pure-stdlib CLI, no install needed
pip install -r requirements-mcp.txt # only for the MCP serverOptional backends unlock the matching subcommands:
sudo apt-get install binutils radare2 binwalk tshark yara # base set
pip install lief capstone androguard # richer parsing
# jadx / capa / floss / Ghidra: see their own install docsOptional Python bindings are imported lazily — if they are absent, the subcommand still
runs with the fallback backend or reports tool_missing.
Docker
The image speaks MCP over stdio, so any client can spawn it directly — this is also the container Glama builds and introspects:
docker build -t rekit .
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"local","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | docker run -i --rm rekitThe server itself needs only Python and the pinned mcp package
(requirements-mcp.txt, mcp>=1.0,<2 — the transport API it uses is 1.x).
The analysis backends stay out of the default image; --build-arg REKIT_FULL_TOOLCHAIN=1 bakes in binutils, radare2, binwalk, tshark,
yara and flare-floss. A backend that is not installed is reported as
tool_missing, never guessed.
Usage
# triage a binary (JSON on every subcommand)
rekit triage /usr/bin/ls
# -> sha256, size_bytes, kind, arch, sections, entropy, packer hints
# strings, with an "interesting" bucket (URLs / keys / paths / JWTs)
rekit strings /usr/bin/ls | head
# extract indicators you can pivot on
rekit iocs sample.bin
# -> {"urls": [...], "ips": [...], "domains": [...], "jwts": [...], ...}
# disassemble a range, or a whole function
rekit disasm sample.bin --offset 0x1000 --length 64
# decompile with headless Ghidra
rekit ghidra ./sample.bin --preview 4000Real output from the headless decompiler (aarch64 ELF, Ghidra 12.1.4, 356 lines of C
written to sample.bin.decompiled.c):
186:int add(int a,int b)
197:/* ==== secret_check @ 001007f8 ==== */
199:int secret_check(char *s)
217:int main(int argc,char **argv)MCP server
mcp_server.py exposes the toolkit over MCP so an agent can call triage/strings/disasm/
Ghidra directly instead of shelling out. 13 tools:
re_health, re_triage, re_strings, re_iocs, re_disasm, re_apk, re_firmware,
re_js, re_pcap, re_ghidra_decompile, re_capa, re_floss, re_yara
Every tool is read-only: paths are validated inside REKIT_WORK, outputs are size-capped
and truncated with a truncated: true flag, and a missing backend returns tool_missing
rather than an error-free lie.
stdio (Claude Code, Codex, Cursor, opencode — anything that spawns a command):
{ "mcpServers": { "rekit": { "command": "/path/to/rekit/mcp-stdio.sh" } } }streamable HTTP:
python3 mcp_server.py --http --host 127.0.0.1 --port 8798 # endpoint: /mcpEnvironment: REKIT_BIN (path to rekit.py), REKIT_WORK (job dir, default ~/rekit/work),
REKIT_MAX_BYTES (default 3 GiB), REKIT_TIMEOUT (default 1800 s), REKIT_GHIDRA_SCRIPTS
(where the bundled Ghidra scripts live).
Ghidra setup (optional)
export GHIDRA_INSTALL_DIR=/opt/ghidra_12.1.4_PUBLIC # or anywhere analyzeHeadless lives
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-arm64 # auto-detected if unset
rekit ghidra ./sample.binrekit ghidra writes <name>.decompiled.c and reports rc, c_lines and the tail of
Ghidra's log, so a failed decompile is visible instead of looking empty. The bundled
ghidra/DecompileAll.java and ghidra/ListFunctions.java are used automatically.
Two hard-won details: Ghidra requires an absolute project path, and it rejects any
path element starting with a dot — so the default project dir is ~/rekit/ghidra_proj,
not ~/.rekit/... (passing a dotted path now fails with a clear message instead of a
Ghidra stack trace).
Verified on
Full audit - method, evidence and known gaps - is in docs/verification.md.
Architecture | aarch64 (ARM64) Linux, Ubuntu 24.04.4 |
Python | 3.12 (venv) / 3.11 (system) |
Ghidra | 12.1.4, JDK 21, native aarch64 decompiler |
Agentic layer |
|
Suite |
|
MCP surface | 13/13 tools advertised over a real stdio handshake |
Cross-surface | one binary, one sha256 - identical via |
On a host without the optional PE/APK fixtures or Ghidra, the same suite reports
12 pass / 4 skip, naming each missing input - a skip is never counted as a pass.
The stack
rekit is the CLI/MCP layer. The optional agentic layer sits on the same Ghidra install:
docs/stack.md - the three layers and when to use which.
rea/README.md - run REA as a second MCP server next to rekit.
rea/agentic-re-map.md - machine-readable map of all 125 REA tools, grouped by intent, with the golden chain and invariants. Regenerate it with
python3 rea/dump_tools.py && python3 rea/make_map.py.docs/ghidra-arm64.md - the native aarch64 decompiler: why the release does not ship it, how to build it, and how to verify the ELF.
Scope
Static analysis only. rekit does not run a sample, does not emulate it, and does not
detonate it — dynamic analysis belongs in a separate, network-isolated lane. If a backend
is missing the subcommand says so; it never substitutes a guess for a finding.
License
MIT — see LICENSE.
Try it in one line:
git clone https://github.com/Amz34/rekit.git && cd rekit && python3 rekit.py triage /bin/ls --jsonIf it saves you time, a star helps others find it. Run the suite on your own host first -
if a lane reports tool_missing, or a check you expected is silently skipped, open an
issue with the suite log: the 16 checks above are the checklist.
Part of my always-on agent stack · Awesome Agent Infrastructure (135 live-checked building blocks).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only DERO blockchain MCP: 33 tools (12 composites) incl. TELA discovery + bundled docs.
Evidence-oriented REA + Ghidra static-analysis workflows, read-only PE32 and Delphi VMT tools.
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
Related MCP Servers
- AlicenseAqualityCmaintenanceGives MCP clients such as Claude Code and OpenCode a static-analysis toolbox for binaries, executables, DLLs, shared objects, and web-app code, covering file identification and hashing, string extraction, PE/ELF/Mach-O/WASM parsing, disassembly, Ghidra decompilation, YARA scanning, and JavaScript deobfuscation. All inspection is read-only and never executes the target.16MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to locally analyze and reverse engineer binaries through a compact 12-tool MCP interface for triage, function discovery, disassembly/decompilation, cross-references, strings/imports, call graphs, memory reads, annotations, and binary diffs.1MIT
- AlicenseNot gradedqualityBmaintenanceServes 170 reverse-engineering tools over a local stdio MCP process, letting an agent drive disassembly, decompilation, and dynamic analysis through the engines already installed on the user's machine (Ghidra, Hopper, IDA, JEB, JADX, adb, mitmproxy, Chrome). Binaries never leave the host, and every finding comes back with an evidence contract covering evidence ids, capture tool, coverage, and explicit unknowns.MIT
- AlicenseNot gradedqualityCmaintenanceExposes 18 typed tools that drive real static-analysis engines (Ghidra, apktool, WABT, TShark, evmole, Rizin) over a single MCP endpoint to decompile binaries, audit APKs, scan EVM contracts, inspect WebAssembly, firmware, SQLite, and pcap data. Every call returns signed, verifiable evidence with an evidence_id, provider identity, SHA-256 artifact digest, and explicit limitations for security research, malware analysis, forensics, and CTF work.MIT