mcpField
M
MCP Server for WinDBG Crash Analysis

MCP Server for WinDBG Crash Analysis

本地服务
svnscha.de开发工具1.6k5 天前更新

关于 MCP Server for WinDBG Crash Analysis

这是一个 MCP 服务,将 AI 模型与 WinDbg 连接,用于崩溃转储分析、用户模式远程调试和内核调试。它封装 cdb.exe 和 kd.exe 以无界面方式运行,面向希望使用其他 MCP 客户端或批量分析转储的用户。

主要功能

  1. 01崩溃转储自动分析与初步诊断
  2. 02用户模式远程调试,支持 TCP、命名管道和 COM
  3. 03内核调试,通过 KDNET、命名管道或串口连接
  4. 04可执行任意 WinDbg 或 KD 命令
  5. 05支持多个会话同时打开并独立寻址
  6. 06内置文本过滤脚本,可脱敏敏感信息

适用场景

  1. 01根因分析 .dmp 崩溃转储或蓝屏转储
  2. 02调试挂起的实时用户模式进程
  3. 03批量比对文件夹中的多个转储以寻找共同特征

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 WinDbg 调试工具,如 open_cdb_dump、run_cdb_command 和 open_kd_session 等工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"windbg": {
"command": "uvx",
"args": [
"mcp-windbg"
],
"env": {
"CDB_PATH": "<CDB_PATH>",
"_NT_SYMBOL_PATH": "<_NT_SYMBOL_PATH>"
}
}
}
}
启动命令uvx mcp-windbg
需要配置的环境变量
CDB_PATHCustom path to cdb.exe (optional)
_NT_SYMBOL_PATHSymbol path for Windows debugging (optional, defaults to Microsoft symbol server)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-windbg1.6.0

工具

还没有获取到工具列表

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

详细介绍

用于 WinDbg 崩溃分析的 MCP 服务

CI Docs PyPI License: MIT Platform: Windows Python 3.10+

一个模型上下文协议服务,可将 AI 模型与 WinDbg 连接起来,用于崩溃转储分析、用户模式远程调试和内核调试。

提示

想要直接集成在 WinDbg 中的 AI 调试功能? Microsoft 现已发布官方 WinDbg MCP,从 WinDbg 1.2610.1001.0 开始提供。你可以在 WinDbg 的 MCP 服务 设置中启用它,然后在 VS Code 中通过 GitHub Copilot,或通过 GitHub Copilot CLI, 与当前调试会话聊天。如果这正是你需要的,请从这里开始:

本项目是由社区独立构建的替代方案。它以无头模式运行 cdb.exe / kd.exe, 适用于想要使用其他 MCP 客户端、通过 HTTP 从另一台机器驱动调试器,或在不打开 WinDbg UI 的情况下对大量转储 编写脚本进行分诊的场景。

概览

此服务驱动 Windows 调试器——用户模式使用 CDB(用于转储和 -remote),内核目标(-k)使用 KD——让你可以用自然语言进行调试:“显示调用堆栈并解释此访问冲突”,或 “打开一个内核会话,告诉我哪个驱动程序触发了错误检查。”

它并非能神奇地自动修复问题的工具,而是一个 Python 封装器,可让大模型运行真实的调试器命令并分析输出。

功能

  • 崩溃转储分析 - 打开 .dmp/.mdmp/.hdmp,通过一次调用自动完成分诊(!analyze -v、堆栈、模块、线程)。
  • 用户模式远程调试 - 通过 TCP、命名管道或 COM,连接到正在运行的 cdb/WinDbg 调试服务(-remote),并按需中断。
  • 内核调试 - 通过 KDNET、命名管道或串行连接到内核目标(-k,由 kd.exe 驱动);服务会等待目标就绪并为你中断。
  • 运行任意 WinDbg/KD 命令 - 用自然语言驱动已打开的会话,执行任意命令(kb、!process 0 0、!heap、lm 等)。
  • 会话 ID - 每次打开会话都会返回一个会话 ID;可同时打开多个会话(转储、远程、内核),并分别访问。
  • 弹性实时会话 - 支持每次调用的超时;如果耗时较长的实时命令超过超时时间,服务会发送 CTRL+BREAK 中断命令,并重新同步会话,而不会导致会话卡死。
  • 多转储分诊 - 在目录中查找并比较多个转储。
  • 文本过滤钩子 - 可通过 --filter-script 在工具参数和输出离开计算机前对其中的个人身份信息/机密进行脱敏。
  • stdio 或 HTTP - 可在本地通过 stdio 运行,也可作为可流式传输的 HTTP 服务运行,供另一台机器驱动。

