mcp-digger について
mcp-diggerは、AIコーディングエージェントに.NET NuGetリポジトリのソースを段階的に提供するMCPサーバーです。C#に特化したインデックスと階層型ツールにより、パッケージ概要から個別ファイルまで参照でき、管理対象のクローンをワークスペース外に置きます。
主な機能
- 01.NET・NuGetソースリポジトリのインデックス化
- 02リポジトリとパッケージの検出
- 03シンボル・実装・参照の検索
- 04公開APIシグネチャの確認
- 05個別ソースファイルの閲覧
- 06インデックス更新とリポジトリ状態確認
活用シーン
- 01コーディング中に非公開C#ライブラリのAPIを調査
- 02設定済みパッケージ間で型を追跡
- 03全ソースを読む前にシグネチャを確認
- 04リポジトリ変更後にインデックスを更新
MCP 対応
mcp-diggerは、リポジトリ状態の確認、パッケージ検出、シンボル検索、シグネチャ確認、ソース閲覧、インデックス管理のための10種類のツールをMCPクライアントに公開します。対象は`.csproj`パッケージと`.cs`ファイルを含む.NET/C#リポジトリです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
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個)
| Tier | Tool | What 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_refresh | 1つまたはすべてのリポジトリのキャッシュを強制的に再構築 |
| 初期設定 | 🌱 dig_init | スターター .digger/config.json を作成(設定が見つからない場合のみ登録) |
dig_lookup の検索モード:
| Mode | Finds |
|---|---|
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 をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。