mcpField
M
mcp-digger

mcp-digger

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

mcp-digger について

mcp-diggerは、AIコーディングエージェントに.NET NuGetリポジトリのソースを段階的に提供するMCPサーバーです。C#に特化したインデックスと階層型ツールにより、パッケージ概要から個別ファイルまで参照でき、管理対象のクローンをワークスペース外に置きます。

主な機能

  1. 01.NET・NuGetソースリポジトリのインデックス化
  2. 02リポジトリとパッケージの検出
  3. 03シンボル・実装・参照の検索
  4. 04公開APIシグネチャの確認
  5. 05個別ソースファイルの閲覧
  6. 06インデックス更新とリポジトリ状態確認

活用シーン

  1. 01コーディング中に非公開C#ライブラリのAPIを調査
  2. 02設定済みパッケージ間で型を追跡
  3. 03全ソースを読む前にシグネチャを確認
  4. 04リポジトリ変更後にインデックスを更新

MCP 対応

mcp-diggerは、リポジトリ状態の確認、パッケージ検出、シンボル検索、シグネチャ確認、ソース閲覧、インデックス管理のための10種類のツールをMCPクライアントに公開します。対象は`.csproj`パッケージと`.cs`ファイルを含む.NET/C#リポジトリです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"janeksm-mcp-digger": {
"command": "npx",
"args": [
"-y",
"mcp-digger"
]
}
}
}
起動コマンドnpx -y mcp-digger

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

パッケージ
npmmcp-digger1.1.3

ツール

2

掲載時のツール一覧 · 3 週間前に更新

このツールにパラメーターはありません。

詳細

mcp-digger

AI コーディングエージェント向けのコードコンテキスト。 内部の .NET / NuGet パッケージソースにオンデマンドで段階的にアクセスできます。エージェントは、ワークスペースを一切汚さずに、プライベートな C# ライブラリを自律的に閲覧、検索、読み取ります。

⚠ 対象範囲:.NET / C# のみ。 mcp-digger は、.csproj パッケージと .cs ソースファイルを含む NuGet 形式のリポジトリをインデックス化します。汎用のソースインデクサーではないため、他の言語(TypeScript、Python、Java、Go など)は対象外です。


✨ 導入する理由

パブリックな NuGet パッケージには、API リファレンス、チュートリアル、コミュニティの Q&A などのドキュメントエコシステムがあります。context7 のようなツールは、そうした用途に適しています。

内部の .NET パッケージでは、ソースコードが主要なドキュメントであることがよくあります。mcp-digger はそのソースを、構造化され、検索しやすく、トークン効率のよいコンテキストに変換し、MCP 対応エージェントが利用できるようにします。これにより、プライベートな C# ライブラリエコシステムのドキュメント不足を補います。

導入しない場合:

  • 🐢 コンテキストの収集に時間がかかる — git clone、find、grep、cat の連鎖により、有用なコンテキストを取得する前にインフラ関連でトークンを消費します。
  • 🔍 セマンティック検索ができない — ファイルシステムツールで見つかるのはテキストであり、API の構造ではありません。「このインターフェイスを実装するすべての型」を調べるには、その都度抽出スクリプトを書く必要があります。
  • 💸 トークンの浪費 — メソッドシグネチャが1つあればよい場面でも、エージェントがファイル全体を読み込みます。
  • 🖱 権限確認のクリック疲れ — 1回のセッションで、数十件ものシェルコマンドの承認が必要になります。
  • 🧹 ワークスペースが煩雑になる — 参照先のリポジトリがファイル検索、git の状態、エージェントのコンテキストウィンドウを汚します。

導入した場合:

  • ✅ 最初から正しいコードを記述 — 実際のシグネチャ、ジェネリック制約、インターフェイスの契約、基底クラスのパターンを利用できます。
  • ⚡ 必要なコンテキストを自分で取得 — エージェントに NuGet リポジトリを一度指定すれば、自律的に閲覧、検索、読み取りを行います。
  • 🪙 段階的な情報開示 — 5,000トークンのソースを読む前に、200トークンの概要を確認できます。ほとんどの質問は L1 または L2 で解決します。
  • 🧼 ワークスペースを一切汚さない — 管理対象のクローンはプロジェクトツリーの外に配置されます。
  • 🌐 あらゆる Git ホストに対応 — GitHub、GitLab、Azure DevOps、Bitbucket、セルフホスト環境に HTTPS または SSH で接続できます。

