mcpField
C
covdbg

covdbg

ローカル
covdbg.com開発ツール03 日前に更新

covdbg について

covdbg-mcp は、PDB シンボルを使い、既存バイナリを再ビルドせずにカバレッジを測定する Windows 向け MCP サーバーです。C++ チームやコーディングエージェントが未カバー箇所を調べ、テストを追加し、カバレッジデータベースを扱えます。

主な機能

  1. 01再ビルド不要のカバレッジ計測
  2. 02PDB ベースのバイナリ計測
  3. 03未カバー行数によるファイル順位付け
  4. 04コンテキスト付き未カバーコード表示
  5. 05カバレッジデータベースの照会と統合

活用シーン

  1. 01Windows ビルドの未テスト C++ コードの特定
  2. 02エージェントによる対象を絞ったテスト追加
  3. 03ビルドやチェックアウト間のカバレッジ比較

MCP 対応

covdbg 実行ファイルに組み込まれたサーバーで、stdio 経由で対象の検出、計測、ソース確認、読み取り専用 SQL 照会、データベース統合のツールを提供します。

設定

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

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

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

リポジトリ
パッケージ
mcpbcovdbg.mcpb

ツール

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

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

詳細

covdbg

covdbg-mcp

covdbg 用の MCP サーバーです。AI エージェント向けに、Windows 上で C++ コードのカバレッジを測定します。テストを実行し、未カバーのコードを見つけ、対象を絞ったテストを追加できます。再ビルドは不要です。

covdbg は、既にビルド済みの Windows バイナリを対象に、PDB デバッグ情報を使ってカバレッジを測定します。x64、ARM64、32 ビット x86 に対応しています。デバッガーのように実行可能ファイルを起動して PDB を読み込み、プログラムの実行中に軽量なプローブを配置します。MCP サーバーは covdbg 実行ファイルに組み込まれており(v1.3.0 以降)、covdbg mcp で起動します。

このリポジトリには、covdbg の MCP レジストリメタデータ(server.json、glama.json)と MCP Bundle マニフェスト(manifest.json)が含まれています。サーバー本体は covdbg に同梱されています。

エージェントでできること

  1. テスト実行可能ファイルを再ビルドせずにカバレッジを測定します。
  2. 未カバー行の数でファイルを順位付けします。
  3. 周辺のコンテキストとともに未カバーのコードを読み取ります。
  4. 対象を絞ったテストを追加し、再実行して、ギャップが解消されたことを確認します。
  5. カバレッジデータベース(.covdb)を読み取り専用 SQL でクエリし、チェックアウトやビルドをまたいでマージします。

必要条件

  • Windows x64、または Windows on ARM(ARM64)
  • covdbg 1.3.0 以降。この README では covdbg 1.5.0 について説明しています。
  • PDB デバッグシンボルを含む実行可能ファイル(MSVC または PDB を生成する任意のツールチェーン)。x64 版 covdbg は x64 および 32 ビット x86 プログラムを測定します。ARM64 版 covdbg は ARM64 プログラムを測定します(covdbg 1.5 以降)。
  • 初回の covdbg login(covdbg 1.4 以降では 1 つのチームにサインインし、実行にはそのチームのシートが必要です)、または CI 用の COVDBG_PROJECT_TOKEN。GitHub Actions のパブリックリポジトリでは、どちらも不要です(covdbg 1.5 以降。詳しくはCI でのライセンスを参照してください)。
  • 対象の実行可能ファイルの隣にある .covdbg.yaml、または run に渡す config_path(設定リファレンスを参照してください)

covdbg をインストールする

  • インストーラー(推奨): installer.msi、または Windows on ARM 用の installer-arm64.msi。%LocalAppData%\Programs\Liasoft\covdbg にインストールされ、そのディレクトリがユーザーの PATH に追加されます。
  • ポータブル版: portable.zip、または Windows on ARM 用の portable-arm64.zip。任意の場所に展開し、ディレクトリを自分で PATH に追加してください。エージェント DLL は covdbg.exe の隣に置いてください。covdbg が DLL を検索するのはその場所だけです。

32 ビット版 covdbg は別途ありません。x64 ビルドにはエージェントの 32 ビット版である libcovdbg32.dll が同梱されており、同じ covdbg.exe で 32 ビットプログラムを測定できます。

新しいターミナルを開き、サインインします。

