NugetMcpServer について
NugetMcpServer は、Codex、Claude Code、VS Code などのクライアントがコード生成の前に NuGet パッケージのメタデータと公開 API を確認できるようにするローカルの MCP サーバーです。nuget.org、プライベートフィード、ローカルのパッケージフォルダーに対応しており、正確なバージョン情報が必要な .NET 開発者を想定しています。
主な機能
- 01NuGet パッケージの検索とメタデータの確認
- 02バージョンごとの公開 API 定義の読み取り
- 03バージョン間の公開 API の差分比較
- 04パッケージ内ファイルの参照
- 05プライベートフィードとローカルパッケージフォルダーへの対応
活用シーン
- 01パッケージに依存するコードを書く前の正確な API 確認
- 022 つのパッケージバージョン間の破壊的変更の調査
- 03プライベート NuGet フィードからの型定義の検索
MCP 対応
本プロジェクトは MCP サーバーであり、パッケージ検索、メタデータ、型定義、バージョン比較、パッケージファイルの読み取りのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
NugetMcpServer
NuGet API の推測を誤ると、大きなコストがかかります。
NugetMcpServer を使うと、Codex、Claude Code、VS Code、Claude Desktop、その他の MCP クライアントは、コードを生成する前に実際の NuGet パッケージのメタデータや公開 API を調べられます。パッケージのバージョンの詳細が重要な場合や、パッケージがプライベートフィードにある場合に特に便利です。
最も簡単な方法は、codex mcp add または claude mcp add でインストールし、パッケージに依存するコードを書く前に NuGet MCP サーバーを使うようアシスタントに依頼することです。
このツールが必要な理由
LLM はよく知られたライブラリについて知っていることが多い一方で、すべてのパッケージバージョンにおける正確な API の範囲を確実に把握しているとは限りません。NugetMcpServer を使うと、アシスタントは記憶で不足を補うのではなく、まずパッケージを確認できます。
NugetMcpServer は、プライベートフィードやローカルのパッケージフォルダーを含め、NuGet パッケージにアシスタントを直接接続します。
アシスタントに提供する機能
- NuGet パッケージを検索し、パッケージのメタデータを調べます。
- 実際のパッケージバージョンの公開 API 定義を読み取ります。
- バージョンを比較し、パッケージファイルを調べ、nuget.org、プライベートフィード、ローカルのパッケージフォルダーを利用します。
クイックスタート
これらのコマンドでは、現在公開されている NuGet パッケージのバージョン 1.1.7 を使用します。dnx は NuGet から .NET ツールをダウンロードして実行するため、別途 dotnet tool install を実行する必要はありません。
1. Codex CLI 経由でインストールする
codex mcp add nuget -- dnx [email protected] --yes
利用可能な MCP コマンドを確認します。
codex mcp --help
Codex TUI 内で、次を実行します。
/mcp
Codex CLI と Codex IDE 拡張機能は MCP の設定を共有するため、サーバーを一度設定すれば、両方のクライアントで利用できるようになります。
2. Claude Code CLI 経由でインストールする
claude mcp add --transport stdio nuget -- dnx [email protected] --yes
-- より後ろはすべて、実際の MCP サーバーコマンドと引数です。
サーバーを管理して確認します。
claude mcp list
claude mcp get nuget
Claude Code 内で、次を実行します。
/mcp
3. VS Code にインストールする
NuGet パッケージページを開き、MCP Server タブを選択して、生成された VS Code の設定をコピーします。
VS Code を手動で設定する場合は、これを mcp.json に追加します。<version> は固定したいパッケージのバージョンに置き換えてください。
{
"servers": {
"nuget": {
"type": "stdio",
"command": "dnx",
"args": ["DimonSmart.NugetMcpServer@<version>", "--yes"]
}
}
}
4. Docker 経由でインストールする
MCP クライアントの環境に .NET SDK がない場合は、Docker を使用してください。
Codex:
codex mcp add nuget-docker -- docker run -i --rm ghcr.io/dimonsmart/nugetmcpserver:latest
Claude Code:
claude mcp add --transport stdio nuget-docker -- docker run -i --rm ghcr.io/dimonsmart/nugetmcpserver:latest
コンテナーを直接実行します。
docker run -i --rm ghcr.io/dimonsmart/nugetmcpserver:latest
VS Code の mcp.json:
{
"servers": {
"nuget": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/dimonsmart/nugetmcpserver:latest"]
}
}
}
5. 手動で設定する
Codex の config.toml:
[mcp_servers.nuget]
command = "dnx"
args = ["DimonSmart.NugetMcpServer@<version>", "--yes"]
Codex の Docker 版:
[mcp_servers.nuget]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/dimonsmart/nugetmcpserver:latest"]
Claude Desktop や、mcpServers 形式の JSON を使用する汎用 MCP クライアント:
{
"mcpServers": {
"nuget": {
"command": "dnx",
"args": ["DimonSmart.NugetMcpServer@<version>", "--yes"]
}
}
}
6. プライベート/ローカルの NuGet ソース
1 つ以上のソース URL またはローカルのパッケージフォルダーには、NUGET_SOURCES を使用します。ソースはセミコロンで区切ります。認証情報やソース名がすでに設定されている場合など、NuGet に特定の NuGet.Config を読み込ませるには、NUGET_CONFIG を使用します。
NUGET_SOURCES を使用する Codex:
codex mcp add nuget-private \
--env NUGET_SOURCES="C:\NuGet\LocalFeed;https://pkgs.dev.azure.com/ORG/_packaging/Feed/nuget/v3/index.json" \
-- dnx DimonSmart.NugetMcpServer@<version> --yes
NUGET_SOURCES を使用する Claude Code:
claude mcp add --transport stdio \
--env NUGET_SOURCES="C:\NuGet\LocalFeed;https://pkgs.dev.azure.com/ORG/_packaging/Feed/nuget/v3/index.json" \
nuget-private \
-- dnx DimonSmart.NugetMcpServer@<version> --yes
NUGET_CONFIG を使用する Codex:
codex mcp add nuget-config \
--env NUGET_CONFIG="/path/to/NuGet.Config" \
-- dnx DimonSmart.NugetMcpServer@<version> --yes
NUGET_CONFIG を使用する Claude Code:
claude mcp add --transport stdio \
--env NUGET_CONFIG="/path/to/NuGet.Config" \
nuget-config \
-- dnx DimonSmart.NugetMcpServer@<version> --yes
Windows では、C:\path\to\NuGet.Config のような Windows のパスを使用します。Linux と macOS では、/path/to/NuGet.Config のような Unix 形式のパスを使用します。パスにスペースが含まれる場合は、引用符で囲んでください。
プライベートソースを指定した VS Code mcp.json:
{
"servers": {
"nuget": {
"type": "stdio",
"command": "dnx",
"args": ["DimonSmart.NugetMcpServer@<version>", "--yes"],
"env": {
"NUGET_SOURCES": "C:\\NuGet\\LocalFeed;https://pkgs.dev.azure.com/ORG/_packaging/Feed/nuget/v3/index.json"
}
}
}
}
プライベートソースを指定した Codex config.toml:
[mcp_servers.nuget]
command = "dnx"
args = ["DimonSmart.NugetMcpServer@<version>", "--yes"]
[mcp_servers.nuget.env]
NUGET_SOURCES = "C:\\NuGet\\LocalFeed;https://pkgs.dev.azure.com/ORG/_packaging/Feed/nuget/v3/index.json"
その他の設定オプション:技術的な詳細
動作確認
MCP クライアントでサーバーが接続済みと表示されたら、アシスタントに明示的に使用するよう依頼します。
Use the NuGet MCP server to inspect Dapper 2.1.66 and show the public extension methods for IDbConnection.
Before writing code, use the NuGet MCP server to inspect the real API of Microsoft.Extensions.DependencyInjection.Abstractions and use only existing public types and methods.
Use the NuGet MCP server to compare public APIs of Some.Package 1.8.0 and 2.0.0 and summarize breaking changes.
利用可能なツール
search_packages:クエリとキーワードでパッケージを検索します。search_packages_fuzzy:AI 支援のあいまい検索でパッケージを検索します。get_package_info:パッケージのメタデータ、依存関係、パッケージの構造を取得します。list_interfaces:公開インターフェイスを一覧表示します。list_classes_records_structs:公開クラス、レコード、構造体を一覧表示します。get_interface_definition:C# インターフェイス定義を返します。get_class_or_record_or_struct_definition:C# クラス、レコード、または構造体の定義を返します。get_enum_definition:C# 列挙型の定義を返します。compare_package_versions:バージョン間の公開 API の変更を比較します。list_package_files:パッケージ内のファイルを一覧表示します。get_package_file:パッケージ内のファイルを読み取ります。get_current_time:現在のサーバー時刻を返します。
パラメーターと開発に関する詳しい説明:技術的な詳細
トラブルシューティング
dnxが見つからない:最新の .NET SDK をインストールし、.NET ツールのパスがシェルで利用できることを確認するか、Docker を使用したインストール方法を利用してください。- Docker が実行されていない:Docker Desktop または Docker デーモンを起動してから、MCP クライアントのコマンドを再試行してください。
- MCP クライアントにサーバーは表示されるが、ツールが表示されない:クライアントを再起動し、クライアントのログを確認して、クライアントの外部でサーバーのコマンドが正常に起動することを確認してください。
- プライベートフィードの認証に失敗する:有効な
NuGet.Config、認証情報プロバイダーの設定、フィード URL、および同じユーザーアカウントで通常の NuGet ツールを使ってそのフィードから復元できることを確認してください。 - 初回実行時のパッケージ復元や検索に時間がかかる:キャッシュ済みの読み取りが速くなる前に、サーバーと NuGet クライアントがパッケージのメタデータやファイルをダウンロードする必要がある場合があります。
- Windows のパスの引用符指定に失敗する:パスを引用符で囲み、JSON/TOML 文字列ではバックスラッシュをエスケープしてください。複雑なソースパスや認証情報を扱う場合は、
NUGET_CONFIGの使用をおすすめします。 - Claude Code または Codex CLI のコマンドが予期せず失敗する:コマンドに
dnxまたはdockerの前の区切り文字--が含まれていることを確認してください。MCP クライアントのオプションはこの区切り文字より前に指定する必要があります。
バージョン
リリースバージョンは、GitHub Actions のパイプラインによって Git タグから割り当てられます。
インストール済みバージョンを確認する:
NugetMcpServer --version
公開
NuGet リリースは、main のバージョンタグから公開されます。
.\publish-next-version.ps1
スクリプトは次の vMAJOR.MINOR.PATCH タグを作成してプッシュします。GitHub Actions はビルドとテストを実行し、MCP マニフェストのバージョンを更新して、NuGet MCP サーバーパッケージをパックし、NuGet に公開します。
WinGet への公開もタグに基づいており、GitHub リリースが作成された後に行われます。
.\publish-winget-version.ps1
デフォルトでは、WinGet スクリプトは最新の vMAJOR.MINOR.PATCH リリースタグを使用します。特定のリリースを公開するには、-Version 1.2.3 を渡してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。