mcpField
G
GDB MCP Server

GDB MCP Server

本地服务
github.com/smadi0x86开发工具743 周前更新

关于 GDB MCP Server

MDB-MCP 是一个 MCP 服务,让 AI 助手能够驱动 GDB 或 LLDB 进行二进制程序调试与分析。它适合需要设置断点、查看内存和调用栈的开发者与安全研究人员。

主要功能

  1. 01启动 GDB 或 LLDB 调试会话
  2. 02执行任意 gdb 或 lldb 命令
  3. 03暂停正在运行的程序
  4. 04终止程序并关闭会话
  5. 05查询可用调试器及会话状态

适用场景

  1. 01让 AI 助手分析程序崩溃的原因(如段错误)
  2. 02在调试过程中设置断点并查看调用栈与内存
  3. 03结合 pwndbg 或 GEF 等 GDB 扩展进行分析

MCP 相关

该项目是 MCP 服务,向 MCP 客户端提供 debugger_status、debugger_start、debugger_command 等工具,用于控制调试会话。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MDB-MCP

CI

一个为 AI 助手提供真实调试器的 MCP 服务。它驱动 GDB 或 LLDB,让助手能够像你一样设置断点、运行程序、读取内存和查看调用栈。

使用 mdb-mcp 查找 NULL 指针解引用问题

安装

你需要 uv 和至少一个调试器:

# Debian / Ubuntu
sudo apt install gdb lldb python3-lldb

# macOS (LLDB ships with the Xcode command line tools)
xcode-select --install

然后将服务添加到客户端。Claude Code 的配置:

claude mcp add mdb -- uvx --from git+https://github.com/smadi0x86/MDB-MCP mdb-mcp

Claude Desktop、Cursor 或 Windsurf 的配置:

{
  "mcpServers": {
    "mdb": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/smadi0x86/MDB-MCP", "mdb-mcp"]
    }
  }
}

VS Code 在 .vscode/mcp.json 的 "servers" 下使用相同的配置项,并添加 "type": "stdio"。在使用 WSL 的 Windows 上,将 "command": "wsl" 设为命令,并将 uvx 的完整路径放在 args 的开头。

工具

debugger_status      which debuggers are usable, and the open sessions
debugger_start       start a gdb or lldb session, optionally loading a program
debugger_command     run any gdb or lldb command
debugger_interrupt   pause a running program, like Ctrl-C
debugger_terminate   kill the program and close the session

其他所有内容都是普通的调试器命令,因此 break main、bt、x/16gx $sp 和 frame variable 都可以使用。让程序继续运行的命令会等待程序停止(默认等待 10 秒,每次调用都可调整)。如果程序仍在运行,助手可以中断程序或继续等待。

Linux 上默认使用 GDB,macOS 上默认使用 LLDB。也可以明确指定其中任意一个。GDB 会加载你的 ~/.gdbinit,因此 pwndbg 和 GEF 仍可正常使用。

试用

make -C examples

然后询问你的助手 examples/crash 为什么会发生段错误(请提供绝对路径)。

配置

如果要使用 PATH 中的调试器以外的调试器,请在客户端配置中服务的 env 里设置:

"env": {
  "MDB_GDB_PATH": "gdb-multiarch",
  "MDB_LLDB_PATH": "/opt/homebrew/opt/llvm/bin/lldb"
}

故障排除

如果 LLDB 显示为不可用,debugger_status 会说明原因。在 Debian 和 Ubuntu 上,通常是缺少 python3-lldb,而它必须与 LLDB 版本匹配。

程序无法读取键盘输入。请改为从文件读取:

run < input.txt                    # gdb
process launch -i input.txt        # lldb

如果在 Linux 上附加到正在运行的进程失败,请检查 /proc/sys/kernel/yama/ptrace_scope。值为 1 时,只允许调试子进程。

安全

调试器可以运行 shell 命令(shell、python、platform shell、script),而你调试的程序会以你的用户身份运行。只调试你信任的代码;除非处于沙箱中,否则请对 debugger_command 保持工具审批开启。

开发

uv sync
uv run pytest                      # tests for a missing debugger are skipped
uv run ruff check . && uv run ruff format --check .

上方的演示由 demo/record.py 通过真实的工具调用录制。有关如何重新生成演示,请参阅该文件的开头。

许可证

GPL-3.0

MseeP.ai 安全评估徽章

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。