Fathom

Reverse-engineering tools for agents over MCP/A2A, with evidence-carrying findings.

OtherRustv0.1.1

fathom

Rust port of REA (Reverse Engineer Anything): one provider-neutral MCP server for reverse engineering — native binaries, JavaScript/Electron applications, .NET assemblies, web captures, EVM bytecode, and process behavior — where every result is an evidence envelope that states what was observed, what was derived, what was not examined, and what the provider cannot establish.

The design is specified in SPEC.md: capability inventory mapped from upstream's public contracts, per-capability Rust strategy, evidence and error models, a deterministic fail-closed policy engine, and the staging plan. Design source: morluto/rea (MIT), credited in NOTICE; no upstream code is used.

Why a Rust port

Upstream REA is TypeScript/Node distributed through npm. This port exists to keep the capability on a Rust-first, pinned, auditable supply chain — the estate's standing direction (SPEC §1).

Shape

  • fathom-core — config, error contracts, evidence model, policy, tool registry, confinement, bounded processes.
  • fathom-mcp — MCP stdio + streamable HTTP transports.
  • fathom-a2a — signed A2A agent card (JCS + Ed25519).
  • fathom-native — Ghidra headless provider + binary layout (goblin).
  • fathom-js — JavaScript/Electron static analysis (oxc) + ASAR.
  • fathom-managed — .NET PE/CLI metadata (manual ECMA-335).
  • fathom-observe — process capture, HAR reading, EVM selectors.
  • fathom-cli — the fathom binary (serve, card, doctor, one-shot analysis).

Build

nix build          # or: nix develop, then cargo build --workspace
cargo test --workspace

License

This project is licensed under the Apache License, Version 2.0.

Setup from the maintainer

This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.

Package

https://github.com/qompassai/fathom/releases/download/v0.1.1/fathom-mcp-0.1.1-linux-x64.mcpbother

Compatible MCP Clients

Fathom works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More