
Serveur MCP pour Ghidra

ghidraMCP est un serveur Model Context Protocol permettant aux LLM de rétro-ingénierer des applications de manière autonome. Il expose de nombreux outils issus des fonctionnalités principales de Ghidra aux clients MCP.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
Serveur MCP + Plugin Ghidra
Téléchargez d'abord la dernière version de ce dépôt. Celle-ci contient le plugin Ghidra et le client Python MCP. Ensuite, vous pouvez importer directement le plugin dans Ghidra.
File -> Install Extensions+GhidraMCP-1-2.zip (ou la version de votre choix) dans la version téléchargéeFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP ServerGuide d'installation vidéo :
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
Théoriquement, tout client MCP devrait fonctionner avec ghidraMCP. Trois exemples sont donnés ci-dessous.
Pour configurer Claude Desktop en tant que client MCP Ghidra, allez dans Claude -> Settings -> Developer -> Edit Config -> claude_desktop_config.json et ajoutez ce qui suit :
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Alternativement, éditez ce fichier directement :
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
L'IP et le port du serveur sont configurables et doivent être définis pour pointer vers l'instance Ghidra cible. S'ils ne sont pas définis, les deux prendront par défaut localhost:8080.
Pour utiliser GhidraMCP avec Cline, cela nécessite également de lancer manuellement le serveur MCP. Exécutez d'abord la commande suivante :
python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
Le seul argument requis est le transport. Si tous les autres arguments ne sont pas spécifiés, ils prendront les valeurs par défaut ci-dessus. Une fois le serveur MCP en cours d'exécution, ouvrez Cline et sélectionnez MCP Servers en haut.

Ensuite, sélectionnez Remote Servers et ajoutez ce qui suit, en vous assurant que l'URL correspond à l'hôte et au port MCP :
http://127.0.0.1:8081/sseUn autre client MCP qui prend en charge plusieurs modèles en backend est 5ire. Pour configurer GhidraMCP, ouvrez 5ire et allez dans Tools -> New et définissez les configurations suivantes :
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.pylib/ de ce projet :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
Le fichier zip généré inclut le plugin Ghidra compilé et ses ressources. Ces fichiers sont nécessaires pour que Ghidra reconnaisse la nouvelle extension.