MCP-сервер для Ghidra: позволяет LLM декомпилировать бинарники, переименовывать функции, анализировать структуры данных и автоматизировать reverse engineering.
Требуется Ghidra 10.2+ и Java 17+.
# 1. Установить плагин:
Скачайте GhidraMCP.jar из Releases → скопируйте в <ghidra>/Ghidra/Extensions/
Ghidra → File → Install Extensions → включите GhidraMCP → перезапустите.
# 2. Клонировать репо и установить Python-зависимости:
git clone https://github.com/LaurieWired/GhidraMCP
cd GhidraMCP
pip install -r requirements.txt # mcp + requests
# 3. Запустить HTTP bridge (Script Manager в Ghidra):
RunMCPServer.java — сервер стартует на localhost:8080.
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": ["/ABSOLUTE/PATH/TO/GhidraMCP/bridge_mcp_ghidra.py"]
}
}
}
# Claude Code (CLI):
claude mcp add ghidra -- python /ABSOLUTE/PATH/TO/GhidraMCP/bridge_mcp_ghidra.py
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"ghidra": {
"type": "local",
"command": ["python", "/ABSOLUTE/PATH/TO/GhidraMCP/bridge_mcp_ghidra.py"]
}
}
}
ghidraMCP — это сервер Protocol Context Model для предоставления LLM возможности автономного реверс-инжиниринга приложений. Он предоставляет множество инструментов из базового функционала Ghidra клиентам MCP.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
Сервер MCP + Плагин Ghidra
Сначала загрузите последний релиз из данного репозитория. Он содержит плагин для Ghidra и Python-клиент MCP. Затем вы можете напрямую импортировать плагин в Ghidra.
File -> Install Extensions+GhidraMCP-1-2.zip (или выбранную вами версию) из загруженного релизаFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP ServerВидеоинструкция по установке:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
Теоретически, любой клиент MCP должен работать с ghidraMCP. Ниже приведены три примера.
Чтобы настроить Claude Desktop в качестве клиента Ghidra MCP, перейдите в Claude -> Settings -> Developer -> Edit Config -> claude_desktop_config.json и добавьте следующее:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Либо отредактируйте этот файл напрямую:
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
IP-адрес и порт сервера настраиваются и должны быть установлены для указания на целевой экземпляр Ghidra. Если они не заданы, по умолчанию используются localhost:8080.
Для использования GhidraMCP с Cline также потребуется ручной запуск сервера MCP. Сначала выполните следующую команду:
python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
Единственный обязательный аргумент — это transport. Если все остальные аргументы не указаны, они примут значения по умолчанию, указанные выше. Когда сервер MCP запущен, откройте Cline и выберите MCP Servers в верхней части.
Затем выберите Remote Servers и добавьте следующее, убедившись, что URL совпадает с хостом и портом MCP:
http://127.0.0.1:8081/sseЕщё один клиент MCP, поддерживающий несколько моделей на стороне сервера — 5ire. Для настройки GhidraMCP откройте 5ire и перейдите в Tools -> New, затем задайте следующие параметры:
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.pylib/ данного проекта:Ghidra/Features/Base/lib/Base.jarGhidra/Features/Decompiler/lib/Decompiler.jarGhidra/Framework/Docking/lib/Docking.jarGhidra/Framework/Generic/lib/Generic.jarGhidra/Framework/Project/lib/Project.jarGhidra/Framework/SoftwareModeling/lib/SoftwareModeling.jarGhidra/Framework/Utility/lib/Utility.jarGhidra/Framework/Gui/lib/Gui.jarmvn clean package assembly:single
Сгенерированный zip-файл включает собранный плагин Ghidra и его ресурсы. Эти файлы необходимы для распознавания нового расширения Ghidra.