
Servidor MCP para Ghidra

ghidraMCP es un servidor del Model Context Protocol que permite a los LLMs realizar ingeniería inversa de aplicaciones de forma autónoma. Expone numerosas herramientas de la funcionalidad principal de Ghidra a los clientes MCP.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
Servidor MCP + Complemento de Ghidra
Primero, descarga la última release de este repositorio. Contiene el complemento de Ghidra y el cliente MCP de Python. Después, puedes importar el complemento directamente en Ghidra.
File -> Install Extensions+GhidraMCP-1-2.zip (o la versión que hayas elegido) de la release descargadaFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP ServerGuía de instalación en vídeo:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
En teoría, cualquier cliente MCP debería funcionar con ghidraMCP. A continuación se muestran tres ejemplos.
Para configurar Claude Desktop como cliente MCP de Ghidra, ve a Claude -> Settings -> Developer -> Edit Config -> claude_desktop_config.json y añade lo siguiente:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Alternativamente, edita este archivo directamente:
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
La IP y el puerto del servidor son configurables y deben establecerse para que apunten a la instancia de Ghidra de destino. Si no se establecen, ambos usarán localhost:8080 por defecto.
Para usar GhidraMCP con Cline, también es necesario ejecutar manualmente el servidor MCP. Primero ejecuta el siguiente comando:
python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
El único argumento obligatorio es el transporte. Si no se especifican los demás argumentos, usarán los valores anteriores por defecto. Una vez que el servidor MCP esté en ejecución, abre Cline y selecciona MCP Servers en la parte superior.

Luego selecciona Remote Servers y añade lo siguiente, asegurándote de que la URL coincida con el host y el puerto de MCP:
http://127.0.0.1:8081/sseOtro cliente MCP que admite múltiples modelos en el backend es 5ire. Para configurar GhidraMCP, abre 5ire, ve a Tools -> New y establece la siguiente configuración:
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.pylib/ de este proyecto: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
El archivo zip generado incluye el complemento de Ghidra compilado y sus recursos. Estos archivos son necesarios para que Ghidra reconozca la nueva extensión.