
Servidor MCP para Ghidra

ghidraMCP es un servidor de 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 + Plugin de Ghidra
pip install git+https://github.com/LaurieWired/GhidraMCP, y luego usar ghidra-mcp como el comando a continuación)Primero, descarga la última versión de este repositorio. Esta contiene el plugin de Ghidra y el cliente MCP de Python. Luego, puedes importar directamente el plugin en Ghidra.
File -> Install Extensions+ghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip de la versión descargadaFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP ServerGuía de instalación en video:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
En teoría, cualquier cliente MCP debería funcionar con ghidraMCP. La mayoría de los clientes aceptan una configuración JSON como la siguiente:
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
La IP y el puerto del servidor son configurables y deben establecerse para apuntar a la instancia de Ghidra objetivo. Si no se establecen, ambos usarán por defecto localhost:8080.
Para los clientes que se conectan a una URL en lugar de lanzar un comando, primero ejecuta el servidor MCP tú mismo:
uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
Luego añade http://127.0.0.1:8081/mcp como servidor remoto en tu cliente.
Ejecuta MCP: Add Server desde la Paleta de Comandos, o añade lo siguiente a .vscode/mcp.json en tu espacio de trabajo:
{
"servers": {
"ghidra": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
Ejecuta el siguiente comando:
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/
ghidra-mcp también puede importar y analizar un binario por sí mismo usando PyGhidra, sin necesidad de tener la GUI de Ghidra en ejecución. Esto requiere Python 3.10–3.13, la extensión GhidraMCP instalada en Ghidra (o --extension-jar /path/to/GhidraMCP.jar), y GHIDRA_INSTALL_DIR configurado al directorio de tu Ghidra 12.1.4:
uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target
Usa el mismo comando y argumentos en cualquiera de las configuraciones de cliente anteriores. Añade --project DIR para conservar el proyecto de Ghidra (y guardar los cambios) entre ejecuciones. En macOS, compila el descompilador de Ghidra una vez con support/gradle/gradlew buildNatives desde el directorio de Ghidra.
GHIDRA_INSTALL_DIR al directorio de tu Ghidra 12.1.4cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension
El archivo zip generado en extension/dist/ incluye el plugin de Ghidra compilado y sus recursos. Estos archivos son necesarios para que Ghidra reconozca la nueva extensión.
El servidor MCP de Python se puede ejecutar desde una copia local con uv run ghidra-mcp, y probar con uv run pytest.