使用说明(Markdown格式)

项目简介

pwndbg-mcp 是一个基于 MCP 的服务器实现,作为后端服务向 AI 客户端暴露 pwndbg/GDB 调试相关的资源、工具和提示模板,支持多种传输模式(stdio、HTTP、SSE),并实现对 GDB 的控制与交互。

主要功能点

  • 资源管理与数据访问:提供调试相关的资源接口(如可读取的状态信息、环境信息等)。
  • 工具注册与执行:暴露多种调试工具,LLM 客户端可以通过 JSON-RPC 风格调用外部功能(如加载可调试的可执行文件、执行 GDB 命令、读取/写入进程等)。
  • Prompt/输出渲染:将 GDB 交互结果格式化为 TOON 风格输出,便于 LLM 进行理解和处理。
  • 会话与状态管理:管理 GDB 实例、PDY/PTY 交互、指令执行的状态(如 Running/Stopped/Dead)。
  • 支持多传输协议:stdio、HTTP(流式)、SSE,便于在不同场景下与客户端通信。
  • 本地调试场景优先:设计聚焦本地调试能力,适合在受控环境中与 LLM 协同工作。

安装步骤

  • 克隆仓库并进入目录:
    • git clone https://github.com/RocketMaDev/pwndbg-mcp.git
  • 安装依赖(如 uv/环境、Python 包等,示例与实际环境配置相关)
  • 启动服务(参考以下“服务器配置”中的示例命令)
    • 直接运行:python pwndbg_mcp/main.py
    • 或通过工具包启动(提供的多种传输模式之一)

服务器配置(MCP 客户端配置JSON示例)

说明:MCP 客户端需要配置一个服务器条目,包含服务器名称、启动命令及参数,以便建立连接。本示例基于仓库信息给出一个可直接使用的配置示例。

{ "server_name": "pwndbg-mcp", "command": "python", "args": [ "pwndbg_mcp/main.py", "--transport", "http", "--host", "localhost", "--port", "8780", "--pwndbg", "gdb" ], "description": "pwndbg-mcp 服务端启动命令及参数,用于通过 HTTP 传输模式暴露 MCP 服务接口给客户端使用。" }

说明:

  • server_name 对应 MCP 服务器的名称,应与实际部署时的名称保持一致,便于区分与管理。
  • command 与 args 共同描述启动服务器所需的完整命令及参数,客户端据此建立连接。
  • 以上示例以 HTTP 传输模式为例,若使用 stdio 或 SSE,请将 transport、host、port 等参数调整为相应模式要求的值。

基本使用方法

  • 启动服务器后,MCP 客户端即可通过配置好的命令和参数连接到服务器,进行资源读取、工具执行、以及提示模板渲染等操作。
  • 登录或授权(若有)后,客户端通过 MCP 的请求格式(JSON-RPC 风格)发起请求,服务器处理并返回响应。
  • 常见操作包括:
    • 加载待调试的可执行文件(通过工具暴露的接口)
    • 发送 GDB 指令并获取输出
    • 读取/写入目标进程输出
    • 触发中断、继续执行、单步等调试控制
  • 安全性提示:如文档所述,涉及对可执行文件和进程的控制,请确保部署在受控环境中,避免暴露给不可信的外部客户端。

其他要点

  • 本实现提供多种传输模式,适用于不同的开发与测试环境。
  • GDB 交互通过 GDB/MI 协议实现,并对输出进行了格式化,便于后续由 LLM 进行解析和处理。
  • 代码结构中包含对 decomp2dbg 的集成入口(需要外部组件支持),如未使用可忽略相关功能。

信息

分类

AI与计算