GhidraMCP
MCP-сервер и плагин для Ghidra: агент декомпилирует бинарники, смотрит перекрестные ссылки и переименовывает функции в открытом проекте
- 11 506 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Плагин открывает локальный HTTP-сервер, через который агент читает декомпилированный код и память программы в открытом проекте
- Инструменты переименования и смены типов меняют сам проект Ghidra, поэтому перед правками сохраните копию
Установка
- Работает в
Ручная установка
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/Перед этим установите плагин из архива релиза в Ghidra 12.1.4 и включите его. Нужен uv.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Плагин открывает локальный HTTP-сервер, через который агент читает декомпилированный код и память программы в открытом проекте
- Инструменты переименования и смены типов меняют сам проект Ghidra, поэтому перед правками сохраните копию
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
GhidraMCP состоит из двух частей: плагина для Ghidra, который поднимает локальный HTTP-сервер на порту 8080, и Python-моста ghidra-mcp, который превращает этот сервер в MCP-инструменты. Агент получает сведения о программе, списки функций, классов, пространств имен, сегментов, импортов, экспортов и строк, а также поиск функций по имени. Для разбора кода есть декомпиляция и дизассемблирование функции по имени или адресу, перекрестные ссылки к адресу и от него, дерево вызовов функции и чтение памяти. Модель может и править проект: переименовывать функции, данные и переменные, менять прототип функции и тип локальной переменной, оставлять комментарии в декомпиляторе и в дизассемблере. Есть и безголовый режим: через PyGhidra мост сам импортирует и анализирует бинарник, и графическая оболочка Ghidra не нужна.
Для кого. Для специалистов по обратной разработке, исследователей вредоносного кода и разработчиков, которые разбирают чужие бинарники в Ghidra и хотят поручить рутину агенту.
Подходит, если
- Нужно получить псевдокод десятков функций из бинарника и сразу присвоить им осмысленные имена
- Вы ищете, откуда вызывается подозрительная функция, и просите агента пройти перекрестные ссылки по get_xrefs_to и get_function_calls
- Требуется обзор импортов, экспортов и строк неизвестного исполняемого файла перед глубоким разбором
- Анализ бинарника идет в скрипте или на сервере без экрана, и подходит безголовый режим ghidra-mcp --headless --binary
- Хочется расставить комментарии в декомпиляторе по итогам разбора, не вводя их вручную
Не подходит, если
- На машине нет Ghidra 12.1.4: плагин собран под эту версию, а мост без Ghidra не заработает
- Нужен анализ в IDA Pro, Binary Ninja или другом дизассемблере: сервер работает только с Ghidra
- Бинарник слишком секретный, чтобы отдавать декомпилированный код облачной модели: псевдокод уходит в контекст агента
- Проект Ghidra должен остаться нетронутым, а модель может переименовать функции и изменить типы
Пример запроса к агенту
Найди в открытом проекте Ghidra функцию, которая обращается к строке с адресом сервера, декомпилируй ее и предложи имена для функции и переменныхMCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
GHIDRA_INSTALL_DIR- Путь к каталогу Ghidra 12.1.4, нужен только для безголового режима
Ограничения
- Плагин собран под Ghidra 12.1.4 и ставится из архива релиза через File и Install Extensions, после этого Ghidra перезапускают и включают плагин в настройках разработчика.
- Для моста нужны uv или Python 3.10 и новее.
- Безголовому режиму нужны Python 3.10–3.13, расширение GhidraMCP и переменная GHIDRA_INSTALL_DIR. На macOS декомпилятор Ghidra один раз собирают командой gradlew buildNatives.
- Автор пишет, что любой MCP-клиент теоретически подойдет, но подтверждает примеры только для VS Code и Claude Code.
- Ключи и платные аккаунты не нужны.
Как отключить. Отключите сервер командой claude mcp remove ghidra или удалите блок ghidra из конфигурации клиента. Плагин выключается в Ghidra через File, Configure и Developer, а расширение снимается в File и Install Extensions.
Частые вопросы
Как подключить GhidraMCP к Claude Code?
Сначала установите плагин из архива релиза в Ghidra 12.1.4 и перезапустите программу. Затем выполните claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/. Если порт плагина менялся в Tool Options, подставьте его в адрес.
Можно ли запустить GhidraMCP без окна Ghidra?
Да. Команда uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target сама импортирует бинарник через PyGhidra. Нужны расширение GhidraMCP и переменная GHIDRA_INSTALL_DIR. Параметр --project DIR сохраняет проект между запусками.
Как подключить клиент, который принимает только URL?
Запустите мост в режиме streamable-http: ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/. После этого добавьте в клиент удаленный сервер http://127.0.0.1:8081/mcp.
Чем GhidraMCP отличается от Ghidra MCP Server Бетингтона?
GhidraMCP Лори Вайред закрывает базовый набор: декомпиляция, ссылки, чтение памяти, переименования и комментарии. Ghidra MCP Server другого автора заметно шире по числу инструментов. Выбирайте базовый вариант, если нужен простой запуск через uvx и безголовый режим.
Что GhidraMCP может изменить в проекте Ghidra?
Переименовать функции, данные и переменные, поменять прототип функции и тип локальной переменной, оставить комментарии в декомпиляторе и дизассемблере. Остальные инструменты только читают. Перед длинной сессией сохраните копию проекта.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер к дизассемблеру Ghidra: сотни инструментов для обратной разработки, декомпиляция, переименование, работа со структурами, эмуляция и отладка
Расширение Ghidra с MCP-сервером: агент читает псевдокод и дизассемблер, строит графы вызовов и правит имена, типы и структуры через 100 инструментов
MCP-сервер для Ghidra: агент декомпилирует, переименовывает переменные, строит перекрестные ссылки и разбирает бинарные файлы через набор мелких инструментов
Нативный MCP-плагин для отладчика x64dbg: агент управляет отладкой по HTTP, ставит точки останова, шагает по коду, читает и патчит память
MCP-сервер и агентный набор для реверс-инжиниринга: Ghidra, Frida, x64dbg и Rizin для анализа бинарей, CTF и исследования вредоносного ПО
Официальный MCP-сервер Hex-Rays: агент открывает базы IDA, выполняет в них Python и разбирает бинарники. Плагины есть для Claude Code и Codex
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| GhidraMCP (эта запись) | нет | не нужна | 11 506 | |
| Ghidra MCP Server | нет | не нужна | 5 869 | самостоятельный проект с гораздо более широким набором инструментов для обратной разработки |
| x64dbg MCP | нет | не нужна | 534 | плагин отладчика x64dbg и x32dbg с MCP-сервером на 79 инструментов и |
| GhidrAssistMCP | нет | не нужна | 780 | расширение Ghidra с MCP-сервером |
Коротко о README
Страница объясняет, что проект дает языковым моделям инструменты Ghidra для самостоятельного разбора приложений. Дальше идут требования, порядок установки плагина с пошаговым списком и видеоинструкцией, затем JSON-конфиг для MCP-клиентов и два примера, для VS Code и для Claude Code. Отдельные разделы описывают запуск моста для клиентов с URL, безголовый режим и сборку расширения из исходников через Gradle и Java 21.