GDB MCP Server

GDB MCP Server

Enables AI agents to debug embedded systems by providing a comprehensive interface for GDB operations across multiple architectures like ARM and x86. It supports remote debugging via gdbserver or QEMU, allowing for detailed inspection of memory, registers, stack frames, and variables.

Category
访问服务器

README

GDB MCP Server

MCP服务器,用于AI Agent调试嵌入式系统程序。支持交叉编译GDB工具(aarch64、arm等),远程调试(gdbserver/QEMU),提供完整的调试信息查询功能。

功能特性

  • 多架构支持: aarch64-none-linux-gnu-gdb, arm-none-eabi-gdb, x86_64-gdb
  • 远程调试: 连接目标板的gdbserver或QEMU模拟器
  • 条件断点: 支持条件表达式断点
  • 完整调试信息: 寄存器、内存、堆栈、变量、线程等
  • MCP集成: 作为Claude Code或其他MCP客户端的工具使用

快速开始

1. 安装

npm install
npm run build

2. 配置MCP客户端

在Claude Code的设置中添加:

{
  "mcpServers": {
    "gdb": {
      "command": "node",
      "args": ["C:/Users/zjm09/Documents/work/2025/gdb-mcp/dist/index.js"]
    }
  }
}

3. 使用MCP工具

# 初始化GDB
gdb_init({architecture: "aarch64"})

# 连接目标
gdb_connect({target: "localhost:1234"})

# 加载程序
gdb_load_program({programPath: "./main"})

# 设置断点
gdb_set_breakpoint({location: "main.c:10"})
gdb_set_breakpoint({location: "factorial", condition: "n==0"})  # 条件断点

# 执行调试
gdb_run()
gdb_step()
gdb_next()

# 查看信息
gdb_list_registers()
gdb_read_registers({registers: ["pc", "sp"]})
gdb_list_locals()
gdb_evaluate_expression({expression: "x"})

工具列表

连接管理

工具 描述
gdb_init 启动GDB进程
gdb_connect 连接远程目标
gdb_disconnect 断开并终止GDB
gdb_load_program 加载可执行文件

执行控制

工具 描述
gdb_run 开始执行
gdb_continue 继续执行
gdb_step 单步进入函数
gdb_next 单步跳过函数
gdb_finish 执行到返回
gdb_interrupt 中断执行

断点管理

工具 描述
gdb_set_breakpoint 设置断点(支持条件)
gdb_delete_breakpoint 删除断点
gdb_list_breakpoints 列出断点
gdb_enable_breakpoint 启用断点
gdb_disable_breakpoint 禁用断点
gdb_set_condition 设置断点条件

内存/寄存器

工具 描述
gdb_read_memory 读取内存
gdb_list_registers 列出寄存器名
gdb_read_registers 读取寄存器值
gdb_write_register 写入寄存器

堆栈/变量

工具 描述
gdb_list_frames 列出调用栈
gdb_select_frame 选择栈帧
gdb_list_locals 列出局部变量
gdb_list_arguments 列出函数参数
gdb_evaluate_expression 计算表达式

线程管理

工具 描述
gdb_list_threads 列出线程
gdb_select_thread 选择线程

调试信息

工具 描述
gdb_get_current_location 获取当前位置
gdb_list_source_files 列出源文件
gdb_disassemble 反汇编

高级

工具 描述
gdb_command 执行原始GDB MI命令

测试

使用QEMU模拟

cd tests/test-program
make                # 交叉编译
bash start-qemu.sh  # 启动QEMU等待GDB连接

测试流程

  1. 启动QEMU后,使用MCP工具连接
  2. 设置断点、执行调试
  3. 查看变量、寄存器等调试信息

项目结构

gdb-mcp/
├── src/
│   ├── index.ts           # MCP服务器入口
│   ├── gdb/
│   │   ├── gdb-process.ts # GDB进程管理
│   │   ├── mi-parser.ts   # MI输出解析
│   │   ├── mi-commands.ts # MI命令构建
│   │   └── types.ts       # 类型定义
│   ├── schemas/           # Zod验证
│   └── constants.ts       # 配置常量
├── tests/
│   └ test-program/        # 测试程序
│   └ README.md
│   └ tsconfig.json
│   └ package.json

开发

npm run dev      # 开发模式(自动重载)
npm run build    # 编译
npm run inspector # 使用MCP Inspector测试

许可证

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选