Skip to main content

Dump Analyzer MCP Server

用于远程 Windows Crash Dump 分析的 MCP 服务:支持上传 dump、创建分析会话、执行 CDB 命令,并返回结构化状态与原始输出。

项目目标是让 AI 侧脱离对 Windows 操作系统的运行依赖:通过标准 MCP 接口调用部署在 Windows 服务端的 CDB 指令完成 dump 分析。

核心能力

  • 通过标准 MCP 接口接入远程 Windows dump 分析能力
  • 支持上传 dump、创建分析会话、执行 CDB 命令、关闭会话的完整闭环
  • 支持在同一分析会话内连续执行多条命令
  • 支持把重命令放到后台执行,并通过显式查询接口获取状态与结果
  • 面向 AI/远程客户端场景,调用方无需直接运行 Windows 调试器

前置条件

  • 操作系统:Windows
  • Python:3.10 及以上
  • 调试器:要求使用 Windows SDK 26100 及以上版本(含 WinDbg/CDB)
  • 网络:客户端可访问 --public-base-url 对应地址

安全边界

  • 本服务默认面向内网/受信任环境,当前不内置用户鉴权与权限体系,请勿直接暴露公网。
  • 如需跨网络访问,请在前置网关或反向代理层提供鉴权、访问控制与 TLS,并结合网络隔离、白名单和防火墙限制访问来源。
  • 默认拒绝危险命令(如 .shell、重定向、.create/.attach/.kill 等)

使用流程

  1. 调用 prepare_dump_upload(file_size, file_name) 获取 file_idupload_url
  2. upload_url 发送 HTTP PUT 上传原始 dump 字节
  3. 调用 start_analysis_session(file_id, sym_noisy=true) 获取 session_id
  4. 轻量命令可直接调用 execute_windbg_command(session_id, command, timeout)
  5. 重命令可先调用 start_async_windbg_command(session_id, command) 获取 command_id
  6. 轮询 get_async_windbg_command_status(session_id, command_id)get_async_windbg_command_result(...)
  7. 调用 close_analysis_session(session_id) 释放资源

运行特性

  • MCP 通道采用 streamable-http
  • 命令执行状态固定为:queuedrunningcompleted
  • CDB 输出原样透传,不做语义解析
  • 命令执行较久时自动发送心跳,避免误判为卡死
  • 即使宿主不展示流式进度,最终工具返回也会包含结构化执行状态
  • 重命令支持显式异步调用,避免同步接口因等待符号加载而误伤后续命令

从源码启动

适用于已克隆仓库、准备在本机直接启动服务的场景:

uv sync
uv run dump-analyzer-mcp-server --host 0.0.0.0 --port 8000 --public-base-url http://your-host:8000
  • MCP 入口:http://your-host:8000/mcp
  • 上传入口:http://your-host:8000/uploads/dumps/{file_id}

MCP 客户端配置示例

{
  "mcpServers": {
    "dump-analyzer": {
      "url": "http://your-host:8000/mcp"
    }
  }
}

命令行参数

参数 必填 默认值 说明
--host 127.0.0.1 服务监听地址
--port 8000 服务监听端口
--public-base-url 返回给客户端的可访问基址
--cdb-path 自动探测 cdb.exe 路径
--symbols-path srv*c:\symbols*https://msdl.microsoft.com/download/symbols 服务端符号路径
--timeout 1800 命令执行超时(秒)
--upload-dir 系统默认目录 上传临时目录
--max-upload-mb 100 最大上传大小(MB)
--session-ttl-seconds 1800 空闲会话 TTL(秒)
--max-active-sessions 10 最大活跃会话数
--log-dir PROGRAMDATA\dump-analyzer-mcp-server\logs 或系统临时目录回退 服务器日志目录
--log-level INFO 基础日志级别
--log-retention-days 14 按天轮转日志的保留份数
--log-max-total-size-mb 2048 日志目录总大小上限(MB),超出后删除最老轮转日志
--log-keep-console / --no-log-keep-console true 是否同时输出到控制台
--verbose false 输出详细日志

说明:

  • --public-base-url 必须是客户端可访问地址,否则 prepare_dump_upload 会返回 UPLOAD_URL_UNAVAILABLE
  • --symbols-path 仅服务端管理员可配置;调用方工具参数不可覆盖符号路径
  • --verbose 会将服务日志提升到 DEBUG

