GDB

Un servidor de protocolo GDB/MI basado en el protocolo MCP, que proporciona capacidades de depuración remota de aplicaciones con asistentes de IA.

Documentación

Servidor MCP GDB

Un servidor de protocolo GDB/MI basado en el protocolo MCP, que proporciona capacidades de depuración remota de aplicaciones con asistentes de IA.

Características

  • Crear y gestionar sesiones de depuración GDB
  • Establecer y gestionar puntos de interrupción
  • Ver información de pila y variables
  • Controlar la ejecución del programa (ejecutar, pausar, avanzar paso a paso, etc.)
  • Soporte para depuración concurrente de múltiples sesiones
  • Un TUI integrado para inspeccionar los comportamientos del agente para que puedas mejorar tu prompt (WIP)

Instalación

Binarios Precompilados

Encuentra los binarios en la página de lanzamientos, elige uno según tu plataforma de trabajo y luego puedes ejecutarlo directamente.

Compilar desde el Código Fuente

Clona el repositorio y compílalo con cargo

cargo build --release
cargo run

Usando Nix

Si tienes Nix instalado, puedes ejecutar el proyecto sin clonarlo:

Ejecutar localmente (después de clonar)

nix run .

Ejecutar remotamente desde GitHub

nix run "git+https://github.com/pansila/mcp_server_gdb.git" -- --help

Entorno de desarrollo

Para entrar en un shell de desarrollo con todas las dependencias:

nix develop

Uso

  1. Simplemente ejecútalo directamente: ./mcp-server-gdb
  2. El servidor soporta dos modos de transporte:
    • Stdio (predeterminado): Transporte de entrada/salida estándar
    • SSE: Transporte de eventos enviados por el servidor, predeterminado en http://127.0.0.1:8080

Configuración

Puedes ajustar la configuración del servidor modificando el archivo src/config.rs o mediante variables de entorno:

  • Dirección IP del servidor
  • Puerto del servidor
  • Tiempo de espera del comando GDB (en segundos)

Herramientas MCP Soportadas

Gestión de Sesiones

  • create_session - Crear una nueva sesión de depuración GDB
  • get_session - Obtener información de una sesión específica
  • get_all_sessions - Obtener todas las sesiones
  • close_session - Cerrar sesión

Control de Depuración

  • start_debugging - Iniciar depuración
  • stop_debugging - Detener depuración
  • continue_execution - Continuar ejecución
  • step_execution - Entrar en la siguiente línea
  • next_execution - Saltar sobre la siguiente línea

Gestión de Puntos de Interrupción

  • get_breakpoints - Obtener lista de puntos de interrupción
  • set_breakpoint - Establecer punto de interrupción
  • delete_breakpoint - Eliminar punto de interrupción

Información de Depuración

  • get_stack_frames - Obtener información del marco de pila
  • get_local_variables - Obtener variables locales
  • get_registers - Obtener registros
  • read_memory - Leer contenido de memoria

Licencia

MIT