次の方法で共有


.NET AI とモデル コンテキスト プロトコルの概要

モデル コンテキスト プロトコル (MCP) は、AI アプリと外部ツールとデータ ソース間の統合を標準化するように設計されたオープン プロトコルです。 MCP を使用することで、開発者は AI モデルの機能を強化し、より正確で関連性の高いコンテキストに対応した応答を生成できます。

たとえば、MCP を使用して、LLM を次のようなリソースに接続できます。

  • ドキュメント データベースまたはストレージ サービス。
  • ビジネス データまたはロジックを公開する Web API。
  • ファイルを管理したり、ユーザーのデバイスでローカル タスクを実行したりするツール。

多くの Microsoft 製品では、次のような MCP が既にサポートされています。

MCP C# SDK を使用すると、独自の MCP 統合をすばやく作成し、コードを大幅に変更せずにさまざまな AI モデルを切り替えることができます。

MCP クライアントとサーバーのアーキテクチャ

MCP は、AI を利用したアプリ (ホスト) が MCP クライアントを介して複数の MCP サーバーに接続できるようにするクライアント サーバー アーキテクチャを使用します。

  • MCP ホスト: MCP を通じてコンテキスト リソースを使用して AI モデルを強化する AI ツール、コード エディター、またはその他のソフトウェア。 たとえば、Visual Studio Code の GitHub Copilot は MCP ホストとして機能し、MCP クライアントとサーバーを使用してその機能を拡張できます。
  • MCP クライアント: コンテキスト データを取得するために MCP サーバーに接続するためにホスト アプリケーションによって使用されるクライアント。
  • MCP サーバー: MCP を介してクライアントに機能を公開するサービス。 たとえば、MCP サーバーでは、ビジネス データを AI モデルに提供するために、REST API またはローカル データ ソースに対する抽象化が提供される場合があります。

次の図は、このアーキテクチャを示しています。

ホスト、クライアント、サーバーを含む MCP のアーキテクチャ パターンを示す図。

MCP クライアントとサーバーは、一連の標準メッセージを交換できます。

メッセージ 説明
InitializeRequest この要求は、クライアントが最初に接続するときにサーバーに送信され、初期化を開始するように求められます。
ListToolsRequest サーバーに含まれるツールの一覧を要求するためにクライアントによって送信されます。
CallToolRequest サーバーによって提供されるツールを呼び出すためにクライアントによって使用されます。
ListResourcesRequest 使用可能なサーバー リソースの一覧を要求するためにクライアントによって送信されます。
ReadResourceRequest 特定のリソース URI を読み取るためにクライアントからサーバーに送信されます。
ListPromptsRequest サーバーから使用可能なプロンプトとプロンプト テンプレートの一覧を要求するためにクライアントによって送信されます。
GetPromptRequest サーバーによって提供されるプロンプトを取得するためにクライアントによって使用されます。
PingRequest サーバーまたはクライアントによって発行された pingで、相手が正常に動作しているかどうかを確認します。
CreateMessageRequest クライアント経由で LLM をサンプリングするためのサーバーによる要求。 クライアントは、どのモデルを選択するかについて完全な裁量権を持っています。 クライアントは、サンプリングを開始する前にユーザーに通知して、要求 (ループ内の人間) を検査し、承認するかどうかを決定できるようにする必要もあります。
SetLevelRequest ログ記録を有効または調整するための、クライアントによるサーバーへの要求。

MCP C# SDK を使用した開発

.NET 開発者は、MCP クライアントとサーバーを作成して MCP を使用して、カスタム統合を使用してアプリを強化できます。 MCP を使用すると、AI モデルをさまざまなツール、サービス、データ ソースに接続する際の複雑さが軽減されます。

公式の MCP C# SDK は NuGet から入手でき、.NET アプリとライブラリ用の MCP クライアントとサーバーを構築できます。 SDK は、Microsoft、Anthropic、および MCP オープン プロトコル組織間のコラボレーションを通じて維持されます。

作業を開始するには、MCP C# SDK をプロジェクトに追加します。

dotnet add package ModelContextProtocol --prerelease

多くの場合、統合ポイントごとに固有のコネクタを構築する代わりに、GitHub や Docker などのさまざまなプロバイダーから事前構築済みの統合を利用または参照できます。

Microsoft.Extensions.AI との統合

MCP C# SDK は、さまざまな AI の対話とタスクを処理する Microsoft.Extensions.AI ライブラリ に依存します。 これらの拡張ライブラリは、AI サービスを操作するためのコア型と抽象化を提供するため、開発者は特定のプラットフォームやプロバイダーの実装ではなく、概念的な AI 機能に対するコーディングに集中できます。

NuGet パッケージ ページで MCP C# SDK の依存関係を表示します。

その他の .NET MCP 開発リソース

MCP クライアントとサーバーの構築や既存の MCP サーバーとの統合を支援するために、.NET と Azure のエコシステムでは、さまざまなツール、サービス、学習リソースを利用できます。

次の開発ツールの使用を開始します。

.NET と MCP の詳細については、次のリソースを使用してください。