mcpField
M
MCP Server for WinDBG Crash Analysis

MCP Server for WinDBG Crash Analysis

ローカル
svnscha.de開発ツール1.6k5 日前に更新

MCP Server for WinDBG Crash Analysis について

この MCP サーバーは、AI モデルを WinDbg と接続し、クラッシュダンプ解析、ユーザーモードのリモートデバッグ、カーネルデバッグを行います。cdb.exe と kd.exe をヘッドレスで操作する仕組みで、他の MCP クライアントを使いたい場合や多数のダンプを一括で確認したい場合に向いています。

主な機能

  1. 01クラッシュダンプの自動トリアージと解析
  2. 02TCP、名前付きパイプ、COM によるユーザーモードのリモートデバッグ
  3. 03KDNET、名前付きパイプ、シリアルによるカーネルデバッグ
  4. 04任意の WinDbg および KD コマンドの実行
  5. 05複数セッションの同時利用と個別の指定
  6. 06機密情報を伏せる テキストフィルタースクリプト

活用シーン

  1. 01クラッシュや青画面で生成された .dmp ファイルの根本原因の特定
  2. 02応答しないライブのユーザーモードプロセスの調査
  3. 03フォルダ内の多数のダンプを比較して共通のシグネチャを探すこと

MCP 対応

本プロジェクトは MCP サーバーであり、open_cdb_dump、run_cdb_command、open_kd_session などの WinDbg デバッグツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"windbg": {
"command": "uvx",
"args": [
"mcp-windbg"
],
"env": {
"CDB_PATH": "<CDB_PATH>",
"_NT_SYMBOL_PATH": "<_NT_SYMBOL_PATH>"
}
}
}
}
起動コマンドuvx mcp-windbg
設定が必要な環境変数
CDB_PATHCustom path to cdb.exe (optional)
_NT_SYMBOL_PATHSymbol path for Windows debugging (optional, defaults to Microsoft symbol server)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-windbg1.6.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

WinDbg クラッシュ解析用 MCP サーバー

CI Docs PyPI License: MIT Platform: Windows Python 3.10+

AI モデルと WinDbg を連携し、クラッシュダンプ解析、ユーザーモードのリモートデバッグ、カーネルデバッグを行う Model Context Protocol サーバーです。

ヒント

WinDbg 自体に組み込まれた AI デバッグをお探しですか? Microsoft は現在、WinDbg 1.2610.1001.0 以降で公式の WinDbg MCP を提供しています。WinDbg の MCP サービス設定で有効にすると、VS Code の GitHub Copilot または GitHub Copilot CLI から、実行中のデバッグセッションとチャットできます。お探しのものがこれであれば、こちらをご覧ください:

このプロジェクトは、コミュニティが独自に開発した代替手段です。cdb.exe / kd.exe をヘッドレスで実行するため、別の MCP クライアントを使いたい場合、HTTP 経由で別のマシンからデバッガーを操作したい場合、または WinDbg の UI を開かずに多数のダンプをスクリプトでトリアージしたい場合に適しています。

概要

このサーバーは、ユーザーモード用の Windows デバッガー CDB(ダンプおよび -remote)と、カーネルターゲット用の KD(-k)を操作します。これにより、「コールスタックを表示して、このアクセス違反について説明して」や「カーネルセッションを開いて、どのドライバーがバグチェックを起こしたか教えて」のように、自然言語でデバッグできます。

魔法のように問題を自動修正するものではありません。これは cdb.exe / kd.exe を操作する Python ラッパーであり、LLM が実際のデバッガーコマンドを実行し、その出力を推論できるようにします。

機能

  • クラッシュダンプ解析 - .dmp/.mdmp/.hdmp を開き、単一の呼び出しで自動トリアージ(!analyze -v、スタック、モジュール、スレッド)を実行します。
  • ユーザーモードのリモートデバッグ - TCP、名前付きパイプ、または COM 経由で、稼働中の cdb/WinDbg デバッグサーバー(-remote)に接続し、必要に応じてブレークインします。
  • カーネルデバッグ - KDNET、名前付きパイプ、またはシリアル経由でカーネルターゲット(-k、kd.exe で操作)に接続します。サーバーはターゲットを待機し、代わりにブレークインします。
  • 任意の WinDbg/KD コマンドを実行 - 自然言語で指示して、開いているセッションで任意のコマンド(kb、!process 0 0、!heap、lm など)を実行できます。
  • セッション ID - 開くたびにセッション ID が返されます。複数のセッション(ダンプ、リモート、カーネル)を同時に開き、それぞれ独立して操作できます。
  • 堅牢なライブセッション - 呼び出しごとにタイムアウトを設定できます。タイムアウトを超えて実行される低速なライブコマンドには CTRL+BREAK を送って中断し、セッションが応答不能になる代わりに再同期します。
  • 複数ダンプのトリアージ - ディレクトリ内の複数のダンプを検出して比較できます。
  • テキストフィルターフック - --filter-script を使って、ツールの引数と出力から PII/シークレットをマシンの外部へ送信される前に秘匿化できます。
  • stdio または HTTP - ローカルで stdio 経由に実行するか、別のマシンから操作するストリーミング可能な HTTP サービスとして実行できます。

