
MCP Server for Ghidra

ghidraMCP ist ein Model Context Protocol-Server, der es LLMs ermöglicht, Anwendungen autonom zu reverse-engineeren. Er stellt zahlreiche Werkzeuge aus der Kernfunktionalität von Ghidra für MCP-Clients bereit.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
MCP Server + Ghidra Plugin
Lade zunächst die neueste Version aus diesem Repository herunter. Diese enthält das Ghidra-Plugin und den Python-MCP-Client. Anschließend kannst du das Plugin direkt in Ghidra importieren.
Datei -> Erweiterungen installieren+-SchaltflächeGhidraMCP-1-2.zip (oder deine gewählte Version) aus dem heruntergeladenen ReleaseDatei -> Konfigurieren -> Entwickler aktiviert istBearbeiten -> Werkzeugoptionen -> GhidraMCP HTTP ServerVideo-Installationsanleitung:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
Theoretisch sollte jeder MCP-Client mit ghidraMCP funktionieren. Nachfolgend werden drei Beispiele aufgeführt.
Um Claude Desktop als Ghidra-MCP-Client einzurichten, gehe zu Claude -> Einstellungen -> Entwickler -> Config bearbeiten -> claude_desktop_config.json und füge Folgendes hinzu:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Alternativ kannst du diese Datei direkt bearbeiten:
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
Die Server-IP und der Port sind konfigurierbar und sollten auf die Ziel-Ghidra-Instanz zeigen. Falls nicht gesetzt, verwenden beide standardmäßig localhost:8080.
Um GhidraMCP mit Cline zu verwenden, muss der MCP-Server manuell gestartet werden. Führe zunächst den folgenden Befehl aus:
python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
Das einzige erforderliche Argument ist der Transport. Wenn alle anderen Argumente nicht angegeben werden, verwenden sie die obigen Standardwerte. Sobald der MCP-Server läuft, öffne Cline und wähle oben MCP Servers aus.

Wähle dann Remote Servers und füge Folgendes hinzu. Achte darauf, dass die URL mit dem MCP-Host und -Port übereinstimmt:
http://127.0.0.1:8081/sseEin weiterer MCP-Client, der mehrere Modelle auf dem Backend unterstützt, ist 5ire. Um GhidraMCP einzurichten, öffne 5ire und gehe zu Werkzeuge -> Neu und setze die folgenden Konfigurationen:
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.pylib/-Verzeichnis dieses Projekts: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
Die generierte ZIP-Datei enthält das erstellte Ghidra-Plugin und seine Ressourcen. Diese Dateien werden benötigt, damit Ghidra die neue Erweiterung erkennt.