
Ghidra MCP
Связывает агента с Ghidra: декомпилировать функции, искать ссылки и вызовы, переименовывать функции и переменные, задавать типы и комментарии. Работает через плагин в Ghidra или без интерфейса через PyGhidra.
Как подключить
Что сделать до подключения
Ghidra 12.1.4 и uv (или Python 3.10+ с pip install git+https://github.com/LaurieWired/GhidraMCP, тогда команда — ghidra-mcp)
Скачайте последний релиз GhidraMCP; в Ghidra откройте File → Install Extensions, нажмите + и выберите архив ghidra_12.1.4_PUBLIC_<дата>_GhidraMCP.zip
Перезапустите Ghidra и проверьте, что GhidraMCPPlugin включён в File → Configure → Developer
Порт плагина меняется в 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.
Файл ~/.codex/config.toml или .codex/config.toml в доверенном проекте. Можно и командой codex mcp add. Подробно о Codex
[mcp_servers.ghidra]
command = "uvx"
args = ["--from", "git+https://github.com/LaurieWired/GhidraMCP", "ghidra-mcp", "--ghidra-server", "http://127.0.0.1:8080/"]Проверка: В интерфейсе codex введите /mcp: появится список активных серверов. Из терминала то же покажет codex mcp list.
Файл ~/.cursor/mcp.json для всех проектов или .cursor/mcp.json в папке проекта. Подробно о Cursor
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: Откройте Customize в боковой панели: там список серверов с переключателями. Ошибки подключения смотрите в панели Output (Cmd+Shift+U), пункт MCP Logs в выпадающем списке.
Файл .mcp.json в корне проекта или ~/.copilot/mcp-config.json для всех проектов. Подробно о VS Code
{
"mcpServers": {
"ghidra": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: Попросите Copilot выполнить безобидную задачу через сервер и раскройте вызов инструмента в чате. Одна запись в конфиге подключение не подтверждает.
Файл ~/.qwen/settings.json или .qwen/settings.json в проекте. Подробно о Qwen Code
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: Запустите qwen и введите /mcp: откроется окно управления серверами. Из терминала статус покажет qwen mcp list.
Файл ~/.gemini/settings.json или .gemini/settings.json в проекте. Подробно о Gemini CLI
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: gemini mcp list показывает каждый сервер, его настройки и статус Connected или Disconnected. В сессии /mcp выводит CONNECTED, CONNECTING или DISCONNECTED и список инструментов.
Файл opencode.json в папке проекта или ~/.config/opencode/opencode.json. Подробно о OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"ghidra": {
"type": "local",
"command": [
"uvx",
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
}Проверка: opencode mcp list показывает состояние каждого сервера, подключённый выглядит как ✓ context7 connected. Внутри OpenCode то же видно в /mcps.
Настройки → Разработчик → Изменить конфиг: файл claude_desktop_config.json. После правки перезапустите приложение. Подробно о Claude Desktop
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: Нажмите «Add files, connectors, and more /» в левом нижнем углу поля ввода, наведите на Connectors и откройте Manage connectors. Выберите сервер, чтобы увидеть его инструменты.
Вкладка Program → Install → Edit mcp.json. Подробно о LM Studio
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}Проверка: Попросите модель в чате выполнить задачу через инструмент сервера. Через API сервер из mcp.json вызывают по id в integrations, например mcp/playwright.
Инструменты сервера
get_program_infoописывает программу и архитектуруlist_functionsпоказывает функцииsearch_functions_by_nameищет функцию по имениlist_importsпоказывает импортыlist_exportsпоказывает экспортыlist_stringsпоказывает строкиlist_segmentsпоказывает блоки памятиdecompile_functionдекомпилирует функцию в Cdecompile_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.
Что попросить агента
Для каких задач
Ограничения
Плагин собран под 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