mcpField
G
GDB MCP Server

GDB MCP Server

ローカル
github.com/smadi0x86開発ツール743 週間前に更新

GDB MCP Server について

MDB-MCP は、AI アシスタントから GDB や LLDB を操作してバイナリのデバッグと解析を行うための MCP サーバーです。ブレークポイントの設定、メモリの読み取り、スタックの確認が必要な開発者やセキュリティ研究者に適しています。

主な機能

  1. 01GDB または LLDB のデバッグセッションの開始
  2. 02任意の gdb または lldb コマンドの実行
  3. 03実行中のプログラムの一時停止
  4. 04プログラムの終了とセッションのクローズ
  5. 05利用可能なデバッガーとセッション状態の確認

活用シーン

  1. 01AI アシスタントにセグメンテーション違反の原因を調べさせる
  2. 02ブレークポイントを設定し、コールスタックとメモリを確認する
  3. 03解析時に pwndbg や GEF などの GDB 拡張を利用する

MCP 対応

本プロジェクトは MCP サーバーであり、MCP クライアントに debugger_status、debugger_start、debugger_command などのツールを提供してデバッガーセッションを制御します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

MDB-MCP

CI

AI アシスタントに本格的なデバッガーを提供する MCP サーバーです。GDB または LLDB を操作するため、アシスタントはブレークポイントを設定し、プログラムを実行し、メモリを読み取り、スタックをたどることができます。操作方法は、あなたが使う場合と同じです。

mdb-mcp で NULL ポインターの参照外しを見つける

インストール

uv と、少なくとも 1 つのデバッガーが必要です。

# Debian / Ubuntu
sudo apt install gdb lldb python3-lldb

# macOS (LLDB ships with the Xcode command line tools)
xcode-select --install

次に、クライアントにサーバーを追加します。Claude Code の場合:

claude mcp add mdb -- uvx --from git+https://github.com/smadi0x86/MDB-MCP mdb-mcp

Claude Desktop、Cursor、または Windsurf の場合:

{
  "mcpServers": {
    "mdb": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/smadi0x86/MDB-MCP", "mdb-mcp"]
    }
  }
}

VS Code では .vscode/mcp.json の "servers" に同じエントリーを追加し、"type": "stdio" を指定します。WSL を使用する Windows では、"command": "wsl" を設定し、args の先頭に uvx の絶対パスを指定してください。

ツール

debugger_status      which debuggers are usable, and the open sessions
debugger_start       start a gdb or lldb session, optionally loading a program
debugger_command     run any gdb or lldb command
debugger_interrupt   pause a running program, like Ctrl-C
debugger_terminate   kill the program and close the session

それ以外は通常のデバッガーコマンドなので、break main、bt、x/16gx $sp、frame variable をすべて使用できます。プログラムを再開するコマンドは、プログラムが停止するまで待機します(デフォルトは 10 秒で、呼び出しごとに変更できます)。それでも実行中の場合は、アシスタントが中断するか、待機を続けることができます。

Linux では GDB、macOS では LLDB がデフォルトです。どちらを使うか明示的に選択することもできます。GDB は ~/.gdbinit を読み込むため、pwndbg と GEF も引き続き利用できます。

試してみる

make -C examples

次に、examples/crash がなぜセグメンテーション違反を起こすのか、アシスタントに尋ねてください(絶対パスを指定してください)。

設定

PATH 上にあるものとは別のデバッガーを使うには、クライアント設定のサーバーの env で指定します。

"env": {
  "MDB_GDB_PATH": "gdb-multiarch",
  "MDB_LLDB_PATH": "/opt/homebrew/opt/llvm/bin/lldb"
}

トラブルシューティング

LLDB が利用不可と表示される場合は、debugger_status で理由を確認できます。Debian と Ubuntu では、通常 python3-lldb が不足しています。このパッケージのバージョンは、LLDB のバージョンと一致している必要があります。

プログラムはキーボードから入力を読み取れません。代わりにファイルから入力してください。

run < input.txt                    # gdb
process launch -i input.txt        # lldb

Linux で実行中のプロセスへのアタッチに失敗する場合は、/proc/sys/kernel/yama/ptrace_scope を確認してください。値が 1 の場合、子プロセスのみデバッグできます。

セキュリティ

デバッガーはシェルコマンド(shell、python、platform shell、script)を実行でき、デバッグ対象のプログラムはあなたのユーザー権限で実行されます。信頼できるコードのみをデバッグし、サンドボックス内でない限り、debugger_command のツール承認を有効にしておいてください。

開発

uv sync
uv run pytest                      # tests for a missing debugger are skipped
uv run ruff check . && uv run ruff format --check .

上のデモは、実際のツール呼び出しを demo/record.py で記録したものです。再生成方法については、そのファイルの先頭を参照してください。

ライセンス

GPL-3.0

MseeP.ai Security Assessment Badge

コメント

MCP は初めてですか?

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

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