返回 MCP 目录
public公开dns本地运行

mcp-windbg

一个MCP服务器,将AI模型与WinDbg/CDB集成,用于分析Windows崩溃转储文件和进行远程调试,支持自然语言交互执行调试命令。

article

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服务器,可使用全局用户配置:

  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"
            }
        }
    }
}

这样,无需本地 .vscode/mcp.json 文件,即可在任何工作区中启用MCP Windbg。

HTTP传输配置

当需要单独运行MCP服务器时(如远程访问、共享服务器或调试服务器本身),可以使用HTTP传输:

  1. 手动启动服务器
python -m mcp_windbg --transport streamable-http --host 127.0.0.1 --port 8000
  1. 配置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的结合

相关链接

星标历史

星标历史图表

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端