Skip to content

About

High-Fidelity AI-Assisted Deterministic Reverse Engineering FastMCP Server

Resources

Stars

111 stars

Watchers

1 watching

Forks

Repository files navigation

Metis Reverse

Reverse-engineering MCP for your AI assistants — an MCP server plus a one-click multi-agent installer.

English · 简体中文

npm metis-reverse-cli License: MIT Python 3.10+ Node.js >=18 GitHub stars QQ 801193315

v1.0.1 — install the right package. The published CLI is metis-reverse-cli (npm dist-tag latest → 1.0.1). The older npm name metis-reverse is still stuck at 0.0.1 and is not this release. Prefer npx metis-reverse-cli@latest setup. The engine repo also has a moving Git tag latest (currently = v1.0.1) for uvx / source downloads.

Quick Start

1. Install & connect. You need Node.js 18+ and uv (the MCP engine is pulled with uvx from GitHub; there is no PyPI package yet).

Step-by-step beginner guide: docs/INSTALL.md.

npx metis-reverse-cli@latest setup

Or install the CLI globally, then run the same wizard:

npm install -g metis-reverse-cli@latest
metis setup          # same binary as `metis-reverse`

setup finds coding agents on your machine, shows what it will write (MCP + Skill + Cursor rules), keeps a .bak of existing MCP configs, and asks before writing. When you see Setup complete! Please restart your selected agents to activate Metis Reverse., restart the agent. Check with:

metis doctor
# or: npx metis-reverse-cli@latest doctor

Remove only Metis Reverse (other MCP servers stay):

metis uninstall

Dry-run / preview without writing:

metis preview
# same as: metis setup --dry-run
Which apps it can configure (~23)

setup shows a picker. Skip the menu with --client (repeatable) and --yes, e.g. metis setup --client cursor --client claude_code --yes.

App --client App --client
Cursor cursor Claude Code claude_code
Claude Desktop claude_desktop Codex codex
Gemini CLI gemini_cli Antigravity antigravity
VS Code vscode Windsurf windsurf
Trae trae OpenCode opencode
WorkBuddy workbuddy GitHub Copilot CLI copilot_cli
Devin devin Kimi Code kimi
Qwen Code qwen_code Grok Build grok_build
Hermes hermes Qoder qoder
Factory Droid droid OMP omp
Pi pi ZCode zcode
DeepSeek Harness dsh

Cursor also gets ~/.cursor/skills/metis-reverse and ~/.cursor/rules/metis-reverse.mdc. Fully quit Claude Desktop before running setup for it.

Advanced: manual MCP config & source install

What setup writes (engine via GitHub + uvx — not npm, not PyPI), pinned to the moving latest tag (currently v1.0.1):

{
  "mcpServers": {
    "metis-reverse": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Wholiver/metis-reverse.git@latest",
        "metis-reverse"
      ]
    }
  }
}

Same idea on the CLI: uvx --from git+https://github.com/Wholiver/metis-reverse.git@latest metis-reverse.

Optional env (not written by default): GHIDRA_INSTALL_DIR, METIS_SIDECAR_DIR.

From a source checkout (Python 3.10+), clone the latest tag (or v1.0.1):

git clone --branch latest --depth 1 https://github.com/Wholiver/metis-reverse.git
cd metis-reverse
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"

Or download the source archive: latest.zip.

Then point MCP command at that environment’s metis-reverse, or keep using the uvx --from git+…@latest form above.

2. Try it. Build the bundled demo, then ask your agent to inspect it with the re_* / js_* tools.

cd demo && make

Inspect demo/demo_target. Triage the binary, decompile the interesting functions, pull evidence for names and types, then verify any hypothesis before you trust it.

Evidence and findings

Evidence stays attached. re_query_evidence and re_add_finding keep provenance on symbols and addresses so the agent can cite why a name or type is trusted.

Inspect and capabilities

Inspect first, then go deeper. re_inspect / re_triage / re_capabilities give a cheap first pass; optional backends (e.g. Ghidra via GHIDRA_INSTALL_DIR) are used when present, otherwise the built-in path still runs.

Decompile and refine

Decompile, refine, transfer. Task-level tools like re_decompile_function, re_refine_model, and re_diff_and_transfer move analysis forward without dumping raw one-shot APIs on the agent.

Emulate and probe

Probe when static is not enough. re_emulate_slice and re_run_probe_script pull concrete values from a slice or a probe and feed them back into the session.

Session state

Session state is shared. re_session_manager, artifact lists, and findings keep later steps on the same tree — the agent does not start from zero every turn.

Verify hypotheses

Verify before you ship a claim. re_verify_hypothesis and related checks push the agent to test ideas instead of narrating them.

Architecture

MCP Tools

About 29 MCP tools in the v1.0.1 engine (handlers under re_* and js_*). Grouped by task below.

Session · triage · artifacts
Tool Role
re_session_manager Open / manage analysis sessions
re_inspect First-pass look at a target
re_triage Cheap ranking of what matters
re_tree_status Status of the analysis tree
re_list_artifacts / re_inspect_artifact List and inspect artifacts
re_capabilities What this environment can do
re_register_child_artifact Attach a child artifact
Binary structure · decompile · schemas
Tool Role
re_inspect_binary_structure Layout / sections / structure
re_read_file_range Read a byte range
re_translate_address Address translation
re_query_function Function metadata
re_decompile_function Decompile one function
re_bridge_map Bridge / IPC-style maps
re_extract_schemas Extract schemas / shapes
JavaScript / Electron-style targets
Tool Role
js_list_modules / js_get_module Modules
js_list_closures Closures
js_search Search
js_functions / js_strings Functions and strings
Hunt · emulate · verify · evidence
Tool Role
re_hunt_crypto_and_hashes Crypto / hash hunting
re_emulate_slice Emulate a slice
re_run_probe_script Run a probe
re_verify_hypothesis Test a hypothesis
re_refine_model Refine the working model
re_diff_and_transfer Diff and transfer findings
re_query_evidence / re_add_finding Evidence and findings

CLI reference

Command What it does
metis setup Write MCP + Skill (+ Cursor rules); aliases: init, install
metis doctor Detect clients and whether MCP / Skill are configured; aliases: check, status
metis uninstall Remove only metis-reverse keys / skill / rules; alias: remove
metis preview Dry-run setup (setup --dry-run)

Bins from the npm package: metis and metis-reverse (same entrypoint).

Running tests (from source)
pytest tests/unit/
pytest tests/e2e/
pytest --cov=metis_reverse tests/

Optional backends (Ghidra, compilers, …) are not required for every suite. Expect some skips on a blank machine.

Community

Metis QQ group: 801193315

Metis QQ group QR code

This project supports the LINUX DO community.

Acknowledgements

Built with (and optional external tools when you install them yourself):

Show projects

Full notices live in THIRD_PARTY_NOTICES.md when that file is in the tree. Contributors: CONTRIBUTORS.md.


Released under the MIT License. Engine + docs: github.com/Wholiver/metis-reverse. CLI on npm: metis-reverse-cli.

About

High-Fidelity AI-Assisted Deterministic Reverse Engineering FastMCP Server

Resources

Stars

111 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages