Servidor MCP que conecta la ingeniería inversa de Ghidra con herramientas de IA: 256 herramientas para descompilación, emulación P-code, depuración en vivo, análisis de flujo de datos, operaciones por lotes y aplicación de convenciones en modos headless y GUI.
Si encuentras esto útil, por favor ⭐ marca el repositorio con una estrella — ¡ayuda a que otros lo descubran!
Si Ghidra MCP te ahorra tiempo, considera patrocinar el proyecto. Tanto el apoyo puntual como el recurrente ayudan a financiar actualizaciones de compatibilidad, endurecimiento para producción, documentación y nuevas herramientas.
Un servidor Model Context Protocol (MCP) listo para producción que conecta las potentes capacidades de ingeniería inversa de Ghidra con herramientas modernas de IA y frameworks de automatización. 253 herramientas MCP, flujos de trabajo de IA probados en batalla, y la integración Ghidra-MCP más completa disponible — ahora incluyendo emulación de P-code, integración con depurador en vivo y análisis de flujo de datos mediante grafos PCode.
La mayoría de las implementaciones de Ghidra MCP te ofrecen un puñado de herramientas de solo lectura y lo dan por terminado. Este proyecto es diferente — fue construido por un ingeniero inverso que lo usa a diario sobre binarios reales, no como una demo.
Ya has estado ahí: seis meses dentro de un proyecto encuentras ProcessItem, process_items, handleItem e ItemProc en el mismo código — cuatro funciones haciendo lo mismo, nombradas por cuatro sesiones o ingenieros diferentes sin un contrato compartido. Arreglarlo lleva más tiempo del que debería, y el problema volverá a ocurrir.
v5.0 traslada las convenciones de "cosas que recordar" a la capa de herramientas, donde realmente pueden aplicarse.
| Nivel | Comportamiento | Ejemplo |
|---|---|---|
| Auto-corrección | Aplicado silenciosamente | Campo count en un uint32 → auto-prefijado dwCount al guardar |
| Advertencia | El cambio se aplica, se devuelve una advertencia | processData → "el nombre debería ser PascalCase con un verbo: ProcessData" |
| Rechazo | Cambio bloqueado con explicación | Cambio de tipo undefined → undefined → "no-op rechazado, tipo sin cambios" |
Para agentes de IA, esto significa una salida consistente en cada sesión, cada modelo, cada ejecución — sin pegar una guía de estilo en cada prompt. La herramienta conoce las reglas; el modelo solo necesita tomar la decisión.
Para equipos, elimina toda la clase de comentarios de revisión que dicen "esa no es nuestra convención de nomenclatura". El arbitraje de convenciones permanece en la herramienta, no en la revisión de código.
Para trabajo en solitario a escala, analyze_function_completeness te da una puntuación de 0–100% que mide con honestidad: las deducciones estructurales (artefactos del compilador que no se pueden corregir) se perdonan en tu puntuación efectiva, el escalado logarítmico evita que una categoría mala entierre todo lo demás, y la calidad de comentarios de placa por niveles significa que sabes exactamente qué falta y por qué.
Nota de compatibilidad: Los nombres de herramientas MCP están normalizados para GitHub Copilot CLI y la validación de CAPI. Los nombres de herramientas expuestos usan solo letras minúsculas, dígitos, guiones bajos y guiones; rutas HTTP anidadas como
/debugger/statusse anuncian con nombres comodebugger_status_2cuando es necesario para evitar colisiones con herramientas de puente estáticas.