mcpField
N
NuGet Context MCP Server

NuGet Context MCP Server

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

NuGet Context MCP Server について

NuGet Context MCP Serverは、.NETソリューションやプロジェクトを解析し、NuGetフィードからパッケージのバージョンとメタデータを取得します。依存関係の情報を必要とするAIエージェントや開発ツール向けで、結果をローカルのSQLiteにキャッシュします。

主な機能

  1. 01.slnと.csprojの依存関係解析
  2. 02設定済みNuGetフィードの検索
  3. 03パッケージのバージョン一覧取得
  4. 04パッケージメタデータの取得
  5. 05SQLiteによる結果のキャッシュ

活用シーン

  1. 01プロジェクト依存パッケージの新しいバージョン確認
  2. 02キーワードによるNuGetパッケージ検索
  3. 03パッケージのバージョンとメタデータの確認
  4. 04キャッシュによるフィードへの重複照会の削減

MCP 対応

依存関係の解析とNuGetパッケージの照会をMCPツールとして提供します。MCPクライアントは通常、プロセスを起動し、stdioで通信します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

NuGet Context MCP Server

License: MIT smithery badge .NET Test

.NET プロジェクトの依存関係(NuGet パッケージ)に関するコンテキストを大規模言語モデル(LLM)やその他の開発ツールに提供する、Model Context Protocol(MCP) サーバーとして機能する C# アプリケーションです。

概要

このサーバーは .NET ソリューション(.sln)とプロジェクト(.csproj)を分析して、NuGet パッケージの情報を抽出します。NuGet フィードと連携して、パッケージの詳細、バージョン、メタデータを取得し、パフォーマンス向上のため、結果を SQLite を使ってローカルにキャッシュします。これらの機能は Model Context Protocol(MCP)経由のツールとして提供され、AI エージェントやその他のツールがプログラムから NuGet 情報を照会できます。

機能

このサーバーは、MCP 経由で以下のツールを提供します。

  • AnalyzeProjectDependencies:.sln または .csproj ファイルを分析して、NuGet の依存関係と利用可能な最新バージョンを検索します。
  • SearchNuGetPackages:設定された NuGet フィードで検索語に一致するパッケージを検索します。ページネーションやプレリリースバージョンを含めるオプションがあります。
  • GetNuGetPackageVersions:特定のパッケージ ID で利用可能なすべてのバージョン(安定版またはプレリリース版)を一覧表示します。
  • GetLatestNuGetPackageVersion:特定のパッケージ ID の最新の安定版またはプレリリース版のバージョン文字列を取得します。
  • GetNuGetPackageDetails:特定のパッケージ ID と任意のバージョンについて、詳細なメタデータ(説明、作成者、URL など)を取得します。

前提条件

  • .NET 9 SDK(または互換性のあるそれ以降のバージョン)

インストールとビルド

  1. リポジトリをクローンします。
    git clone https://github.com/plucked/nuget-context-server
    cd nuget-context-server
    
  2. サーバーをビルドします。
    dotnet build --configuration Release
    
    メインの実行ファイルは src/NuGetContextMcpServer.Host/bin/Release/net9.0/ ディレクトリ内に出力されます(実際のビルド出力に応じてパスを調整してください)。

テスト

このプロジェクトでは、単体テストと統合テストに NUnit を使用し、単体テストで依存関係をモックするために Moq を使用しています。

すべてのテストを実行するには、リポジトリのルートに移動して、次のコマンドを実行します。

dotnet test

注: 統合テスト(NuGetContextMcpServer.Integration.Tests)の実行には、テストコンテナーを使用する場合があるため、Docker がインストールされ、実行中である必要があります。Docker Desktop はこちらからダウンロードできます。

テストプロジェクトは tests/ ディレクトリにあります。

  • NuGetContextMcpServer.Application.Tests:アプリケーション層のサービスの単体テストです。
  • NuGetContextMcpServer.Infrastructure.Tests:インフラストラクチャ層のコンポーネント(キャッシュや解析など)の単体テストです。
  • NuGetContextMcpServer.Integration.Tests:実際のファイルシステムや外部リソースとやり取りする場合がある統合テストです(通常はモックを使用するか、ローカルのテスト用アセットを使用します)。

使用方法と設定

このサーバーは、IDE 拡張機能などの MCP クライアントアプリケーションによって実行されるように設計されています。通常、クライアントがサーバープロセスを起動し、標準入出力(stdio)を介して通信します。

設定:

サーバーの設定には、src/NuGetContextMcpServer.Host ディレクトリにある appsettings.json(および appsettings.Development.json のような環境固有のオーバーライド)が使用されます。

  • NuGetSettings:
    • QueryFeedUrl:NuGet v3 フィードインデックスの URL です(デフォルトは https://api.nuget.org/v3/index.json)。
    • Username(任意):認証が必要なフィードのユーザー名です。
    • PasswordOrPat(任意):認証が必要なフィードのパスワードまたはパーソナルアクセストークン(PAT)です。
  • CacheSettings:
    • DatabasePath:SQLite キャッシュファイルへのパスです(デフォルトは作業ディレクトリ内の nuget_cache.db です)。
    • DefaultExpirationMinutes:キャッシュのデフォルト保持時間(分)です(デフォルトは 60 です)。
  • ログ記録: appsettings.json の Serilog 設定で構成されます。デフォルトでは、ログはファイルに書き込まれます。

MCP クライアント設定例(stdio を使用):

MCP クライアントには、通常、次のような設定が必要です(構文はクライアントによって異なる場合があります)。

{
  "mcpServers": {
    "nuget-context": {
      "command": "dotnet",
      "args": [
        "watch",
        "run",
        "--non-interactive",
        "--project",
        "src/NuGetContextMcpServer.Host/NuGetContextMcpServer.Host.csproj",
        "--",
        "--transport", "stdio"
      ],
      "cwd": ".",
      "disabled": false
    }
  }
}
  • command:実行する実行可能ファイル(dotnet)です。
  • args:コマンドに渡す引数です。開発時は dotnet watch run を使用して、ファイルの変更時にサーバーを自動的に再起動します。--transport stdio 引数は、MCP 通信に標準 I/O を使用するようサーバーに指示します。本番環境または watch を使用しない場合は、"watch" を "run" に置き換え、"--non-interactive" を削除してください。
  • cwd:コマンドを実行する作業ディレクトリです(通常はリポジトリのルートです)。

アーキテクチャ

このサーバーは、.NET Generic Host を基盤とするレイヤー化アーキテクチャを採用しています。

  • ホスト: アプリケーションのライフサイクル、依存性注入(DI)、設定、ログ記録、および MCP 通信のセットアップを管理します。
  • アプリケーション: サービスインターフェイスを定義し、アプリケーションのコアロジックと MCP ツールの定義を含みます。
  • インフラストラクチャ: 次の具体的な実装を提供します。
    • NuGet フィードとのやり取り(NuGet.Protocol)。
    • プロジェクト/ソリューションの解析(Microsoft.Build)。
    • キャッシュ(Microsoft.Data.Sqlite)。

コントリビューション

コントリビューションを歓迎します!詳細については、コントリビューションガイドラインを参照してください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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