ユースケース

手元にあるもの実現したいことガイド
クラッシュまたはブルースクリーンの .dmp根本原因を特定する:例外またはバグチェック、障害が発生したフレーム、発生した理由クラッシュダンプを分析する
ライブのユーザーモードプロセス(cdb -server 経由)接続して、ハングまたはライブ状態を調査するリモートターゲットをデバッグする
KD が有効なマシンまたは VMドライバー、バグチェック、起動時の問題をデバッグするカーネルターゲットをデバッグする
ダンプが多数あるフォルダーダンプを一括でトリアージし、共通するシグネチャを見つける複数のダンプをトリアージする
デバッグ用ホストがあるが、別の場所で作業している別のマシンから HTTP 経由で操作する別のマシンからデバッグする
シークレットや PII を含むダンプツールの出力がマシンの外部に出る前に機密データを除去する機密データをマスキングする

ツール

すべての open_* ツールは不透明な session_id(例:cdb-1a2b3c4d)を返します。これを対応する run_*、close_*、send_ctrl_break、wait_for_break 呼び出しに渡してください。ユーザーモードのターゲット(ダンプおよび -remote)は cdb.exe で実行され、カーネルターゲットとカーネルダンプは kd.exe で実行されます。

ツール用途
list_dumpsディレクトリ内のクラッシュダンプファイルを一覧表示する
open_cdb_dumpクラッシュダンプを開いてトリアージする
open_cdb_remoteユーザーモードのリモートデバッグサーバー(-remote)に接続する
open_kd_sessionカーネルターゲットに接続する(-k、KDNET/名前付きパイプ/シリアル)
open_kd_dumpカーネルクラッシュダンプ(MEMORY.DMP、ミニダンプ)を開いてトリアージする
run_cdb_commandユーザーモードセッションでコマンドを実行する
run_kd_commandカーネルセッションでコマンドを実行する
close_cdb_sessionユーザーモードセッションを終了する
close_kd_sessionカーネルセッションを終了する(ターゲットマシンを再開する)
send_ctrl_break実行中のライブセッションにブレークをかける
wait_for_breakg で再開したターゲットが再び停止するまで待機する

パラメーター、タイムアウト、組み込みのトリアージ用プロンプトについては、ツールリファレンスを参照してください。

クイックスタート

メモ