covdbg --version
covdbg login

サインインはチーム単位です。ブラウザーで 1 つのチーム(個人チーム、または所有しているチーム、あるいはシートを持つチーム)を選択すると、エージェントの実行はそのチームのライセンス対象になります。先にチームを選択するには covdbg login --team <slug> を使用し、現在有効なチームを確認するには covdbg whoami を使用します。

CI でのライセンス

CI では、サーバーの環境変数に COVDBG_PROJECT_TOKEN を設定してください。実行はトークンのチームのライセンス対象になります。

GitHub Actions のパブリックリポジトリでは、プロジェクトトークンは不要です(covdbg 1.5 以降)。ジョブに permissions: id-token: write を付与してください。COVDBG_PROJECT_TOKEN も保存済みのサインインもない場合、covdbg は GitHub がジョブに発行するトークンを要求します。このトークンには、ジョブが実行されているリポジトリが示されます。GitHub はフォークからのプルリクエストには、そのようなトークンを発行しません。プライベートリポジトリでは引き続きプロジェクトトークンが必要です。また、プロジェクトトークンを設定した場合は、そちらが優先されます。

クライアントのセットアップ

このサーバーは stdio トランスポートを使用します。プロジェクトディレクトリから起動するか、--workspace <dir> を指定してください。

オプション環境変数デフォルト用途
--workspace <dir>作業ディレクトリプロジェクトディレクトリ。discover のデフォルトのルートです
--query-timeout <ms>COVDBG_MCP_QUERY_TIMEOUT_MS50001 つの query ステートメントの実行を許可する時間。1~600000 ms(covdbg 1.5 以降)。オプションは環境変数より優先されます。
Claude Code

プロジェクトディレクトリから実行します。

claude mcp add covdbg -- covdbg mcp

または、プロジェクトに .mcp.json を追加します。

{
  "mcpServers": {
    "covdbg": {
      "command": "covdbg",
      "args": ["mcp"]
    }
  }
}
VS Code

.vscode/mcp.json:

{
  "servers": {
    "covdbg": {
      "type": "stdio",
      "command": "covdbg",
      "args": ["mcp", "--workspace", "${workspaceFolder}"]
    }
  }
}
Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "covdbg": {
      "command": "covdbg",
      "args": ["mcp"]
    }
  }
}
Claude Desktop(MCP Bundle)
  1. 最新リリースから covdbg.mcpb をダウンロードします。
  2. Claude Desktop で開くか、設定 → 拡張機能にドラッグします。
  3. 次の項目を設定します。
    • covdbg 実行ファイル: covdbg.exe のパスです。デフォルトは MSI のインストール先です。
    • ワークスペース: プロジェクトディレクトリです。
    • プロジェクトトークン: 任意です。covdbg login を実行済みの場合は空欄のままにしてください。サインインしたチームのライセンスが実行に適用されます(covdbg whoami を参照)。

バンドルには covdbg 自体は含まれていません。インストール済みの covdbg.exe を起動するため、covdbg の更新は新しいバンドルを用意しなくても反映されます。

ツール

