GDB MCP Server
Um servidor MCP que permite que clientes LLM interajam com o GDB para depuração e análise binária.
Documentação
Servidor MCP Multi-Depurador (LLDB e GDB)
Um servidor Model Context Protocol que fornece funcionalidade de depuração para os depuradores GDB e LLDB, para uso com Claude Desktop, VSCode Copilot ou outros assistentes de IA.
Início Rápido
uv sync
uv venv
uv run server.py
Integração
Observe que você pode usar uv run para executar o script server.py ou pode usar uv venv para criar um ambiente virtual e depois executar /home/youruser/dev/personal/GDB-MCP/.venv/bin/python /home/youruser/dev/personal/GDB-MCP/server.py.
Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"gdb": {
"command": "uv",
"args": ["run", "/home/youruser/dev/personal/GDB-MCP/server.py"],
"disabled": false
}
}
}
VSCode Copilot
Se você estiver 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"
]
}
}
}
Se você não estiver 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"]
}
}
}
Suporte Experimental a LLDB (macOS)
Este projeto inclui suporte nativo experimental a LLDB juntamente com GDB, com seleção automática de depurador.
Instalação
Para habilitar o suporte a LLDB no macOS, instale LLVM (que inclui LLDB) e python via Homebrew:
# Install LLDB for supporting python3.14 bindings
brew install llvm python3
# Install MCP and debugging dependencies
pip3 install mcp pygdbmi --break-system-packages
Ferramentas Disponíveis
Ferramentas Unificadas
debugger_status(): Mostrar depuradores disponíveis e seu statusdebugger_start(): Iniciar sessão de depuração com depurador auto-detectadodebugger_terminate(session_id): Encerrar sessão de depuraçãodebugger_list_sessions(): Listar todas as sessões de depuração ativasdebugger_command(session_id, command): Executar comando do depurador
Ferramentas LLDB
lldb_start(): Iniciar nova sessão de depuração LLDBlldb_terminate(session_id): Encerrar sessão de depuração LLDBlldb_list_sessions(): Listar todas as sessões LLDB ativaslldb_command(session_id, command): Executar comando LLDB arbitrário
Ferramentas GDB
gdb_start(gdb_path): Iniciar nova sessão de depuração GDBgdb_terminate(session_id): Encerrar sessão de depuração GDBgdb_list_sessions(): Listar todas as sessões GDB ativasgdb_command(session_id, command): Executar qualquer comando GDB
Use as funções
*_command()para todas as operações avançadas do depurador, seu cliente LLM já deve saber como usá-las, mas não custa mencionar.
Verificando o Status
Você pode verificar a disponibilidade do depurador:
from modules.lldb import LLDBSessionManager
from modules.gdb import GDBSessionManager
print("LLDB available:", LLDBSessionManager.is_available())
print("GDB available:", GDBSessionManager.is_available())
Testes
uv run python run-tests.py --check-deps
uv run python run-tests.py --type all
Exemplos
Verifique o diretório examples para exemplos de prompts.
Os binários de exemplo são compilados para
arm64eamd64, escolha o que corresponde à arquitetura do seu sistema.
Licença
Este projeto é licenciado sob a Licença GNU Versão 3.0, consulte o arquivo LICENSE para obter detalhes.
