GDB MCP Server
Un servidor MCP que permite a los clientes LLM interactuar con GDB para depuración y análisis binario.
Documentación
Multi-Debugger MCP Server (LLDB and GDB)
Un servidor de Protocolo de Contexto de Modelo que proporciona funcionalidad de depuración para los depuradores GDB y LLDB, para usar con Claude Desktop, VSCode Copilot u otros asistentes de IA.
Inicio Rápido
uv sync
uv venv
uv run server.py
Integración
Ten en cuenta que puedes usar uv run para ejecutar el script server.py o puedes usar uv venv para crear un entorno virtual y luego ejecutar /home/youruser/dev/personal/GDB-MCP/.venv/bin/python /home/youruser/dev/personal/GDB-MCP/server.py.
Claude Desktop
Añade a tu claude_desktop_config.json:
{
"mcpServers": {
"gdb": {
"command": "uv",
"args": ["run", "/home/youruser/dev/personal/GDB-MCP/server.py"],
"disabled": false
}
}
}
VSCode Copilot
Si estás usando WSL:
"mcp": {
"servers": {
"my-mcp-server-4dc36648": {
"type": "stdio",
"command": "wsl",
"args": [
"/home/youruser/dev/personal/GDB-MCP/.venv/bin/python",
"/home/youruser/dev/personal/GDB-MCP/server.py"
]
}
}
}
Si no estás usando WSL:
"mcp": {
"servers": {
"my-mcp-server-db89eee1": {
"type": "stdio",
"command": "/home/youruser/dev/personal/GDB-MCP/.venv/bin/python",
"args": ["/home/youruser/dev/personal/GDB-MCP/server.py"]
}
}
}
Windsurf
{
"mcpServers": {
"debugger-mcp": {
"command": "python3",
"args": ["/Users/youruser/dev/GDB-MCP/server.py"]
}
}
}
Soporte Experimental de LLDB (macOS)
Este proyecto incluye soporte nativo experimental de LLDB junto con GDB, con selección automática del depurador.
Instalación
Para habilitar el soporte de LLDB en macOS, instala LLVM (que incluye LLDB) y python mediante Homebrew:
# Install LLDB for supporting python3.14 bindings
brew install llvm python3
# Install MCP and debugging dependencies
pip3 install mcp pygdbmi --break-system-packages
Herramientas Disponibles
Herramientas Unificadas
debugger_status(): Muestra los depuradores disponibles y su estadodebugger_start(): Inicia una sesión de depuración con detección automática del depuradordebugger_terminate(session_id): Termina la sesión de depuracióndebugger_list_sessions(): Lista todas las sesiones de depuración activasdebugger_command(session_id, command): Ejecuta un comando del depurador
Herramientas LLDB
lldb_start(): Inicia una nueva sesión de depuración LLDBlldb_terminate(session_id): Termina la sesión de depuración LLDBlldb_list_sessions(): Lista todas las sesiones LLDB activaslldb_command(session_id, command): Ejecuta cualquier comando LLDB
Herramientas GDB
gdb_start(gdb_path): Inicia una nueva sesión de depuración GDBgdb_terminate(session_id): Termina la sesión de depuración GDBgdb_list_sessions(): Lista todas las sesiones GDB activasgdb_command(session_id, command): Ejecuta cualquier comando GDB
Usa las funciones
*_command()para todas las operaciones avanzadas del depurador, tu cliente LLM ya debería saber cómo usarlas, pero no está de más mencionarlo.
Comprobación de Estado
Puedes verificar la disponibilidad del depurador:
from modules.lldb import LLDBSessionManager
from modules.gdb import GDBSessionManager
print("LLDB available:", LLDBSessionManager.is_available())
print("GDB available:", GDBSessionManager.is_available())
Pruebas
uv run python run-tests.py --check-deps
uv run python run-tests.py --type all
Ejemplos
Consulta el directorio examples para ver ejemplos de prompts.
Los binarios de ejemplo están compilados para
arm64yamd64, elige el que coincida con la arquitectura de tu sistema.
Licencia
Este proyecto está licenciado bajo la Licencia GNU Versión 3.0, consulta el archivo LICENSE para más detalles.