🛠 仕組み

広範な情報から詳細な情報へと段階的に掘り下げる、目的別の10個のツールを用意しています。エージェントは、質問に答えられる最も低コストなツールを選択します。

                                                           ┌─→ 📦 dig_package_overview ─┐
                                                           │   (docs, key types)        │
   🩺 dig_status  →  📋 dig_list  →  📖 dig_repo_overview  ┤                            ├─→  🔎 dig_lookup     →  📄 dig_file
   (health)          (discover)      (README + summaries)  │                            │   (symbol → file)       (full source)
                                                           ├─→ 📁 dig_package_files ────┤
                                                           │   (file listing)           │
                                                           └────────────────────────────┴─→  📝 dig_signatures
                                                                                            (stripped API)

   Operational:  🔄 dig_refresh   (force cache invalidation, on demand)
   Bootstrap:    🌱 dig_init      (only when no config exists)

🧰 ツール(10個)

TierToolWhat it does
ヘルスチェック🩺 dig_status設定の概要、リポジトリごとの接続確認、インデックスの健全性統計
探索📋 dig_list設定済みリポジトリとそのパッケージを一覧表示し、各 .csproj の概要を1行で表示
L1 概要📖 dig_repo_overviewリポジトリの README.md(アーキテクチャに関するセクションに絞り込み)とパッケージ数
L1 概要📦 dig_package_overviewパッケージのドキュメント、主要インターフェイス、抽象クラス、ファイル数
L1 概要📁 dig_package_filesパッケージ内の .cs ファイル一覧と、ディレクトリ概要ヘッダー
L2 検索🔎 dig_lookupインデックス化されたシンボル検索 — symbol、implements、references の各モードに対応。パッケージをまたいだ検索も可能です。
L2 検索📝 dig_signaturesキーワードで絞り込んだ、メソッド本体を含まない C# の公開 API サーフェス
L3 ソース📄 dig_file単一ファイルのソース全体(上限 1 MB)
運用🔄 dig_refresh1つまたはすべてのリポジトリのキャッシュを強制的に再構築
初期設定🌱 dig_initスターター .digger/config.json を作成(設定が見つからない場合のみ登録)

dig_lookup の検索モード:

ModeFinds
symbol(デフォルト)名前の部分文字列に一致する型やメソッドの宣言
implementsインターフェイスを実装するクラスや構造体、または基底クラスを継承するクラスや構造体
references指定した型名を参照するファイル(単語境界で判定、大文字と小文字を区別)

🚀 クイックスタート

インストール
npm install -g mcp-digger
# or run directly
npx mcp-digger

Node.js 20 以降、PATH 上の git、および .NET / C# ソースリポジトリ(.csproj と .cs ソースを含む NuGet パッケージ)が必要です。

最小限の設定

ワークスペースのルートに .digger/config.json を作成します:

{
  "repos": [
    {
      "name": "my-libraries",
      "url": "https://github.com/org/shared-libs.git",
      "packageFilter": "MyCompany.*",
      "auth": {
        "strategy": "pat",
        "PAT-EnvVarName": "GIT_PAT"
      }
    }
  ]
}

まだ設定ファイルがありませんか?サーバーを起動してから、dig_init を呼び出してひな形を作成してください。

エージェントの設定
Claude Code

.claude/settings.json またはプロジェクト設定に追加します:

{
  "mcpServers": {
    "digger": {
      "command": "npx",
      "args": ["-y", "mcp-digger"]
    }
  }
}
Codex CLI

~/.codex/config.toml(またはプロジェクト単位の場合は .codex/config.toml)に追加します:

[mcp_servers.mcp-digger]
command = "npx"
args = ["-y", "mcp-digger"]
Claude Desktop

claude_desktop_config.json に追加します:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "digger": {
      "command": "npx",
      "args": ["-y", "mcp-digger"]
    }
  }
}
VS Code

.vscode/mcp.json(ワークスペース)またはユーザー設定の mcp.json に追加します:

{
  "servers": {
    "digger": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-digger"]
    }
  }
}
Cursor

.cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)に追加します:

