x64dbg-MCP Serverとは?
x64dbg-MCP Server は、オープンソースの Windows デバッガー x64dbg 用のプラグインで、デバッガーのプロセス内で MCP サーバーを動かします。接続したエージェントは、プログラムの読み込みやプロセスへのアタッチ、ソフトウェア、ハードウェア、メモリ、条件付き、例外の各ブレークポイント設定、ステップ実行とトレース、レジスタとメモリの読み書き、パッチのアセンブル、モジュール、インポート、エクスポート、文字列、相互参照の一覧、パック済みバイナリの元のエントリーポイント検出、メモリやモジュールのディスクへのダンプができます。ExecuteDebuggerCommand で任意の x64dbg コマンドも渡せます。
ランタイム依存のない Zig で書かれ、一つのコードベースから 32 ビットと 64 ビットのプラグインをビルドし、必須の bearer トークン付きで Streamable HTTP と SSE を話します。GitHub ユーザー duty1g が 2026 年 8 月 22 日に作成し、スターは約 2,795、MIT ライセンスで、2026 年 11 月 3 日に v1.7 を公開しました。
x64dbg-MCP Serverのインストール方法
Copy the release dist/ folder into the x64dbg directory; connect to http://localhost:9094/ with the bearer tokenx64dbg-MCP Serverは使う価値があるか?
Ghidra のような静的ツールはバイナリを読みますが、このツールは実行します。84 のツールで、エージェントはエントリーポイントで停止し、呼び出しをステップオーバーし、レジスタを監視し、ポインタの連鎖をたどり、決まった数の命令を逆アセンブル付きでトレースし、メモリ書き込みにハードウェアブレークポイントを設定できます。アンパックでは DetectOEP と DumpModule が、本当のエントリーポイントを見つけてダンプするという定番の手順をカバーし、WaitForEvent はブレークポイントや例外をロングポーリングで待つので、エージェントが空回りしません。ネイティブプラグインであることには意味があり、モデルとデバッガー API の間に Python のブリッジも .NET ランタイムも挟まりません。
セキュリティモデルは二度読むべき点です。サーバーはプロセスのメモリを読み書きし、メモリを確保し、レジスタを変更し、任意のデバッガーコマンドを実行でき、しかも暗号化されない HTTP でそれを行います。トークンは初回起動時に生成され、すべてのリクエストで必須となり、トークンのないリクエストには 401 Unauthorized が返ります。README は既定の待ち受けアドレスを全インターフェースの 0.0.0.0 としていますが、現在の config.zig は 127.0.0.1 にフォールバックします。インストール後に Plugins メニューを確認し、WSL やリモートのクライアントが必要としない限りループバックのままにしてください。解析中のマルウェアはいずれにせよ隔離した VM に置くべきです。
プロジェクトは若 く、動きも速く、8 月 27 日以降に 8 回リリースされ、そのいくつかは実際の不具合を直しています。v1.6 では、Disassemble が整数を渡されると黙って現在の命令ポインタに戻っていた問題を受け、アドレスを取る 25 のツールすべてが整数を受け付けるようになりました。v1.7 では、一度もブックマークを作成できていなかった SetBookmark が直りました。README 自体のツール数も食い違っています(機能一覧では 84、ツールの節では 72)。メンテナーは一人で、Windows 限定なのは x64dbg 自体に由来します。
真価を発揮する場面
小さなインシデント対応会社のマルウェア解析者
パックされた検体を元のエントリーポイントまでアンパックしてダンプする
隔離した Windows VM で、エージェントに検体を読み込ませ、DetectOEP を実行してそこで停止し、DumpModule を呼ばせます。ダンプは静的解析のため Ghidra サーバーに渡します。無料で、手作業のステップ実行が省けます。
crackme に取り組む CTF プレイヤー
ライセンスチェックがどこで入力を比較し、なぜ失敗するかを見つける
エージェントに文字列から失敗メッセージを探させ、GetReferences で比較箇所までたどり、条件付きブレークポイントを置 いてその時点のレジスタを読ませます。エージェントは各手順を説明しながら進めます。
サードパーティ製 DLL のクラッシュを追う Windows 開発者
アクセス違反が起きた瞬間のコールスタックと引数を記録する
ファーストチャンスのアクセス違反に例外ブレークポイントを設定し、発生するまで実行してから、障害アドレス周辺で GetCallStack、GetArguments、Disassemble を呼び出し、バグ報告の材料にします。
導入前に確認すること
- 導入
- リリースの dist フォルダーを x64dbg のディレクトリにコピーして x64dbg を起動すると、サーバーがポート 9094(x64)または 9095(x32)で自動的に立ち上がります。Plugins からトークンをコピーし、URL と Authorization ヘッダーをクライアントに追加します。
- 連携
- Streamable HTTP と SSE(MCP 2024-11-05)で 84 のツールと 22 のデバッガーイベントコールバック。ExecuteDebuggerCommand で任意の x64dbg コマンド。Windows、Linux、macOS、WSL で Zig 0.16-dev を使ってソースからビルドできます。
- データとプライバシー
- 手元のマシンの x64dbg 内で動き、逆アセンブル、メモリ、文字列はモデル提供元に送られます。デバッグ対象プロセスへの読み書きの全権を暗号化なしの HTTP で持ち、x64dbg の隣の mcp_config.json に保存されたトークンで守られます。
- 制限
- Windows のみ、暗号化なしの HTTP、メンテナーは一人。README のツール数と既定のバインドアドレスはコードと一致しません。GetSEHChain は x32 のみです。
良い点
- ブレークポイント、トレース、メモリ、PE 解析にわたる 84 のツール
- Zig のネイティブプラグインで、ランタイムのインストール不要
- すべてのリクエストで bearer トークンが必須
- パック済みバイナリ向けの OEP 検出とモジュールダンプ
気になる点
- 暗号化なしの HTTP で、トークンが平文で流れる
- 既定のバインドアドレスで README とコードが食い違う
- 最近のリリースで、黙って誤動作していたツールが修正された
- メンテナーは一人、Windows のみ
おすすめの人
すでに x64dbg を使っていて、隔離した VM での繰り返しのステップ実行、トレース、ダンプをエージェントに任せたいマルウェア解析者、CTF プレイヤー、リバースエンジニア。