使用场景

你有你想要指南
来自崩溃或蓝屏的 .dmp找出根本原因:异常或错误检查、故障帧以及发生原因分析崩溃转储
一个实时用户模式进程(通过 cdb -server)中断并检查挂起或实时状态调试远程目标
一台启用了 KD 的计算机或 VM调试驱动程序、错误检查和启动时问题调试内核目标
一个装满转储文件的文件夹对批次进行分诊并找出共同特征对多个转储文件进行分诊
一台调试主机,但你在其他地方工作通过 HTTP 从另一台计算机控制它从另一台计算机进行调试
包含机密或个人身份信息(PII)的转储文件在工具输出离开本机前对其进行清理编辑敏感数据

工具

每个 open_* 工具都会返回一个不透明的 session_id(例如 cdb-1a2b3c4d);将其传递给对应的 run_*、close_*、send_ctrl_break 和 wait_for_break 调用。用户模式目标(转储文件和 -remote)在 cdb.exe 下运行;内核目标和内核转储文件在 kd.exe 下运行。

工具用途
list_dumps列出目录中的崩溃转储文件
open_cdb_dump打开并对崩溃转储文件进行分诊
open_cdb_remote附加到用户模式远程调试服务(-remote)
open_kd_session附加到内核目标(-k、KDNET / 命名管道 / 串行连接)
open_kd_dump打开并对内核崩溃转储文件进行分诊(MEMORY.DMP、小型转储)
run_cdb_command在用户模式会话中运行命令
run_kd_command在内核会话中运行命令
close_cdb_session关闭用户模式会话
close_kd_session关闭内核会话(恢复目标计算机运行)
send_ctrl_break中断正在运行的实时会话
wait_for_break等待使用 g 恢复运行的目标再次停止

参数、超时和内置分诊提示词见工具参考。

快速开始

说明

