使用说明
gdb-mcp服务器
英语
概述
这 gdb mcp 该项目实现了一个模型上下文协议(MCP)服务器,该服务器向基于LLM的客户端公开了一组丰富的GDB15.x功能。它启动了一个互动 gdb 进程,通过MI2接口转发命令,并返回结构化响应,从而实现逐步调试、断点管理、内存检查和来自自动化代理的远程目标控制。
关键能力包括:
- 异步GDB会话管理,自动空闲关闭(默认90秒,可通过配置
GDB_MCP_IDLE_TIMEOUT). - 简化了22个统一的MCP工具 (从62个减少),以提高LLM上下文效率,同时保持完整的GDB功能。
- 高级工具整合了类似的操作:
breakpoint_control,execution_step,data_control等等。 - 令牌感知MI输出解析、错误传播和多步操作的命令批处理。
- 对路径、地址、正则表达式过滤器和监视器/线程命令进行包装级别验证。使用
run_gdb_command仅当您有意需要原始GDB控制台访问时。 - 使用Python 3.12的容器化分发、基于UV的依赖管理和捆绑
gdb用于可重复的环境。
建筑亮点
- 工具整合: 62 → 22 工具(减少64.5%)提高了LLM上下文窗口的使用率
- 统一接口:将类似的操作分组到具有动作参数的单个工具中
- 全功能覆盖:通过整合的API保留所有GDB功能
仓库的规划
src/mcp-gdb/gdb_session.py–GDB MI解释器周围的异步包装器,具有结果解析和超时处理功能。src/mcp-gdb/server.pyMCP服务器定义,配备22个整合工具,提供全面的GDB访问。docs/eng,docs/kor–文档工具使用的简明GDB功能参考。mcp.json–参考Docker和本地MCP客户端配置uv run执行。pyproject.toml–运行时和测试依赖元数据。Dockerfile–通过以下方式建立生产形象python:3.12-slim、UV包管理和预安装gdb.images/running_screen.png–Docker中运行的服务器的示例截图。
快速开始
# Build the container image
$ docker build -t gdb-mcp:latest .
# Run the MCP server (stdio transport)
$ docker run --rm -i \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-v "$PWD":/workspace \
gdb-mcp:latest
服务器等待MCP兼容客户端(例如桌面LLM应用程序)通过stdio连接。连接后,您可以:
- 呼叫
start_session启动GDB,可以选择指定目标二进制文件或参数。 - 使用以下工具
breakpoint_control,program_control,stack_control,data_control,或remote_control以驱动调试。 - 依靠
get_feature_reference/list_reference_topics用于快速查找GDB文档。 - 可选设置
session_id关于保持单独命名GDB会话的工具。 - 允许自动空闲监视器在不活动时关闭空闲会话。
对于MCP客户,复制和改编 mcp.json.更换 /absolute/path/to/debug/workspace 主机目录应显示为 /workspace Docker内部。
对于没有Docker的本地开发:
$ uv sync --extra dev
$ uv run gdb-mcp
配置
GDB_MCP_IDLE_TIMEOUT–会话停止前的不活动秒数(默认值90).GDB_MCP_LOGLEVEL–Python日志级别(INFO,DEBUG等等)。
开发笔记
- 在本地安装依赖项:
uv sync --extra dev. - 跑
uv run pytest用于测试和python -m compileall src用于轻量级语法检查。 - 参见
docs/eng/gdb-feature-list.md(英文)或docs/kor/gdb-feature-list.md(韩语)用于扩展服务器时的工具覆盖。