エンタープライズ環境での Claude Code: 管理対象の設定で allowedMcpServers が定義されている場合、 プラグインにバンドルされた MCP サーバーが通知なくスキップされることがあります(Claude Code issue #32882)。 サーバーを手動でインストールして登録することをおすすめします。その後、必要に応じてスキルまたはエージェントのプラグインを追加してください。 サーバーは引き続き、組織の MCP ポリシーで許可されている必要があります。

前提条件

  • Debugging Tools for Windows または Microsoft Store 版 WinDbg を備えた Windows。これらには cdb.exe と kd.exe が含まれます(自動検出されます)。
  • MCP 互換クライアント(Claude Code、GitHub Copilot、Claude Desktop、Cursor、Windsurf、Cline など)。

Python はそれ自体、前提条件ではありません。必要なものは各手順に記載されています。

Claude Code にインストールする

必要に応じてサーバープラグインをインストールし、その後、必要に応じてスキル、エージェント、またはその両方を追加します。

プラグインサーバー含まれるワークフロー
mcp-windbg-uvxプラグインが uvx で起動MCP ツールのみ
mcp-windbg-skillsuvx プラグインまたは独自の MCP 接続を使用4 つのオプションのスキル
mcp-windbg-agentsuvx プラグインまたは独自の MCP 接続を使用オプションの crash-analyst エージェント
uvx を使ったサーバー

最短で使い始められます。2 行追加するだけで、pip install も MCP 設定の編集も不要です。 シンボルの設定済みの 11 個のツールが追加されます。スキルとエージェントは別途インストールします。

/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-uvx@mcp-windbg

uv が必要です。uv には uvx が含まれています。winget install astral-sh.uv を実行してください。このプラグインは初回使用時に PyPI から指定バージョンのサーバーを取得するため、ほかにインストールするものはありません。シンボルとオプションについては、プラグインの README をご覧ください。

サーバーを自分で登録する

プラグインを使わない場合や、すでにパッケージを実行している場合は、次の手順で登録できます。

pip install mcp-windbg
claude mcp add mcp-windbg -s user -e _NT_SYMBOL_PATH="SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -- python -m mcp_windbg

Python 3.10 以上が必要です。ガイド付きワークフローやエージェントを利用するには、以下の任意のプラグインを追加してください。

既存のサーバー向けスキル

uvx プラグインをインストールするか、mcp-windbg を自分で登録した後、必要に応じて 4 つのスキルを追加できます。

/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-skills@mcp-windbg

/mcp-windbg-skills:analyze-dump、/mcp-windbg-skills:debug-remote、/mcp-windbg-skills:kernel-debug、または /mcp-windbg-skills:windbg-doctor を呼び出してください。 このプラグインは設定済みの MCP 接続を使用し、サーバー、ランタイム、シンボル設定、crash-analyst エージェントは追加しません。ネイティブ実行ファイル、Python インストール、または mcp-windbg ツールを公開する HTTP サービスで動作します。 サーバーとスキルを一緒に使うには、このプラグインを uvx と併用してインストールしてください。ツールだけを使う場合は、このプラグインは不要です。 スキルが同梱されていたバージョンからアップグレードする場合は、ワークフローを引き続き使うためにこのプラグインをインストールしてください。呼び出し時のプレフィックスは /mcp-windbg: から /mcp-windbg-skills: に変わります。 サーバーの組み込み MCP プロンプトは、これらのプラグインとは別に引き続き利用できます。プラグインの更新や切り替えについては、プラグインガイドをご覧ください。

既存のサーバー向けエージェント
/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-agents@mcp-windbg

「C:\dumps\app.dmp に対して mcp-windbg-agents:crash-analyst エージェントを使って」と指示してください。 既存の MCP 接続を通じてダンプを調査し、判定、根拠、次の手順を返します。uvx もスキルプラグインも必要ありません。 エージェントが同梱されていたバージョンからアップグレードする場合は、引き続き使用するためにこのプラグインをインストールしてください。

Python を使わずにインストールする

各リリースには mcp-windbg.exe が添付されています。これはインタープリターとすべての依存関係を内包した、署名済みの実行ファイルです。 cdb.exe は引き続き必要です。クライアントの command にはこのファイルを指定し、args は空のままにしてください。

リリースには SHA256SUMS も公開されており、バイナリにはコード署名が付いているため、どちらも検証できます。

(Get-FileHash .\mcp-windbg.exe -Algorithm SHA256).Hash
Get-AuthenticodeSignature .\mcp-windbg.exe | Format-List Status, SignerCertificate

Status に Valid と表示されていることを確認してください。署名者は、署名証明書を提供する Liasoft GmbH です。プロジェクトは Sven Scharmentke が開発しています。

別のクライアントにインストールする

pip install mcp-windbg

Python 3.10 以上が必要です。その後、クライアントに python -m mcp_windbg を指定してください。VS Code(GitHub Copilot)で有効にしてすべてのワークスペースから使うには、F1 を押し、MCP: Open User Configuration を選択してください。

{
    "servers": {
        "mcp_windbg": {
            "type": "stdio",
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Claude Desktop、Copilot CLI、Autohand Code、HTTP、ソースからのセットアップについては、クライアント設定ガイドをご覧ください。

デバッグを開始する

クライアントを再起動し、実行したい内容を尋ねてください。

Analyze the crash dump at C:\dumps\app.dmp
Connect to tcp:Port=5005,Server=192.168.0.100 and show me the current thread state
Open a kernel session on net:port=50000,key=1.2.3.4, run !analyze -v, and tell me which driver bugchecked

サーバーのオプション(--cdb-path、--kd-path、--symbols-path、--filter-script、--transport、...)については、コマンドラインリファレンスをご覧ください。

ドキュメント

svnscha.github.io/mcp-windbg

トピック説明
はじめにセットアップと、最初のクラッシュダンプ解析
クラッシュダンプを解析する例外の根本原因を特定します。障害が発生したフレームと、その原因を確認できます
リモートターゲットをデバッグする実行中のユーザーモードプロセスに割り込み、ハングを調査します
カーネルターゲットをデバッグするKDNET またはパイプ経由で、ドライバー、バグチェック、起動時の問題を調査します
複数のダンプをトリアージするフォルダーをスキャンして、共通するシグネチャを見つけます
別のマシンからデバッグするサーバーを HTTP 経由で実行し、リモートから操作します
機密データをマスキングするツールの出力がマシンの外部に送信される前に、秘密情報を削除します
リファレンスツール、プロンプト、CLI オプション、クライアント設定
トラブルシューティングよくある問題と解決策
開発ローカルチェックアウトから実行し、クライアントを開発ビルドに接続します

ブログ

開発の歩みについてはこちらをご覧ください:クラッシュ解析の未来:AI と WinDbg の融合

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。