**企业环境中的 Claude Code:**当托管设置定义了 allowedMcpServers 时, 插件捆绑的 MCP 服务可能会被静默跳过(Claude Code 问题 #32882)。 我建议手动安装并注册服务, 然后可选地添加技能或Agent插件。 该服务仍必须符合组织的 MCP 策略。

先决条件

  • Windows,安装了 Windows 调试工具或 Microsoft Store 中的 WinDbg,其中包含 cdb.exe 和 kd.exe(会自动检测)。
  • 任意兼容 MCP 的客户端(Claude Code、GitHub Copilot、Claude Desktop、Cursor、Windsurf、Cline 等)。

Python 本身不是先决条件。以下各安装方式会分别说明所需条件。

在 Claude Code 中安装

如有需要,先安装服务插件,然后可选地添加技能、Agent 或两者:

插件服务包含的工作流
mcp-windbg-uvx由插件通过 uvx 启动仅 MCP 工具
mcp-windbg-skills使用 uvx 插件或你自己的 MCP 连接四个可选技能
mcp-windbg-agents使用 uvx 插件或你自己的 MCP 连接可选的 crash-analyst Agent
使用 uvx 运行服务

最简捷的方式:两行即可,无需 pip install,也无需编辑 MCP 配置。添加 十一个工具,并预先配置好符号。技能和 Agent 需单独安装。

/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-uvx@mcp-windbg

需要 uv,它提供 uvx:winget install astral-sh.uv。插件会在首次使用时通过它从 PyPI 获取指定版本的服务,因此无需安装其他内容。有关符号和选项,请参阅插件 README。

自行注册服务

如果你不想使用插件,或者已经在运行该软件包:

pip install mcp-windbg
claude mcp add mcp-windbg -s user -e _NT_SYMBOL_PATH="SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -- python -m mcp_windbg

需要 Python 3.10 或更高版本。你可以添加以下任一可选插件,以获得引导式工作流或 Agent。

为现有服务添加技能

安装 uvx 插件或自行注册 mcp-windbg 后,可以选择添加这四项技能:

/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-skills@mcp-windbg

调用 /mcp-windbg-skills:analyze-dump、/mcp-windbg-skills:debug-remote、 /mcp-windbg-skills:kernel-debug 或 /mcp-windbg-skills:windbg-doctor。 此插件使用你已配置的 MCP 连接,不会添加服务、运行时、符号设置或 crash-analyst Agent。它适用于公开 mcp-windbg 工具的原生可执行文件、Python 安装或 HTTP 服务。 将此插件与用于服务的 uvx 一起安装,即可同时使用服务和技能;也可以不安装此插件,只使用工具。 从捆绑技能的版本升级时,请安装此插件以保留工作流; 它们的调用前缀将从 /mcp-windbg: 更改为 /mcp-windbg-skills:。 无论是否安装这些插件,服务的内置 MCP 提示词都可使用。有关更新或切换插件,请参阅插件指南。

为现有服务添加 Agent
/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-agents@mcp-windbg

请说:“在 C:\dumps\app.dmp 上使用 mcp-windbg-agents:crash-analyst Agent”。 它会通过你现有的 MCP 连接分析转储文件,并返回结论、证据和后续步骤。它既不需要 uvx,也不需要技能插件。 从捆绑 Agent 的版本升级时,请安装此插件以保留该 Agent。

无需 Python 即可安装

每个发行版都附带 mcp-windbg.exe:这是一个已签名的可执行文件,包含自身的解释器和所有依赖项。 仍然需要 cdb.exe。将客户端的 command 指向该文件,并且不提供任何 args。

发行版还会发布 SHA256SUMS,且二进制文件经过代码签名,因此两者均可验证:

(Get-FileHash .\mcp-windbg.exe -Algorithm SHA256).Hash
Get-AuthenticodeSignature .\mcp-windbg.exe | Format-List Status, SignerCertificate

Status 应显示为 Valid。签名者是 Liasoft GmbH,该公司为签名证书提供支持;本项目由 Sven Scharmentke 编写。

在其他客户端中安装

pip install mcp-windbg

需要 Python 3.10 或更高版本。然后将客户端指向 python -m mcp_windbg。对于 VS Code (GitHub Copilot),按 F1 并选择 MCP:打开用户配置,即可在每个工作区中启用:

{
    "servers": {
        "mcp_windbg": {
            "type": "stdio",
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

有关 Claude Desktop、Copilot CLI、Autohand Code、HTTP 和从源代码安装的设置,请参阅客户端配置指南。

开始调试

重启客户端,然后提出你的需求:

Analyze the crash dump at C:\dumps\app.dmp
Connect to tcp:Port=5005,Server=192.168.0.100 and show me the current thread state
Open a kernel session on net:port=50000,key=1.2.3.4, run !analyze -v, and tell me which driver bugchecked

服务选项(--cdb-path、--kd-path、--symbols-path、--filter-script、--transport 等)请参阅命令行参考。

文档

svnscha.github.io/mcp-windbg

主题描述
入门指南配置并进行首次崩溃转储分析
分析崩溃转储找出异常根因:故障帧以及异常发生的原因
调试远程目标附加到正在运行的用户模式进程并检查卡顿问题
调试内核目标通过 KDNET 或管道调试驱动程序、错误检查和启动时问题
对多个转储进行分类扫描文件夹并找出共同特征
从另一台计算机进行调试通过 HTTP 运行服务并远程控制
编辑敏感数据在工具输出离开本机前清除机密信息
参考工具、提示词、CLI 选项和客户端配置
故障排除常见问题及解决方案
开发从本地检出版本运行,并将客户端指向开发构建

博客

了解开发历程:崩溃分析的未来:AI 遇上 WinDbg

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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