mcpField
G
Go Delve Debugger MCP Server

Go Delve Debugger MCP Server

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

Go Delve Debugger MCP Server について

Go Delve Debugger MCP サーバーは Delve デバッガーを LLM に公開し、AI アシスタントが Go プログラムのデバッグセッションを開始、制御、検査できるようにします。AI アシスタントに Go アプリケーションのデバッグを支援させたい開発者に向けたもので、コマンドラインから起動し SSE で接続します。

主な機能

  1. 01デバッグセッションの開始、終了、一覧表示
  2. 02ブレークポイントの設定と実行制御
  3. 03ステップオーバー、ステップイン、ステップアウト
  4. 04式の評価と変数・スタックトレースの確認
  5. 05複数のデバッグセッションの同時管理

活用シーン

  1. 01AI アシスタントによる Go プログラムのエラーの段階的な追跡
  2. 02デバッグセッション中の変数値と呼び出しスタックの確認

MCP 対応

start_debug、set_breakpoint、continue、evaluate などのツールを、SSE エンドポイント経由で MCP クライアントに提供します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Go Delve デバッガー MCP サーバー

LLM が Delve Go デバッガーを操作できるようにする MCP サーバーです。

説明

このプロジェクトは、Delve Go デバッガーと連携し、AI アシスタントが Go アプリケーションをデバッグできるようにする Model Context Protocol(MCP) サーバーを実装します。このサーバーは、LLM がデバッグセッションを開始、制御、操作するための一連のツールを公開します。

動作するサンプルは EXAMPLE.md で確認できます。

機能

  • Go プログラムのデバッグセッションを開始
  • コードにブレークポイントを設定
  • コードをステップ実行(次へ、ステップイン、ステップアウト)
  • デバッグセッションのコンテキストで式を評価
  • 変数とスタックトレースを調査
  • 複数のデバッグセッションを管理

インストール

前提条件
  • Go 1.21 以降
  • Delve デバッガーがインストールされていること(go install github.com/go-delve/delve/cmd/dlv@latest)
インストール
go install github.com/xhd2015/dlv-mcp/cmd/dlv-mcp@latest

使い方

MCP サーバーを起動します。

dlv-mcp --listen :9097

その後、Cursor または任意の MCP クライアントで、MCP サーバーを http://localhost:9097/sse に設定します。

MCP サーバーの調査
bunx @modelcontextprotocol/inspector dlv-mcp

利用可能なツール

デバッグセッションの管理
  • start_debug:新しいデバッグセッションを開始します

    • program:デバッグする Go プログラムへのパス
    • args:プログラムのコマンドライン引数(任意)
    • mode:デバッグモード(debug、test、exec のいずれか。デフォルト:debug)
  • terminate_debug:デバッグセッションを終了します

    • session_id:終了するデバッグセッションの ID
  • list_debug_sessions:アクティブなデバッグセッションを一覧表示します

ブレークポイントの管理
  • set_breakpoint:デバッグセッションにブレークポイントを設定します
    • session_id:デバッグセッションの ID
    • file:ブレークポイントを設定するソースファイル(絶対パス)
    • line:ブレークポイントを設定する行番号
実行制御
  • continue:デバッグセッションの実行を続行します

    • session_id:デバッグセッションの ID
  • next:デバッグセッションで現在の行をステップオーバーします

    • session_id:デバッグセッションの ID
  • step_in:デバッグセッションで関数にステップインします

    • session_id:デバッグセッションの ID
  • step_out:デバッグセッションで関数からステップアウトします

    • session_id:デバッグセッションの ID
調査
  • evaluate:デバッグセッションで式を評価します
    • session_id:デバッグセッションの ID
    • expression:評価する式
    • frame_id:スタックフレーム ID(任意。デフォルト:0)

ワークフローの例

  1. デバッグセッションを開始します。

    start_debug program=/path/to/program.go
    
  2. ブレークポイントを設定します。

    set_breakpoint session_id=session-123456 file=/path/to/program.go line=15
    
  3. ブレークポイントまで実行を続行します。

    continue session_id=session-123456
    
  4. 式を評価します。

    evaluate session_id=session-123456 expression="myVariable"
    
  5. 1 行ステップオーバーします。

    next session_id=session-123456
    
  6. セッションを終了します。

    terminate_debug session_id=session-123456
    

アーキテクチャ

このサーバーは、次のコンポーネントを使用して構築されています。

  • MCP サーバーレイヤー:mark3labs/mcp-go を使用して Model Context Protocol を実装
  • DAP クライアントレイヤー:Delve の DAP サーバーと通信
  • セッション管理:デバッグセッションを維持および管理

MCP サーバーの調査

bunx @modelcontextprotocol/inspector go run ./cmd/dlv-mcp

デモクライアントの使用

デバッガー MCP サーバーをプログラムから使用する方法を紹介するデモクライアントを用意しました。デモでは次の処理を行います。

  1. MCP サーバーを起動
  2. ./testdata/hello.go のデバッグセッションを開始
  3. ブレークポイントの設定とデバッグコマンドの実行を試行
  4. セッションとサーバーを適切に終了

デモを実行するには、次のコマンドを使用します。

go run ./demo/main.go

デモクライアントでは、次の方法を紹介します。

  • JSON-RPC を使用した MCP サーバーの起動と通信
  • 正しい形式でのツール呼び出しの送信
  • レスポンスの解析と処理
  • エラーへの適切な対処

実装の詳細については、demo/main.go と demo/README.md をご覧ください。

ライセンス

MIT ライセンス

コメント

MCP は初めてですか?

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

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