← 返回目录
M

MCP Server for WinDbg Crash Analysis

社区
让 AI 用自然语言驱动 WinDbg 分析 Windows 崩溃转储与内核调试
GitHub 源仓库 ↗
★ 1.6k Stars 分类 · 开发工具 非常热门
67FMRS · C

该服务器由个人开发者维护(仓库 svnscha/mcp-windbg,MIT 许可),不属于 Microsoft 或 MCP 协议的官方项目。它把 cdb.exe / kd.exe 封装成十个 MCP 工具,覆盖转储分析、用户态远程调试、内核调试、批量分类与输出过滤,支持 stdio 与 streamable-HTTP 两种传输,并提供 Claude Code 插件与 VS Code 等客户端配置。它适合在 Windows 上做崩溃与驱动问题排查、并已使用 MCP 客户端的开发者;不适合非 Windows 环境或期望自动修复的用户。使用前应确认调试工具已安装、理解实时与内核会话会中断目标、并通过过滤脚本控制敏感数据外泄。

可靠性
11/20
安全与权限
12/20
维护活跃度
13/20
文档质量
17/20
安装易用性
14/20
查看 FMRS 评分方法 →

这是一个把 AI 模型与 WinDbg 连接起来的 Model Context Protocol 服务器,用于 Windows 崩溃转储分析、用户态远程调试以及内核调试。它在底层调用 Windows 调试器:用户态(转储文件与 -remote)使用 CDB,内核目标(-k)使用 KD。它并不是自动修复工具,而是 cdb.exe / kd.exe 的 Python 封装,让 LLM 能够执行真实的调试器命令并对输出进行推理。每次 open_* 调用都会返回一个 session_id,可同时打开多个会话(转储、远程、内核)并分别寻址;每个调用都有超时,运行缓慢的实时命令会被 CTRL+BREAK 中断并重新同步。支持 stdio 本地运行,也支持以 streamable-HTTP 服务方式从其他机器驱动;可通过 --filter-script 在数据离开本机前对工具参数与输出进行脱敏。

工具能力

list_dumps
列出某个目录中的崩溃转储文件
open_cdb_dump
打开并初步分析一个崩溃转储
open_cdb_remote
附加到用户态远程调试服务器(-remote)
open_kd_session
附加到内核目标(-k,KDNET / 命名管道 / 串口)
run_cdb_command
在用户态会话上运行命令
run_kd_command
在内核会话上运行命令
close_cdb_session
关闭用户态会话
close_kd_session
关闭内核会话(会恢复目标机器运行)
send_ctrl_break
中断到正在运行的实时会话
wait_for_break
等待用 g 恢复运行的目标再次停止

安装接入

  1. 前置条件:Windows 上安装 Debugging Tools for Windows 或 Microsoft Store 的 WinDbg,以获得 cdb.exe 与 kd.exe(服务器会自动检测)。2. 在 Claude Code 中可用插件方式:先 /plugin marketplace add svnscha/mcp-windbg,再 /plugin install mcp-windbg-uvx@mcp-windbg,需要 uv(winget install astral-sh.uv)以提供 uvx。3. 或者手动注册:pip install mcp-windbg(需要 Python 3.10+),然后执行 claude mcp add mcp-windbg -s user -e _NT_SYMBOL_PATH="SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -- python -m mcp_windbg。4. 其他客户端:安装后在配置中把命令指向 python -m mcp_windbg;VS Code(GitHub Copilot)按 F1 选择 MCP: Open User Configuration,填入示例中的 servers 配置。5. 重启客户端后即可用自然语言请求分析转储或连接调试目标。可选参数包括 --cdb-path、--kd-path、--symbols-path、--filter-script、--transport 等。
claude_desktop_config.json
{
  "servers": {
    "mcp_windbg": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "mcp_windbg"],
      "env": {
        "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
      }
    }
  }
}

选型与风险

适合谁

  • 需要在 Windows 上做崩溃转储与驱动/内核问题分析的开发者与支持人员
  • 已经使用 MCP 客户端(Claude Code、GitHub Copilot、Claude Desktop、Cursor、Windsurf、Cline 等)并希望用自然语言驱动 WinDbg 的用户
  • 希望把 cdb/kd 会话(转储、远程、内核)并行管理并自动化分析的团队
  • 需要在调试输出离开本机前过滤敏感信息的环境

不适合谁

  • 非 Windows 平台:转储分析依赖 cdb.exe,内核调试依赖 kd.exe
  • 期望自动修复程序缺陷的用户:它只执行真实调试器命令并让模型推理输出
  • 未获得组织许可就希望在受管控企业环境中使用 AI 工具的用户
  • 尚未在系统中安装调试工具(cdb.exe / kd.exe)的用户

所需权限

  • 在 Windows 主机上执行本地进程(cdb.exe / kd.exe 及 Python 包)
  • 读取本地转储文件(.dmp/.mdmp/.hdmp)与目标目录
  • 在用户态远程调试时建立 TCP、命名管道或 COM 连接
  • 在内核调试时建立 KDNET、命名管道或串口连接(会等待并中断目标机器)
  • 可选:通过 --filter-script 过滤工具参数与输出;配置自定义 CDB_PATH 与符号路径 _NT_SYMBOL_PATH

风险与副作用

  • 内核会话关闭时会恢复目标机器运行,若目标正在处理关键状态可能带来影响
  • 附加到实时(远程或内核)会话会中断目标执行,可能影响生产或共享环境
  • 若未配置 --filter-script,转储中的敏感信息可能随工具输出发送给模型
  • 企业环境使用 MCP 与 AI 工具可能受到组织策略限制,需事先确认权限
  • 符号路径默认使用 Microsoft 符号服务器,意味着调试过程会访问外部网络

常见排障

  1. 若提示找不到 cdb.exe/kd.exe,请确认已安装调试工具,或通过 CDB_PATH、--cdb-path、--kd-path 显式指定路径
  2. 符号解析失败或缺失时,检查 _NT_SYMBOL_PATH、--symbols-path 设置(默认指向 Microsoft 符号服务器)
  3. 实时会话命令超时会被 CTRL+BREAK 中断并重新同步;如仍无响应,可用 send_ctrl_break 手动中断
  4. 内核会话需要目标可被连接(KDNET/命名管道/串口),请确认连接参数与目标状态
  5. 远程调试连接失败时,检查 TCP、命名管道或 COM 的连接串与可达性
  6. HTTP 传输无响应时,确认已使用 --transport streamable-http 与正确的 --port(默认 8000),并访问 http://localhost:{port}/mcp

使用场景

分析崩溃转储:定位异常、出错栈帧以及原因
通过 cdb -server 中断到正在运行的用户态进程,检查挂起或实时状态
调试启用了 KD 的机器或虚拟机上的驱动、蓝屏(bugcheck)与启动问题
批量分析一个目录中的多个转储,找出共同特征
在调试主机上运行 HTTP 服务,从另一台机器远程驱动
对包含 PII 或密钥的转储,在输出离开本机前进行脱敏

支持客户端

Claude Code完整支持
GitHub Copilot (VS Code)完整支持
Claude Desktop完整支持
Cursor完整支持
Windsurf完整支持
Cline完整支持