日志与审计

  • 服务默认启用文件日志,并按天轮转,适合长期运行的服务端场景。
  • 单个日志文件大小上限为硬编码 100MB;超过后会立即切换到一个新的空 server.log
  • 日志目录默认总大小上限为 2GB;超出后会优先删除最老的轮转日志文件。
  • 默认日志目录优先使用 PROGRAMDATA\dump-analyzer-mcp-server\logs;如果不可用,则回退到系统临时目录下的项目专属目录。
  • 日志会尽量串联 request_idfile_idsession_id、客户端地址和命令摘要,方便在多人并发调用时定位问题。
  • 完整逐行 WinDbg/CDB 命令输出会写入同一个 server.log,可直接用于排查 SYMSRVDBGHELPDBGENG、PE/image 加载和长命令卡住问题。
  • 日志输出按原样记录,不做脱敏。
  • 危险命令拦截会记录审计事件,但日志中只保留屏蔽后的命令摘要,不记录完整危险命令文本。
  • 单文件切卷阈值当前不提供 CLI 配置,固定为 100MB

排障建议:

  • 生产环境先保持默认日志配置,仅在需要深度排障时临时开启 --verbose
  • 优先按 request_id / session_id / command_id 检索同一次分析链路
  • 若担心控制台被额外收集,可使用 --no-log-keep-console 仅保留文件日志
  • 由于完整 transcript 默认写入,重符号场景下日志增长会明显快于旧版本

错误处理

  • 工具调用失败时返回结构化错误(含错误码与错误信息)
  • prepare_dump_upload 在无法生成可访问上传地址时返回 UPLOAD_URL_UNAVAILABLE
  • 上传大小、文件格式、会话上限等限制会在入口阶段尽早失败

无流式宿主建议

  • 某些 MCP Host / IDE 只展示最终 tool result,不展示 progress/SSE;这类宿主应优先依赖最终返回中的 statustimed_outfirst_output_delay_msqueue_wait_mssuggested_next_step
  • start_analysis_session 默认会开启 !sym noisy;如调用方明确不需要,可传 sym_noisy=false
  • 推荐命令顺序:先 .lastevent、再 .ecxr;kv、再 lmv m <module>,最后再执行 !analyze -v 这类重命令。
  • .reload /f、冷缓存下的 .ecxr;kv!analyze -v,优先使用异步工具链:start_async_windbg_command -> get_async_windbg_command_status / get_async_windbg_command_result
  • timeout 表示当前前台调用在设定时间内还未等到命令完成;命中后会返回结构化 status=timeout,但底层 CDB 命令仍可能继续在后台完成。
  • 当后台已有重命令运行时,同步 execute_windbg_command 会返回 status=busy,避免把排队等待误算成当前命令自己的执行耗时。

开发文档

项目来源

  • 本项目起步于上游 svnscha/mcp-windbg,并在此基础上持续演进。
  • 当前项目已收敛为面向远程 Windows Crash Dump 分析的 MCP 服务,与上游在产品定位、工具边界和使用流程上存在明显差异。
  • 本项目保留上游 MIT 许可证文本与原始版权声明,并在此基础上独立维护。

许可证

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dump_analyzer_mcp_server-0.1.0.tar.gz (43.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dump_analyzer_mcp_server-0.1.0-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file dump_analyzer_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: dump_analyzer_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 43.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dump_analyzer_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ad51a454415e1cc37a9d2617fdad8a9f7ab6f5fe1544a91fca709eaa729ebe5f
MD5 a10d1d929d499253eb6b260673c89a58
BLAKE2b-256 0d7847e0f3825e5b96d32887368099eee27f0d2d22c1ccff526de4a2a51ad3c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for dump_analyzer_mcp_server-0.1.0.tar.gz:

Publisher: publish-mcp.yml on zuohuiyang/dump-analyzer-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dump_analyzer_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dump_analyzer_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9ba2a1d56d329630fd1ff8cba74cf72e9dc07bf7a8fe0b05c8101570137c431
MD5 051fc9218fe7926fda8bec0695a5e198
BLAKE2b-256 fff202db9df85e14a3e77d0e9833d0fecdab3926dcac8dd2568319596d5d9701

See more details on using hashes here.

Provenance

The following attestation bundles were made for dump_analyzer_mcp_server-0.1.0-py3-none-any.whl:

Publisher: publish-mcp.yml on zuohuiyang/dump-analyzer-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page