{
  "mcpServers": {
    "digger": {
      "command": "npx",
      "args": ["-y", "mcp-digger"]
    }
  }
}
確認

接続したら、エージェントに dig_status を呼び出すよう依頼してください。設定の検証、リポジトリごとの接続状況、インデックスの健全性が報告されます。


⚙ 設定

リポジトリとパッケージ

repos[] エントリでは、パッケージを次の3つの方法で指定できます:

オプション動作
"packages": ["A", "B"]明示的なリストです。指定したパッケージに加え、<ProjectReference> 経由で取り込まれるローカルの兄弟プロジェクトも含まれます(推移的に解決されますが、兄弟プロジェクトのみです)。
"packageFilter": "MyCompany.*"ワイルドカードです。.sln/.slnx/Directory.Packages.props のワークスペーススキャンで見つかったパッケージのうち、プレフィックスに一致するものに絞り込みます。推移的な ProjectReference リンクも自動的にたどります。
(どちらも省略)sourceRoot 配下のテスト以外のすべての .csproj ディレクトリを自動検出します(再帰的に検索するため、入れ子になった構成にも対応します)。

sourceRoot のデフォルト値は "src" です。パッケージフォルダーがあるディレクトリを指定してください。再帰的に検索するため、src/Group/Foo/Foo.csproj のような入れ子になった構成も検出されます。

ブランチの追跡

デフォルトでは、管理対象のクローンにはリポジトリのデフォルトブランチが使用されます。特定のブランチを指定するには、次のようにします:

{
  "repos": [
    {
      "name": "my-libraries",
      "url": "https://github.com/org/shared-libs.git",
      "branch": "develop"
    }
  ]
}

このブランチは、初回のクローンとその後のフェッチの両方に使用されます。管理対象のクローンにのみ適用されます。ローカルリポジトリの場合は、チェックアウトするブランチを自分で管理してください。

ローカルリポジトリ(モードB)

リポジトリがすでにディスク上にある場合は、管理対象のクローンを省略できます。ローカルパスは読み取り専用です。mcp-digger がフェッチや変更を行うことはありません。

{
  "localRepos": {
    "my-libraries": "C:/repos/shared-libs"
  },
  "repos": [
    {
      "name": "my-libraries",
      "sourceRoot": "src"
    }
  ]
}
認証方式
方式動作
auto (デフォルト)認証なしで試し、PAT が設定されていれば PAT にフォールバックします
pat常に PAT を使用します(設定されていない場合は致命的エラーになります)
none認証を行いません

PAT は直接記述する("PAT": "...")か、環境変数を参照する("PAT-EnvVarName": "MY_TOKEN")方法で指定できます。ワークスペースのルートにある .env ファイルは自動的に読み込まれます。 # を含む値は引用符で囲んでください。

環境変数
変数デフォルト用途
DIGGER_CONFIG.digger/config.json設定ファイルのパスを上書きします
MANAGED_SOURCE_DIR.digger/source管理対象クローンのディレクトリを上書きします
CACHE_DIR.digger/cacheキャッシュディレクトリを上書きします

シークレット(PAT の値)は .env または実際の環境変数に設定してください。この表にある環境変数として設定しないでください。


🩺 診断と復旧

症状最初に呼び出すもの次に行うこと
接続/認証の問題dig_status認証の試行、正確なエラー、実行可能なヒントを報告します
一致するものがないが、あるはずだと思う場合dig_refresh <repo>インデックスを強制的に再構築し、新しい抽出ロジックを反映します
サーバーは起動するが、ツールが表示されないdig_status未設定の場合、登録されるのは dig_status と dig_init のみです
設定を一から作成する必要があるdig_init.digger/config.json を生成します(アトミックに実行され、既存のファイルは上書きしません)
デバッグログ

設定でデバッグログを有効にします。

{ "debug": true, "repos": [...] }

ログは .digger/debug.log に出力されます(最大 5 MB で、自動的に切り詰められます)。重大なエラーとクラッシュ時の出力は .digger/error.log に記録されます。


💬 フィードバック

mcp-digger をご自身のコードベースで試しましたか?うまくいったこと、問題が発生したこと、不足している機能について、GitHub Discussions で共有してください。バグ報告は Issues にお寄せください。


📜 ライセンス

MIT License — LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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