Fathom — MCP-сервер для Claude Code: реверс-инжиниринг с доказательствами
Провайдер-нейтральный MCP-сервер на Rust для реверс-инжиниринга бинарников, Electron-приложений, .NET-сборок, EVM-байткода и поведения процессов. Каждый результат — конверт с доказательствами.
Открыть на GitHubЧто делает Fathom
Fathom — порт REA (Reverse Engineer Anything) на Rust. Один MCP-сервер закрывает сразу несколько целей: нативные бинарники, JavaScript и Electron, .NET-сборки, веб-захваты, EVM-байткод и поведение процессов. Отличие от обычных анализаторов в том, что каждый ответ приходит в виде evidence envelope: что наблюдалось, что выведено логически, что вообще не проверялось и чего провайдер установить не может. Для агента это важно, потому что он не принимает догадку за факт.
Внутри воркспейс из нескольких крейтов. fathom-core держит конфиг, модель доказательств, политику, реестр инструментов и ограничение процессов. fathom-mcp даёт транспорты stdio и streamable HTTP, fathom-a2a — подписанную карточку агента на JCS и Ed25519. Провайдеры разложены по целям: fathom-native работает через Ghidra headless, fathom-js разбирает JavaScript и Electron статически, fathom-managed читает метаданные .NET PE/CLI, fathom-observe занимается захватом процессов, чтением HAR и селекторами EVM. Сборка идёт через nix build либо nix develop и cargo build --workspace, тесты — cargo test --workspace.
Политика здесь fail-closed и детерминированная: без настроенной политики инструменты не отработают так, как вы ждёте. Ghidra нужна отдельно — fathom-native вызывает её headless, и без установленной Ghidra этот провайдер не запустится. Лицензия Apache-2.0, дизайн описан в SPEC.md, исходный TypeScript-проект morluto/rea (MIT) указан в NOTICE, его код не используется.
Какие задачи решает
- разобрать нативный бинарник и получить структуру без ручного дизассемблирования
- посмотреть, что внутри Electron-приложения и его ASAR-архива
- вытащить метаданные из .NET-сборки
- прочитать HAR-файл и разложить сетевые запросы
- снять поведение процесса и отделить наблюдения от выводов
Примеры запросов агенту
- Разбери этот бинарник через Fathom и покажи, что реально наблюдалось, а что выведено
- Проанализируй Electron-приложение из этой папки и перечисли, что осталось непроверенным
- Прочитай HAR-файл и собери список эндпоинтов с доказательствами по каждому
Как установить Fathom
Установка
Команды запуска нет в реестре MCP — смотрите README репозитория
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о Fathom
Как установить Fathom в Claude Code?
Готовой команды установки для Claude нет. Соберите сервер из исходников: nix build, либо nix develop и затем cargo build --workspace. После сборки запустите бинарник fathom с подкомандой serve и подключите его как MCP-сервер.
Что делает Fathom?
Это MCP-сервер для реверс-инжиниринга: нативные бинарники, JavaScript и Electron, .NET-сборки, веб-захваты, EVM-байткод, поведение процессов. Каждый результат приходит с указанием того, что наблюдалось, что выведено и что не проверялось.
Чем Fathom отличается от REA?
Fathom — порт REA на Rust. Исходный REA написан на TypeScript и распространяется через npm, а здесь всё держится на Rust-сборке с зафиксированными зависимостями. Код апстрима не используется, дизайн описан в SPEC.md.