svnscha/mcp-windbg

GitHub: svnscha/mcp-windbg

这是一个基于 Model Context Protocol 的服务器,用于将 AI 模型与 WinDbg/CDB 连接,以实现智能化的 Windows 崩溃转储分析与远程调试。

Stars: 1211 | Forks: 110

# WinDbg 崩溃分析的 MCP 服务器 这是一个 Model Context Protocol 服务器,用于将 AI 模型与 WinDbg 连接,以进行崩溃转储分析和远程调试。 ## 概述 此 MCP 服务器与 [CDB](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/opening-a-crash-dump-file-using-cdb) 集成,使 AI 模型能够分析 Windows 崩溃转储,并使用 WinDbg/CDB 连接到远程调试会话。 ## 这是什么? 一个 AI 驱动的工具,将 LLM 与 WinDbg 桥接,用于崩溃转储分析和实时调试。通过自然语言查询执行调试器命令,例如*"显示调用堆栈并解释此访问冲突"*。 ## 这不是什么 这不是一个神奇的自动修复解决方案。它是一个围绕 CDB 的 Python 封装,利用 LLM 的知识来协助调试。 ## 使用模式 - **崩溃转储分析**:检查 Windows 崩溃转储 - **实时调试**:连接到远程调试目标 - **目录分析**:处理多个转储以查找模式 ## 快速开始 ### 前置条件 - 安装了 [Debugging Tools for Windows](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) 或 [Microsoft Store 中的 WinDbg](https://apps.microsoft.com/detail/9pgjgd53tn86) 的 Windows。 - Python 3.10 或更高版本 - 任何兼容 MCP 的客户端(GitHub Copilot、Claude Desktop、Cline、Cursor、Windsurf 等) - 在您选择的客户端中配置 MCP 服务器 ### 安装 ``` pip install mcp-windbg ``` ## 传输选项 MCP 服务器支持多种传输协议: | 传输 | 描述 | 使用场景 | |-----------|-------------|----------| | `stdio`(默认) | 标准输入/输出 | 本地 MCP 客户端,如 VS Code、Claude Desktop | | `streamable-http` | 可流式 HTTP | 支持双向流式传输的现代 HTTP 客户端 | ### 使用不同的传输方式启动 **标准 I/O(默认):** ``` 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} Transport protocol (default: stdio) --host HOST HTTP server host (default: 127.0.0.1) --port PORT HTTP server port (default: 8000) --cdb-path PATH Custom path to cdb.exe --symbols-path PATH Custom symbols path --timeout SECONDS Command timeout (default: 30) --verbose Enable verbose output ``` ## Visual Studio Code 配置 要在所有工作区中使用 MCP 服务器,请使用全局用户配置: 1. 按 `F1`,键入 `>` 并选择 **MCP: Open User Configuration**。 2. 将以下 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" } } } } ``` 这可以在任何工作区中启用 MCP Windbg,而无需本地的 `.vscode/mcp.json` 文件。 ### HTTP 传输配置 对于需要单独运行 MCP 服务器的场景(例如,远程访问、共享服务器或调试服务器本身),您可以使用 HTTP 传输: **1. 手动启动服务器:** ``` python -m mcp_windbg --transport streamable-http --host 127.0.0.1 --port 8000 ``` **2. 配置 VS Code 通过 HTTP 连接:** ``` { "servers": { "mcp_windbg_http": { "type": "http", "url": "http://localhost:8000/mcp" } } } ``` 配置完成后,重启您的 MCP 客户端并开始调试: ``` Analyze the crash dump at C:\dumps\app.dmp ``` ## MCP 兼容性 此服务器实现了 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/),使其与任何启用 MCP 的客户端兼容: MCP 的美妙之处在于您只需编写一次服务器,它就可以在任何地方运行。选择您最喜欢的 AI 助手! ### 工具 | 工具 | 目的 | 使用场景 | |------|---------|----------| | [`list_windbg_dumps`](https://github.com/svnscha/mcp-windbg/wiki/Tools#list_windbg_dumps) | 列出崩溃转储文件 | 发现和批量分析 | | [`open_windbg_dump`](https://github.com/svnscha/mcp-windbg/wiki/Tools#open_windbg_dump) | 分析崩溃转储 | 初始崩溃转储分析 | | [`close_windbg_dump`](https://github.com/svnscha/mcp-windbg/wiki/Tools#close_windbg_dump) | 清理转储会话 | 资源管理 | | [`open_windbg_remote`](https://github.com/svnscha/mcp-windbg/wiki/Tools#open_windbg_remote) | 连接到远程调试 | 实时调试会话 | | [`close_windbg_remote`](https://github.com/svnscha/mcp-windbg/wiki/Tools#close_windbg_remote) | 清理远程会话 | 资源管理 | | [`run_windbg_cmd`](https://github.com/svnscha/mcp-windbg/wiki/Tools#run_windbg_cmd) | 执行 WinDbg 命令 | 自定义分析和调查 | | [`send_ctrl_break`](https://github.com/svnscha/mcp-windbg/wiki/Tools#send_ctrl_break) | 中断运行中的目标 | 实时调试期间中断执行 | ## 文档 **[文档](https://github.com/svnscha/mcp-windbg/wiki)** | 主题 | 描述 | |-------|-------------| | **[入门指南](https://github.com/svnscha/mcp-windbg/wiki/Getting-Started)** | 快速设置和第一步 | | **[安装说明](https://github.com/svnscha/mcp-windbg/wiki/Installation)** | 有关 pip、MCP 注册表和源码安装的详细说明 | | **[使用方法](https://github.com/svnscha/mcp-windbg/wiki/Usage)** | MCP 客户端集成、命令行使用和工作流程 | | **[工具参考](https://github.com/svnscha/mcp-windbg/wiki/Tools)** | 完整的 API 参考和示例 | | **[故障排除](https://github.com/svnscha/mcp-windbg/wiki/Troubleshooting)** | 常见问题和解决方案 | ## 示例 ### 崩溃转储分析 ### 远程调试 ## 博客 阅读开发历程:[崩溃分析的未来:AI 与 WinDbg 的结合](https://svnscha.de/posts/ai-meets-windbg/) ### 链接 - [Reddit:我教会了 Copilot 分析 Windows 崩溃转储](https://www.reddit.com/r/programming/comments/1kes3wq/i_taught_copilot_to_analyze_windows_crash_dumps/) - [Hackernews:AI 与 WinDbg 的结合](https://news.ycombinator.com/item?id=43892096) ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=svnscha/mcp-windbg&type=Date)](https://www.star-history.com/#svnscha/mcp-windbg&Date) ## License MIT
标签:AI辅助调试, CDB, Claude Desktop, Crash Dump Analysis, GitHub Copilot, LLM, MCP, Model Context Protocol, Python, Streamable HTTP, Unmanaged PE, VS Code, WinDbg, Windows, Windows调试, XML 请求, 云资产清单, 内核调试, 大模型, 安全开发, 崩溃转储分析, 无后门, 蓝屏分析, 远程调试, 逆向工具, 逆向工程