MCP-сервер, объединяющий обратную разработку Ghidra с инструментами ИИ: 256 инструментов для декомпиляции, эмуляции P-кода, живой отладки, анализа потоков данных, пакетных операций и контроля соблюдения соглашений в безголовом и графическом режимах.
Если вы находите это полезным, пожалуйста, поставьте ⭐ репозиторию — это помогает другим его найти!
Если Ghidra MCP экономит ваше время, рассмотрите возможность спонсирования проекта. Разовая и регулярная поддержка помогают финансировать обновления совместимости, повышение надёжности для продакшена, документацию и новые инструменты.
Готовый к продакшену сервер Model Context Protocol (MCP), который связывает мощные возможности обратной разработки Ghidra с современными инструментами ИИ и фреймворками автоматизации. 253 инструмента MCP, проверенные в бою рабочие процессы ИИ и самая полная интеграция Ghidra-MCP из доступных — теперь включая эмуляцию P-code, интеграцию с живым отладчиком и анализ потоков данных на основе графа PCode.
Большинство реализаций Ghidra MCP дают вам горстку инструментов только для чтения и на этом останавливаются. Этот проект другой — он был создан реверс-инженером, который использует его ежедневно на реальных бинарниках, а не как демо.
Вы это проходили: через полгода работы над проектом вы находите ProcessItem, process_items, handleItem и ItemProc в одной кодовой базе — четыре функции, делающие одно и то же, названные четырьмя разными сессиями или инженерами без общего контракта. Исправление занимает больше времени, чем должно, и проблема повторится снова.
v5.0 переносит соглашения из разряда «вещей, которые нужно помнить» на уровень инструментов, где их действительно можно принудительно соблюдать.
| Уровень | Поведение | Пример |
|---|---|---|
| Автоисправление | Применяется молча | Поле count в uint32 → автоматически получает префикс dwCount при сохранении |
| Предупреждение | Изменение проходит, возвращается предупреждение | processData → «имя должно быть в PascalCase с глаголом: ProcessData» |
| Отклонение | Изменение блокируется с объяснением | Изменение типа undefined → undefined → «no-op отклонён, тип не изменён» |
Для ИИ-агентов это означает согласованный результат в каждой сессии, каждой модели, каждом запуске — без вставки руководства по стилю в каждый промпт. Инструмент знает правила; модели просто нужно принять решение.
Для команд это устраняет целый класс комментариев на ревью вида «это не наше соглашение об именовании». Арбитраж соглашений остаётся в инструменте, а не в код-ревью.
Для одиночной работы в масштабе analyze_function_completeness даёт вам оценку от 0 до 100%, которая измеряет честно: структурные вычеты (неисправимые артефакты компилятора) прощаются в вашей эффективной оценке, логарифмическое масштабирование не позволяет одной плохой категории похоронить всё остальное, а многоуровневое качество plate-комментариев означает, что вы точно знаете, чего не хватает и почему.
Примечание о совместимости: Имена инструментов MCP нормализованы для GitHub Copilot CLI и валидации CAPI. Предоставляемые имена инструментов используют только строчные буквы, цифры, подчёркивания и дефисы; вложенные HTTP-пути, такие как
/debugger/status, объявляются как имена видаdebugger_status_2, когда это необходимо, чтобы избежать коллизий со статическими инструментами моста.