返回市场
GDB-MCP服务器

GDB-MCP服务器

作者:Chedrian072 星标更新:2025-09-30

项目介绍

gdb-mcp 服务器

运行中的MCP服务器

概述

gdb-mcp 项目实现了一个模型上下文协议(MCP)服务器,该服务器向基于LLM的客户端暴露了丰富的GDB 15.x功能集。它启动一个交互式的gdb进程,通过MI2接口转发命令,并返回结构化的响应,从而支持从自动化代理进行逐步调试、断点管理、内存检查和远程目标控制。

主要功能包括:

  • 带有自动空闲关闭的异步GDB会话管理(默认90秒,可通过GDB_MCP_IDLE_TIMEOUT配置)。
  • 精简的22个统一MCP工具(从62个减少),提高了LLM上下文效率,同时保持完整的GDB功能。
  • 高级工具整合相似操作:breakpoint_controlexecution_stepdata_control等。
  • 强大的MI输出解析、错误传播和多步骤操作的命令批处理。
  • 使用Python 3.12、基于UV的依赖管理以及捆绑的gdb进行容器化分发,以实现可重复的环境。

架构亮点

  • 工具整合:62 → 22工具(减少了64.5%),改善了LLM上下文窗口的使用
  • 统一接口:相似的操作被归类到单一工具中,带有动作参数
  • 全面特性覆盖:通过整合的API保留了所有GDB功能

仓库布局

  • src/mcp-gdb/gdb_session.py – 包含结果解析和超时处理的异步GDB MI解释器包装器。
  • src/mcp-gdb/server.py – 定义了具有22个整合工具的MCP服务器,提供全面的GDB访问。
  • docs/eng, docs/kor – 文档工具使用的简洁GDB特性参考。
  • Dockerfile – 使用python:3.12-slim构建生产镜像,采用UV包管理和预安装的gdb
  • images/running_screen.png – 在Docker中运行的服务器示例截图。

快速开始

# 构建容器镜像
$ docker build -t gdb-mcp:latest .

# 运行MCP服务器(标准IO传输)
$ docker run --rm -i \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    -v "$PWD":/workspace \
    gdb-mcp:latest

服务器等待一个兼容MCP的客户端(例如桌面LLM应用程序)通过标准IO连接。一旦连接,你可以:

  1. 调用start_session启动GDB,可选地指定目标二进制文件或参数。
  2. 使用如set_breakpointrun_programbacktraceevaluate_expressionconnect_remote等工具来驱动调试。
  3. 依靠get_feature_reference / list_reference_topics快速查找GDB文档。
  4. 允许自动空闲监视器在不活动时关闭会话。

配置

  • GDB_MCP_IDLE_TIMEOUT – 会话停止前的空闲秒数(默认90)。
  • GDB_MCP_LOGLEVEL – Python日志级别(如INFODEBUG等)。

开发笔记

  • 本地安装依赖项(可选):uv pip install --system -r <生成的需求> 或者在Docker容器内工作。
  • 运行python -m compileall src执行轻量级语法检查。
  • 扩展服务器时,参阅docs/eng/gdb-feature-list.md(英文)或docs/kor/gdb-feature-list.md(韩文)了解工具覆盖情况。