GDB

Um servidor de protocolo GDB/MI baseado no protocolo MCP, fornecendo capacidades de depuração remota de aplicações com assistentes de IA.

Documentação

Servidor MCP GDB

Um servidor de protocolo GDB/MI baseado no protocolo MCP, fornecendo capacidades de depuração remota de aplicações com assistentes de IA.

Recursos

  • Criar e gerenciar sessões de depuração GDB
  • Definir e gerenciar breakpoints
  • Visualizar informações de pilha e variáveis
  • Controlar a execução do programa (executar, pausar, avançar passo a passo, etc.)
  • Suporte à depuração concorrente de múltiplas sessões
  • Um TUI integrado para inspecionar comportamentos dos agentes, permitindo melhorar seu prompt (WIP)

Instalação

Binários Pré-compilados

Encontre os binários na página de releases, escolha um de acordo com sua plataforma de trabalho e execute-o diretamente.

Compilar a partir do Código-Fonte

Clone o repositório e compile-o com cargo

cargo build --release
cargo run

Usando Nix

Se você tiver o Nix instalado, pode executar o projeto sem clonar:

Executar localmente (após clonar)

nix run .

Executar remotamente a partir do GitHub

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

Ambiente de desenvolvimento

Para entrar em um shell de desenvolvimento com todas as dependências:

nix develop

Uso

  1. Basta executá-lo diretamente: ./mcp-server-gdb
  2. O servidor suporta dois modos de transporte:
    • Stdio (padrão): transporte de entrada/saída padrão
    • SSE: transporte Server-Sent Events, padrão em http://127.0.0.1:8080

Configuração

Você pode ajustar a configuração do servidor modificando o arquivo src/config.rs ou por meio de variáveis de ambiente:

  • Endereço IP do servidor
  • Porta do servidor
  • Tempo limite de timeout do comando GDB (em segundos)

Ferramentas MCP Suportadas

Gerenciamento de Sessões

  • create_session - Criar uma nova sessão de depuração GDB
  • get_session - Obter informações de uma sessão específica
  • get_all_sessions - Obter todas as sessões
  • close_session - Fechar sessão

Controle de Depuração

  • start_debugging - Iniciar depuração
  • stop_debugging - Parar depuração
  • continue_execution - Continuar execução
  • step_execution - Avançar para a próxima linha (step into)
  • next_execution - Avançar sobre a próxima linha (step over)

Gerenciamento de Breakpoints

  • get_breakpoints - Obter lista de breakpoints
  • set_breakpoint - Definir breakpoint
  • delete_breakpoint - Excluir breakpoint

Informações de Depuração

  • get_stack_frames - Obter informações do quadro de pilha
  • get_local_variables - Obter variáveis locais
  • get_registers - Obter registradores
  • read_memory - Ler conteúdo da memória

Licença

MIT