ツール用途主な入力
guideワークフローと設定に関するガイダンスです。初回実行前に呼び出してください。topic(workflow、config、excludes、baseline、merging、uncovered、children、libraries)は任意です
discover実行ファイルとカバレッジデータベースを検索しますroot は任意です
runカバレッジ実行を開始し、すぐに実行セッションを返しますtarget。target_arguments、config_path、output_path、follow_children は任意です
wait_run少し待つか、完了した結果を取得しますsession_id。timeout_seconds は任意です
cancel_run実行を終了しますsession_id
open_coverage既存のデータベースを読み取り専用で開きますpath
files未カバー行の数でファイルを順位付けしますsession_id。limit、max_coverage_percent は任意です
codeコンテキスト付きで未カバーのソースセグメントを読み取りますsession_id、file_path
query制限時間内に、読み取り専用の SQL ステートメントを 1 つ実行しますsession_id、sql。max_rows は任意です
merge異なるチェックアウトやビルドのデータベースも統合しますinput_paths、output_path
close実行またはカバレッジセッションを解放しますsession_id
制限と動作
  • 実行セッション ID は run- で始まり、カバレッジセッション ID は covdb- で始まります。
  • 実行中の実行は最大 8 件、開いているカバレッジセッションは最大 32 件です。covdbg プロセスが生存している間、その実行は実行中としてカウントされます。wait_run が終了を確認した後は、枠を占有しません。
  • wait_run は最大 30 秒間待機します。stillRunning が返された場合は、再度呼び出してください。
  • 実行結果は success、no_functions_to_track、license_failure、error のいずれかです。
  • covdbg の終了コードには、対象の終了コードが反映されません。そのため、テスト結果は別途確認してください。
  • follow_children は、対象が起動したプロセスを測定します。ctest.exe や cmd.exe など、デバッグ情報を持たないランチャーは測定されず、covdbg がその子プロセスを測定します。そのため、対象を ctest.exe、target_arguments を --test-dir build とした run で follow_children を使うと、CTest が実行するテストバイナリが測定されます。同じバイナリの各プロセスのヒット数は、1 つのデータベースに加算されます(covdbg 1.5 以降)。
  • query は、制限時間(--query-timeout で指定しない場合は 5000 ms)を超えて実行中のステートメントを停止し、エラーを返します。セッションは開いたままです。また、ステートメントのサイズにも上限があります。SQL は最大 100 KiB、式のネストは 250 段、1 つの複合クエリ内の SELECT は 100 個、LIKE/GLOB パターンは 1000 バイト、各文字列または BLOB は 16 MiB までです(covdbg 1.5 以降)。
  • merge は、各実行の source_root からの相対パスを使って、異なるチェックアウトで記録されたソースファイルを照合します。また、テストの x64 ビルドと ARM64 ビルドのように、同じモジュールパスにある異なるビルドを別々に保持します(covdbg 1.5 以降)。remappedModules と remappedFiles は、この方法で照合した数を示します。
  • covdbg 1.5.0 はスキーマ 8 のカバレッジデータベースを書き込み、それ以前のバージョンで書き込まれた .covdb ファイルを拒否します。カバレッジを再度記録してください。
サーバーの実行中にアップグレードする

covdbg 1.5.0 以降では、クライアントが covdbg mcp を開いている間でも、再起動せずにインストーラーで covdbg をアップグレードまたはアンインストールできます。実行中のサーバーは旧バージョンで応答を続け、新たに開始する実行ではインストール済みの新しい covdbg.exe が使われます。サーバー自体を新しいバージョンにするには、サーバーに再接続してください。Claude Code では、/mcp → covdbg → Reconnect の順に選択します。

環境変数

変数用途
COVDBG_PROJECT_TOKENCI またはヘッドレス環境で使うプロジェクトトークンです。ローカルでの使用では covdbg login による認証が使われ、1 つのチームに紐付けられます。
COVDBG_OUTPUT固定のデフォルト出力先です。後続の実行で以前の結果が上書きされるため、スイート内で同じ場所を使い回さないでください。
COVDBG_MCP_QUERY_TIMEOUT_MS1 件の query ステートメントの制限時間です。1~600000 ms(デフォルトは 5000)です。この範囲外の値は無視されます。両方が指定されている場合は --query-timeout が優先されます。

ドキュメント

公開(メンテナー向け)

manifest.json と server.json の version、および server.json のパッケージ URL に含まれるリリースタグを同期させてください。

  1. バンドルをビルドします。.mcpbignore により、対象は manifest.json、icon.png、LICENSE に限定されます。

    npx @anthropic-ai/mcpb validate manifest.json
    npx @anthropic-ai/mcpb pack . covdbg.mcpb
    
  2. GitHub リリース v<version> を作成し、covdbg.mcpb をアセットとしてアップロードします。

  3. バンドルのハッシュを server.json の fileSha256 に設定します。

    (Get-FileHash covdbg.mcpb -Algorithm SHA256).Hash.ToLower()
    
  4. MCP レジストリに公開します。com.covdbg/* 名前空間では、covdbg.com で DNS 認証を使用します。

    mcp-publisher login dns --domain covdbg.com --private-key <key>
    mcp-publisher publish
    
  5. Glama は、リポジトリから glama.json を取得します。

ライセンス

このリポジトリのメタデータは、Apache License 2.0 の下でライセンスされています。covdbg 自体は別途ライセンスされており、Free、Team、Enterprise の各プランがあります。covdbg.com とライセンスに関する FAQをご覧ください。

コメント

MCP は初めてですか?

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

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