Ghidra MCP

LaurieWired/GhidraMCP· Проверено 12.11.2026· 11,9 тыс.на GitHub

Связывает агента с Ghidra: декомпилировать функции, искать ссылки и вызовы, переименовывать функции и переменные, задавать типы и комментарии. Работает через плагин в Ghidra или без интерфейса через PyGhidra.

Как подключить

Что сделать до подключения

1

Ghidra 12.1.4 и uv (или Python 3.10+ с pip install git+https://github.com/LaurieWired/GhidraMCP, тогда команда — ghidra-mcp)

2

Скачайте последний релиз GhidraMCP; в Ghidra откройте File → Install Extensions, нажмите + и выберите архив ghidra_12.1.4_PUBLIC_<дата>_GhidraMCP.zip

3

Перезапустите Ghidra и проверьте, что GhidraMCPPlugin включён в File → Configure → Developer

4

Порт плагина меняется в Edit → Tool Options → GhidraMCP HTTP Server, по умолчанию 8080

Конфиг для вашего клиента

Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code

claude mcp add --transport stdio ghidra \
  -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/

Проверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.

Инструменты сервера

get_program_infoописывает программу и архитектуру
list_functionsпоказывает функции
search_functions_by_nameищет функцию по имени
list_importsпоказывает импорты
list_exportsпоказывает экспорты
list_stringsпоказывает строки
list_segmentsпоказывает блоки памяти
decompile_functionдекомпилирует функцию в C
decompile_function_by_addressдекомпилирует функцию по адресу
disassemble_functionдизассемблирует функцию
get_xrefs_toнаходит ссылки на адрес
get_function_callsпоказывает вызовы функции
read_memoryчитает память программы
rename_function_by_addressпереименовывает функцию
rename_variableпереименовывает переменную
set_function_prototypeзадаёт сигнатуру функции
set_local_variable_typeзадаёт тип переменной
set_decompiler_commentставит комментарий в декомпиляторе
get_current_functionпоказывает функцию под курсором в Ghidra

Показано 19 из 30.

Что попросить агента

«Что делает эта программа? Пройди по импортам и строкам и найди интересные функции»Соберёт сведения через get_program_info, list_imports и list_strings, найдёт функции через search_functions_by_name и декомпилирует их через decompile_function
«Декомпилируй функцию по адресу <0x401000> и объясни, что она делает»Вызовет decompile_function_by_address, при необходимости покажет ассемблер через disassemble_function
«Кто вызывает функцию <check_license>?»Найдёт ссылки через get_xrefs_to и вызовы через get_function_calls
«Переименуй функции и переменные в этом модуле по смыслу»Даст понятные имена через rename_function_by_address и rename_variable, оставит пояснения через set_decompiler_comment
«Разбери функцию, на которой стоит курсор в Ghidra»Определит её через get_current_function и декомпилирует

Для каких задач

Декомпилировать незнакомый бинарник и разобрать, что делают функции
Переименовать функции и переменные осмысленными именами по ходу анализа
Найти, кто вызывает функцию и куда ведут ссылки на адрес
Восстановить сигнатуры функций и типы локальных переменных
Разобрать файл без запуска интерфейса Ghidra в режиме --headless

Ограничения

!

Плагин собран под Ghidra 12.1.4: архив релиза привязан к этой версии

!

В обычном режиме Ghidra с включённым плагином должна быть запущена, сервер ходит в её HTTP-порт

!

Режим без интерфейса требует Python 3.10–3.13, расширение GhidraMCP в Ghidra (или путь к GhidraMCP.jar) и переменную GHIDRA_INSTALL_DIR; на macOS нужно один раз собрать декомпилятор

!

Инструменты get_current_address и get_current_function есть только при работе с открытым интерфейсом Ghidra

Частые вопросы

Как подключить клиент, который принимает только адрес?
Запустите сервер сами с флагами --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 и добавьте в клиент адрес http://127.0.0.1:8081/mcp.
Как анализировать файл без открытой Ghidra?
Используйте режим --headless с флагом --binary <путь к файлу> и пакетом ghidra-mcp[headless]. Флаг --project DIR сохраняет проект и изменения между запусками.
Ghidra на другом компьютере или порту — что поменять?
Укажите адрес в --ghidra-server, например http://127.0.0.1:8080/. Без этого флага сервер стучится на localhost:8080.
Чем GhidraMCP отличается от IDA Pro MCP?
GhidraMCP работает с Ghidra. Сервер для IDA требует IDA Pro (IDA Free не поддерживается) и даёт больше инструментов, включая отладчик.
Работает ли сервер из России?
Сервер и Ghidra работают на вашем компьютере, ключи и аккаунты не нужны.

Похожие серверы