GDB调试服务器

gdb-mcp是一个Python MCP服务器,将常见的GDB操作转化为MCP工具,适用于交互式AI辅助调试、可重复的本地调试工作流以及轻量级集成到MCP兼容客户端。

  • by arih04x
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 arih04x/gdb-mcp

使用说明

gdb mcp

英语| 简体中文

GDB MCP Server for AI Debugging Workflows

Expose practical GDB capabilities as MCP tools for assistants and automation.

概述

gdb-mcp 是一个Python MCP服务器,它将常见的GDB操作转换为MCP工具。 其设计用于:

  • 交互式人工智能辅助调试
  • 可重复的本地调试工作流
  • 轻量级集成到MCP兼容客户端

主要特点

  • 多会话GDB管理
  • 程序加载/进程附加/堆芯转储加载
  • 断点生命周期和执行控制(set/list/toggle/delete, continue, step, next)
  • 使用结构化字段进行运行时检查:回溯帧、寄存器、内存、表达式
  • 通过以下方式进行轻量级GDB/MI解析 pygdbmi (gdb_command 包括 miRecords 当MI线存在时)
  • MCP客户端配置安装程序(gdb-mcp install)

结构化的第一响应策略:

  • 当结构化解析成功时(例如 miRecords/frames/registers/breakpoints),相应的原始文本字段被省略。
  • 当结构化解析没有产生可用数据时,原始文本仅作为后备。

快速开始

要求:

  • Python 3.11+
  • uv
  • gdb

安装并运行:

uv sync --extra dev
uv run gdb-mcp

运行时模式和配置

gdb-mcp 从以下位置读取运行时配置:

  1. GDB_MCP_CONFIG (支持相对路径)
  2. 默认 ./config.json 在项目根中

环境变量可以覆盖配置值:

  • GDB_MODE=default|advanced
  • GDB_MCP_MAX_OUTPUT_CHARS=<int>

使用 gdb_get_capabilities 在运行时检查活动模式/策略。 在 default 模式,高级工具隐藏 tools/list.

模式意图:

  • default:稳定的基线,具有高频调试功能,足以满足大多数日常调试工作流程。
  • advanced:延伸 default 具有更深入、可定制的分析流程,用于复杂的调试和更深入的面向pwn的需求。

命令行命令

uv run gdb-mcp doctor
uv run gdb-mcp install
uv run gdb-mcp install --client Codex
uv run gdb-mcp config
uv run gdb-mcp uninstall

install 现在支持一个完整的跨平台客户端矩阵(类似于arida pro mcp风格),以及 --client 可以将安装范围限定到选定的客户端。

刀具清单

  • gdb_start
  • gdb_get_capabilities
  • gdb_load
  • gdb_command
  • gdb_terminate
  • gdb_list_sessions
  • gdb_set_breakpoint
  • gdb_list_breakpoints
  • gdb_delete_breakpoints
  • gdb_toggle_breakpoints
  • gdb_continue
  • gdb_step
  • gdb_next
  • gdb_backtrace
  • gdb_print
  • gdb_examine
  • gdb_info_registers
  • gdb_attach (仅高级)
  • gdb_load_core (仅高级)
  • gdb_set_watchpoint (仅高级)
  • gdb_info_threads (仅高级)
  • gdb_thread_select (仅高级)
  • gdb_frame_select (仅高级)
  • gdb_collect_crash_report (仅高级)

示例

看 示例/USAGE.md.

构建示例:

cd examples
gcc -g -O0 crash.c -o crash

测试

uv run pytest -q

故障排除

  • gdb 未找到:运行 uv run gdb-mcp doctor 并安装 gdb 第一。
  • MCP工具意外失败:请验证您的目标路径和会话id。
  • 未安装客户端配置:运行 gdb-mcp install 并重新启动MCP客户端。