概述

mcp-windbg 是一个 MCP (Model Context Protocol) 服务器,将 WinDbg/CDB/KD 桥接给 AI 模型,实现用自然语言分析崩溃转储、远程调试和内核调试。

本文记录在 WSL 环境下,通过 mcporter 集成 mcp-windbg 的完整方案。

环境前提

组件要求本机状态
Windows Debugging Toolscdb.exe + kd.exeC:\Program Files (x86)\Windows Kits\10\Debuggers\x64\
Windows Python 3.10+用于运行 mcp-windbgC:\Python312\python.exe
WSL mcporterMCP 客户端/路由器mcporter 0.9.0 (npm)

IMPORTANT

mcp-windbg 必须运行在 Windows 侧(需要 cdb.exe/kd.exe),不能直接用 WSL 的 Python。方案核心是 WSL 侧的 mcporter 通过 stdio 调用 Windows 侧的 Python

安装步骤

Step 1 — Windows 侧安装 mcp-windbg

在 WSL 中直接调用 Windows Python 进行安装:

bash
/mnt/c/Python312/python.exe -m pip install mcp-windbg

版本兼容性坑

mcp-windbg==1.0.0 依赖 mcp>=1.28.1,但 pip 会自动拉取 mcp 2.0.0,其中 McpError 被重命名为 MCPError,导致 ImportError。

解决方法:手动降级到 mcp<2.0

bash
/mnt/c/Python312/python.exe -m pip install "mcp>=1.28.1,<2.0"

验证安装成功后 mcp 版本应为 1.29.0

Step 2 — mcporter 注册

bash
mcporter config add mcp-windbg \
  --stdio "/mnt/c/Python312/python.exe -m mcp_windbg"

生成的配置文件(~/.openclaw/workspace/config/mcporter.json):

{}json
{
  "mcpServers": {
    "mcp-windbg": {
      "command": "/mnt/c/Python312/python.exe -m mcp_windbg"
    }
  }
}

Step 3 — 验证

bash
mcporter list mcp-windbg --schema

成功时会列出 9 个工具及其完整 schema:

mcp-windbg
  9 tools · 2316ms · STDIO /mnt/c/Python312/python.exe -m mcp_windbg

可用工具(9 个)

工具用途
list_dumps列出目录中的崩溃转储文件
open_cdb_dump打开并自动分检崩溃转储(!analyze -v
open_cdb_remote连接用户态远程调试服务器(-remote
open_kd_session连接内核调试目标(-k,KDNET/命名管道/串口)
run_cdb_command在用户态会话上执行 WinDbg 命令
run_kd_command在内核会话上执行 KD 命令
close_cdb_session关闭用户态会话
close_kd_session关闭内核会话(可选拁resume 目标机)
send_ctrl_break中断正在运行的实时会话

每个 open_* 调用返回一个 session_id,后续用该 id 操作对应会话。支持同时打开多个会话。

使用示例

通过 mcporter 调用

bash
# 列出 C:\dumps 下的转储文件
mcporter call mcp-windbg.list_dumps directory_path="C:\\dumps"
 
# 打开转储并自动分析
mcporter call mcp-windbg.open_cdb_dump dump_path="C:\\dumps\\app.dmp" include_stack_trace=true
 
# 在已打开的会话上执行命令
mcporter call mcp-windbg.run_cdb_command session_id="cdb-xxxx" command="kb"
 
# 关闭会话
mcporter call mcp-windbg.close_cdb_session session_id="cdb-xxxx"

通过 AI 自然语言(OpenClaw / Claude Code 等)

分析 C:\dumps\app.dmp 这个崩溃转储,告诉我崩溃原因和调用栈
连接 tcp:Port=5005,Server=192.168.0.100 并查看当前线程状态
打开内核会话 net:port=50000,key=1.2.3.4,执行 !analyze -v

环境变量(可选)

设置微软符号服务器路径,提升转储分析质量:

bash
# mcporter 配置中添加 env(如支持)
# 或在 Windows 侧设置环境变量
setx _NT_SYMBOL_PATH "SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols"

架构示意

┌─────────────────────────────────────────┐
│  WSL (Linux)                            │
│                                         │
│  mcporter  ──stdio──┐                   │
│    │                │                   │
│    │   /mnt/c/Python312/python.exe      │
│    │   -m mcp_windbg │                  │
└────┼────────────────┼──────────────────┘
     │                │
─────┼────────────────┼─── Windows ───────
     │                │
     ▼                ▼
  cdb.exe         kd.exe
  (用户态)        (内核态)
  .dmp 分析       KDNET/管道/串口

相关文章