项目简介

本项目是一个基于Model Context Protocol (MCP) 实现的服务器端应用。它作为一个桥梁,连接大型语言模型 (LLMs) 与Windows调试工具 WinDBG/CDB,允许AI通过标准化的协议对Windows崩溃转储文件 (.dmp) 进行交互式分析。

主要功能点

该服务器提供以下核心功能,供支持MCP协议的AI客户端调用:

  • 分析崩溃转储文件: 允许指定一个 .dmp 文件,服务器将加载该文件并执行一套预设的常用WinDBG分析命令(如获取事件信息、详细分析、列出模块、线程信息等),并将结果返回给AI。
  • 执行指定WinDBG命令: 在已加载的崩溃转储文件上下文中,允许AI发送任意WinDBG命令行指令并获取其输出。这使得AI能够进行更深入、更灵活的调试操作。
  • 列出崩溃转储文件: 帮助AI发现本地系统上指定目录或Windows默认存储位置中的崩溃转储文件,方便AI选择需要分析的目标。
  • 卸载崩溃转储文件: 在分析完成后,允许AI卸载当前加载的 .dmp 文件,释放相关的系统资源。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/svnscha/mcp-windbg.git
    cd mcp-windbg
  2. 创建并激活虚拟环境:
    python -m venv .venv
    # Windows:
    .\.venv\Scripts\activate
    # macOS/Linux:
    source .venv/bin/activate
  3. 安装项目及其依赖:
    pip install -e .
  4. 安装测试依赖 (可选):
    pip install -e ".[test]"
  5. 安装Windows调试工具: 确保您的Windows系统已安装Debugging Tools for Windows,它是Windows SDK的一部分。CDB.exe 路径需要能被系统找到,或者在后续配置中指定。

服务器配置 (供MCP客户端使用)

MCP客户端(如支持MCP的LLM集成环境)需要配置启动此服务器的命令和参数。以下是配置时需要提供的信息示例:

  • 服务器名称: 您为这个服务器自定义的名称,例如 'mcp_server_windbg'。
  • 通信类型 (type): 指定服务器使用的传输协议,本项目默认为 'stdio'。
  • 启动命令 (command): 启动服务器的可执行程序路径。通常是您的Python虚拟环境中的Python解释器路径。例如,在VS Code工作区中可能是 '${workspaceFolder}/.venv/Scripts/python'。
  • 命令参数 (args): 传递给启动命令的参数。通常包括:
    • '-m': 指定运行一个模块。
    • 'mcp_server_windbg': 指定运行本项目的模块。
    • '--cdb-path <路径>' (可选): 如果CDB.exe不在系统PATH中,指定其完整路径。
    • '--symbols-path <路径>' (可选): 指定符号文件 (.pdb) 的查找路径。也可以通过设置 '_NT_SYMBOL_PATH' 环境变量来指定,例如在VS Code配置中加入 '"env": { "_NT_SYMBOL_PATH": "SRVC:\Symbolshttps://msdl.microsoft.com/download/symbols" }'。
    • '--timeout <秒>' (可选): 设置执行WinDBG命令的超时时间,默认30秒。
    • '--verbose' (可选): 开启详细输出,用于调试。

基本使用方法

  1. 配置客户端: 在您的MCP客户端(例如GitHub Copilot in VS Code)中按照上述信息配置并启用此MCP服务器。
  2. AI调用: 一旦服务器被客户端成功识别和连接,AI模型就可以通过其界面或API调用该服务器提供的工具。
  3. 自然语言交互: 您可以通过与AI客户端的自然语言对话来指示AI使用这些工具分析崩溃转储文件。例如,您可以说“请分析一下C:\Dumps\mycrash.dmp这个文件”,AI会识别您的意图并调用 'open_windbg_dump' 工具;或者说“在这个转储上运行一下 '!heap -p -a 0xABCD1234'”,AI会调用 'run_windbg_cmd' 工具。

信息

分类

开发者工具