MCP Server GDB

使用说明

项目简介

MCP Server GDB 是一个基于 Model Context Protocol (MCP) 构建的服务器,它将 GDB 调试器封装成 MCP 服务,使得大型语言模型 (LLM) 客户端可以通过标准化的 MCP 协议,远程控制和使用 GDB 调试功能。该服务器旨在为 LLM 应用提供程序调试和分析的能力,例如在 LLM 驱动的智能 IDE 或代码助手中使用。

主要功能点

  • GDB 会话管理:支持创建、获取、列出和关闭 GDB 调试会话,允许多会话并发调试。
  • 断点管理:支持设置、获取和删除代码断点,方便程序调试过程中的控制。
  • 程序执行控制:提供启动、停止、继续、单步执行(步入、步过)等程序执行控制功能。
  • 调试信息获取:支持获取程序堆栈帧信息和局部变量信息,帮助分析程序状态。

安装步骤

  1. 安装 Rust 和 Cargo:确保你的开发环境中已安装 Rust 编程语言和 Cargo 包管理器。你可以访问 Rust 官网 按照指引进行安装。
  2. 克隆仓库:将 'mcp_server_gdb' 仓库克隆到本地。
    git clone https://github.com/pansila/mcp_server_gdb.git
    cd mcp_server_gdb
  3. 启动服务器:在仓库根目录下,使用 Cargo 构建并运行服务器。
    cargo run
    服务器默认使用 Stdio 传输模式,SSE 模式默认监听 'http://127.0.0.1:8080'。

服务器配置

MCP 服务器的配置主要涉及启动命令和参数,以便 MCP 客户端能够正确连接。以下是 MCP 客户端连接 'mcp_server_gdb' 服务器的配置示例(JSON 格式):

{
  "serverName": "mcp_server_gdb",
  "command": "cargo run",
  "args": []
}

参数注释:

  • 'serverName': 服务器名称,客户端用于标识和区分不同的 MCP 服务器。这里设置为 'mcp_server_gdb'。
  • 'command': 启动 MCP 服务器的命令。这里使用 'cargo run',表示在项目根目录下使用 Cargo 运行服务器。
  • 'args': 启动命令的参数列表,当前示例中为空,表示不传递额外参数。你可以根据需要添加参数,例如 '--transport sse' 切换到 SSE 传输模式,或 '--log-level debug' 调整日志级别。

其他配置:

服务器还支持通过修改 'src/config.rs' 文件或环境变量进行配置,包括:

  • 'SERVER_PORT': 服务器端口号(仅 SSE 模式)。
  • 'GDB_COMMAND_TIMEOUT': GDB 命令执行超时时间(秒)。

基本使用方法

  1. 启动 MCP 服务器:按照安装步骤启动 'mcp_server_gdb' 服务器。
  2. 配置 MCP 客户端:在 MCP 客户端中,配置服务器连接信息,使用上面提供的 JSON 配置示例。
  3. 连接服务器:启动 MCP 客户端并连接到 'mcp_server_gdb' 服务器。
  4. 调用工具:客户端连接成功后,可以调用服务器提供的工具进行 GDB 调试操作。例如,使用 'create_session' 创建调试会话,'set_breakpoint' 设置断点,'start_debugging' 开始调试等。具体的工具列表和参数请参考仓库 README.md 文档中 "Supported MCP Tools" 部分。

服务器信息