远程调试服务

基于MCP协议的GDB/MI协议服务器,提供远程应用调试能力,支持AI助手辅助调试。

  • by pansila
  • Rust
  • 本地部署
  • 68 星标
  • 更新于
在 GitHub 查看 pansila/mcp_server_gdb

使用说明

MCP服务器GDB

基于MCP协议的GDB/MI协议服务器,通过AI助手提供远程应用程序调试功能。

特性

  • 创建和管理GDB调试会话
  • 设置和管理断点
  • 查看堆栈信息和变量
  • 控制程序执行(运行、暂停、步进等)
  • 支持并发多会话调试
  • 一个内置的TUI,用于检查代理行为,以便您可以改进提示(WIP)

安装

预构建二进制文件

在发布页面中找到二进制文件,为每个工作平台选择一个,然后可以直接运行它。

从源代码构建

克隆存储库并按货物构建

cargo build --release
cargo run

Nix使用

如果安装了Nix,则可以在不克隆的情况下运行项目:

在本地运行(克隆后)

nix run .

从GitHub远程运行

nix run "git+https://github.com/pansila/mcp_server_gdb.git" -- --help

开发环境

要进入包含所有依赖项的开发shell:

nix develop

用法

  1. 直接运行它: ./mcp-server-gdb
  2. 服务器支持两种传输模式:
    • Stdio(默认):标准输入/输出传输
    • SSE:服务器发送事件传输,默认为 http://127.0.0.1:8080

配置

您可以通过修改来调整服务器配置 src/config.rs 文件或环境变量:

  • 服务器IP地址
  • 服务器端口
  • GDB命令超时时间(秒)

支持的MCP工具

会话管理

  • create_session -创建新的GDB调试会话
  • get_session -获取特定会话信息
  • get_all_sessions -获取所有会话
  • close_session -结束会话

调试控制

  • start_debugging -开始调试
  • stop_debugging -停止调试
  • continue_execution -继续执行
  • step_execution -进入下一行
  • next_execution -跳过下一行

断点管理

  • get_breakpoints -获取断点列表
  • set_breakpoint -设置断点
  • delete_breakpoint -删除断点

调试信息

  • get_stack_frames -获取堆栈帧信息
  • get_local_variables -获取局部变量
  • get_registers -获取注册信息
  • read_memory -读取内存内容

许可证

麻省理工学院