README
🚀 WinDbg崩溃分析的MCP服务器
这是一个模型上下文协议(MCP)服务器,它将AI模型与WinDbg连接起来,用于崩溃转储分析和远程调试。它可以帮助开发者更高效地分析Windows系统的崩溃问题,借助AI的能力,通过自然语言查询执行调试命令。
🚀 快速开始
前提条件
- 安装了 Windows调试工具 或从 Microsoft Store下载WinDbg 的Windows系统。
- Python 3.10 或更高版本。
- 任何兼容MCP的客户端(如GitHub Copilot、Claude Desktop、Cline、Cursor、Windsurf等)。
- 在所选客户端中配置MCP服务器。
⚠️ 重要提示
在企业环境中,MCP服务器的使用可能会受到组织政策的限制。在继续操作之前,请与您的IT团队核实AI工具的使用情况,并确保您拥有必要的权限。
安装
pip install mcp-windbg
✨ 主要特性
- 作为一个由AI驱动的工具,它将大语言模型(LLMs)与WinDbg连接起来,用于崩溃转储分析和实时调试。
- 支持通过自然语言查询执行调试命令,例如 "Show me the call stack and explain this access violation"。
- 不是一个神奇的自动修复解决方案,而是一个基于Python封装的CDB工具,利用大语言模型的知识辅助调试。
- 支持多种使用模式:
- 崩溃转储分析:检查Windows崩溃转储文件。
- 实时调试:连接到远程调试目标。
- 目录分析:处理多个转储文件以查找模式。
- 支持多种传输协议:
stdio(默认):标准输入/输出,适用于本地MCP客户端,如VS Code、Claude Desktop。streamable-http:支持流式传输的HTTP协议,适用于具有双向流功能的现代HTTP客户端。
📦 安装指南
不同传输方式启动服务
标准输入输出(默认)
mcp-windbg
# 或显式指定
mcp-windbg --transport stdio
流式HTTP
mcp-windbg --transport streamable-http --host 127.0.0.1 --port 8000
访问端点:http://127.0.0.1:8000/mcp
命令行选项
--transport {stdio,streamable-http} 传输协议(默认:stdio)
--host HOST HTTP服务器主机(默认:127.0.0.1)
--port PORT HTTP服务器端口(默认:8000)
--cdb-path PATH cdb.exe的自定义路径
--symbols-path PATH 自定义符号路径
--timeout SECONDS 命令超时时间(默认:30)
--verbose 启用详细输出
Visual Studio Code配置
全局用户配置
若要在所有工作区中使用MCP服务器,可使用全局用户配置:
- 按下
F1,输入>并选择 MCP: Open User Configuration。 - 将以下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"
}
}
}
}
这样,无需本地 .vscode/mcp.json 文件,即可在任何工作区中启用MCP Windbg。
HTTP传输配置
当需要单独运行MCP服务器时(如远程访问、共享服务器或调试服务器本身),可以使用HTTP传输:
- 手动启动服务器:
python -m mcp_windbg --transport streamable-http --host 127.0.0.1 --port 8000
- 配置VS Code通过HTTP连接:
{
"servers": {
"mcp_windbg_http": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}
💡 使用建议
有关工作区特定配置和替代配置,请参阅 安装文档,其中包含Claude Desktop、Cline和其他客户端的详细配置信息,以及仅用于工作区的设置。
配置完成后,重启MCP客户端并开始调试:
Analyze the crash dump at C:\dumps\app.dmp
💻 使用示例
基础用法
# 崩溃转储分析示例
Analyze this heap address with !heap -p -a 0xABCD1234 and check for buffer overflow
Execute !peb and tell me if there are any environment variables that might affect this crash
Run .ecxr followed by k and explain the exception's root cause
# 远程调试示例
Connect to tcp:Port=5005,Server=192.168.0.100 and show me the current thread state
Check for timing issues in the thread pool with !runaway and !threads
Show me all threads with ~*k and identify which one is causing the hang
📚 详细文档
| 主题 | 描述 | |------|------| | 入门指南 | 快速设置和初始步骤 | | 安装说明 | pip安装、MCP注册表安装以及从源代码安装的详细步骤 | | 使用方法 | MCP客户端集成、命令行使用和工作流程 | | 工具参考 | 完整的API参考和示例 | | 故障排除 | 常见问题及解决方案 |
🔧 技术细节
MCP兼容性
该服务器实现了 模型上下文协议(MCP),因此与任何支持MCP的客户端兼容。MCP的优势在于,只需编写一次服务器,就可以在任何地方使用。您可以选择自己喜欢的AI助手!
工具列表
| 工具 | 用途 | 使用场景 |
|------|------|------|
| list_windbg_dumps | 列出崩溃转储文件 | 发现和批量分析 |
| open_windbg_dump | 分析崩溃转储文件 | 初始崩溃转储分析 |
| close_windbg_dump | 清理转储会话 | 资源管理 |
| open_windbg_remote | 连接到远程调试 | 实时调试会话 |
| close_windbg_remote | 清理远程会话 | 资源管理 |
| run_windbg_cmd | 执行WinDbg命令 | 自定义分析和调查 |
📄 许可证
本项目采用MIT许可证。
🌟 其他信息
博客文章
阅读开发历程:崩溃分析的未来:AI与WinDbg的结合
扫码联系在线客服