Integrations
Provides a backend implementation for the MCP server using .NET, connecting to Azure Cosmos DB for database operations
Serves as the foundation for the MCP server component, connecting to Azure Cosmos DB to read products and orders data
Integrates with Azure OpenAI services for text embeddings and the AI Assistant functionality that helps users find products and retrieve order information
Azure Cosmos DB MCP クライアント & サーバー
このリポジトリには、Azure Cosmos DB 用の MCP サーバーとクライアントの作成方法を示すプロジェクトが含まれています。このプロジェクトは 2 つの部分に分かれています。
- フロントエンドアプリケーション: 製品カタログを表示し、ユーザーがカタログ内の製品を見つけて過去の注文を取得するのに役立つ AI アシスタントを備えた NextJS 15 アプリケーション
- Azure Cosmos DB NoSQL データベースに接続され、データベースから製品と注文を読み取る役割を担う MCP サーバー コンポーネント。
Azure アーキテクチャ
- 製品カタログを保存する Azure Cosmos DB NoSQL データベース
- MCP サーバー コンポーネントとして機能する Node.js サーバー
参考文献
ステップバイステップのウォークスルー
インストール
Azure Cosmos DB
Azure ポータルで、Azure Cosmos DB for NoSQL アカウントを作成します。
- Azure Cosmos DB アカウントに一意の名前を付けます。このチュートリアルの残りの部分では、cosmos-eastus2-nosql-2 を使用します。
- 「次へ: グローバル配布」をクリックします
- デフォルト値を受け入れて、「次へ: ネットワーク」をクリックします。
- デフォルト値を受け入れて、「次へ: バックアップポリシー」をクリックします。
- 「定期」バックアップポリシーを選択する
- 「ローカル冗長バックアップストレージ」を選択します
- 「次へ: 暗号化」をクリックします
- 「確認と作成」をクリックして検証を開始します
- 「作成」をクリックして、Azure Cosmos DB for NoSQL アカウントの作成を開始します。
このプロジェクトでは、Azure Cosmos DB アカウントでベクター サポートを有効にする必要があります。
- 設定セクションで、「機能」を選択し、「Vector Search for NoSQL API」を選択します。
- 開いたパネルで、「有効にする」ボタンをクリックします。
- Azure Cosmos DB eShop データベースと製品コンテナーを作成する
- eShop の横にある「...」をクリックしてコンテキスト メニューを表示し、「新しいコンテナー」を選択して、eShop データベースに「カート」コンテナーを作成します。
パーティションキーが***「/id」***であることを確認してください(パーティションキーでは大文字と小文字が区別されます)
「コンテナベクターポリシー」を展開し、「ベクター埋め込みを追加」ボタンをクリックします。
- カートコンテナを作成する
ストレージアカウント
- 製品画像を保存するためのストレージアカウントを作成する
詳細については、次のドキュメントを参照してください: https://learn.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal
**ソフトウェアの前提条件をインストールする**
- Azureで仮想マシンを作成するか、ローカルコンピューターを使用する
- https://nodejs.org/en/downloadから node.js v22.13.1 (LTS) をインストールします。
- https://code.visualstudio.com/downloadから Visual Studio Code x64 1.97.0 をインストールします。
- https://git-scm.com/downloadsから Git 2.47.12 x64 をインストールします。
- https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-9.0.102-windows-x64-installerから .NET SDK x64 v9.0.102 をインストールします。
- ターミナルウィンドウを開き、NuGetソースを追加します。
- 必要に応じて、WindowsコンピュータのPowerShell実行ポリシーを変更します。管理者モードでPowerShellウィンドウを開き、次のコマンドを実行します。
- 必要に応じて、NuGet、PowerShell、az cli、azモジュールをインストールします。
- ターミナル ウィンドウを開き、リポジトリのクローンを作成します。
- nextjsフォルダに移動して依存関係をインストールします
- nextjs フォルダーで、次の値を持つ .env ファイルを作成して構成します。
- テナントIDを取得します。テナントIDは次のコマンドで取得できます。
- webapi フォルダーで、appsettings.json ファイルを構成し、tenant_id を前の手順で取得した値に置き換えます。
- Azure ポータルでアプリ登録を作成する
- Azureポータルでアプリシークレットを作成する
- アプリにAzure Cosmos DBへのアクセスを許可する必要があります。以下の4つのIDを取得し、「populate/set_rbac.ps1」ファイルを変更してください。
変数 | 参照 |
---|---|
サブスクリプションID | Cosmos DB > 概要 > サブスクリプション ID |
Azure Cosmos DB アカウント名 | コスモス-eastus2-nosql-2 |
リソースグループ名 | Cosmos DB > 概要 > リソースグループ名 |
プリンシパルID | アプリ登録オブジェクトID |
- Powershellプロンプトを開き、Connect-AzAccountを実行して、./set_rbac.ps1を実行します。
- アプリ(または仮想マシン)がストレージ アカウントにアクセスできるようにします
- Azureポータルでストレージアカウントに移動します
- メニューでアクセス制御(IAM)を選択します
- 「役割の割り当てを追加」をクリックします
- フィルターテキストボックスに「Storage Blob Data Contributor」と入力します
- 「メンバー」をクリック
- アプリケーションの名前を選択してください
- 「選択」ボタンをクリックします
- 「確認して割り当てる」をクリックします
- コンテナを作成し、「azure-storage」フォルダの内容をストレージアカウントにコピーします。
- dotnet build で WebAPI バックエンド プロジェクトをビルドする
18. セカンダリリージョンVM(オーストラリア東部)で、プライマリリージョン(米国東部2)のソケットサーバーのIPアドレスを使用して.envファイルを変更します。
- このプロジェクトには認証機能が組み込まれていません。ユーザーのメールアドレスは/nextjs/models/constants.tsにハードコードされています。デモのニーズに合わせて変更してください。
- mcp-server と nextjs フォルダで、.env.template を .env にコピーし、デモのニーズに合わせて値を変更します。
- Nextjsフロントエンドプロジェクトをビルドする
製品カタログに情報を追加する
このセクションでは、populate/catalog.json ファイルから製品カタログを読み取り、Azure Cosmos DB for NoSQL データベースに入力します。
- appsettings.jsonをcosmosdbアカウント名に変更し、
- ターミナルウィンドウを開き、populateフォルダに移動し、az loginを実行してからdotnet runを実行します。
- Azure Cosmos DB コンテナーが適切に設定されていることを確認します
デモスクリプト
デモの初期化:
- 開発用コンピュータで、mcpサーバーを起動します。
- フロントエンドプロジェクトを開始する
- NextJS フロントエンド(ストアフロント)
- cd nextjs
- npm スタート
- オプションとして、コマンドプロンプトを開き、次のコマンドでMCPインスペクターを起動します: npx -y @modelcontextprotocol/inspector
デモの手順:
- http://localhost:3002に移動します。
- 右上隅のAIアシスタントアイコンをクリックします
- 「バックパックに興味があります」と入力します(商品リストが更新され、バックパックのリストが表示されます)
- 「注文を取得」と入力します(注文リストが更新されます)
This server cannot be installed
Azure Cosmos DB NoSQL データベースに接続する Node.js サーバー。ユーザーは、NextJS フロントエンド アプリケーションの AI アシスタントを通じて製品や注文を照会できます。
Related MCP Servers
- AsecurityAlicenseAqualityThis server implements the Model Context Protocol for seamless interaction with Azure Blob Storage and Cosmos DB, enabling automatic logging and audit tracking of operations.Last updated -164PythonMIT License
- -securityAlicense-qualityA server that enables LLMs like Claude to interact with Azure Cosmos DB databases through natural language queries, acting as a translator between AI assistants and database systems.Last updated -JavaScriptMIT License
- -securityFlicense-qualityA Node.js server that processes mathematical calculations and natural language math queries through RESTful API endpoints.Last updated -JavaScript
- AsecurityAlicenseAqualityA server that enables LLMs (like Claude and VSCode Copilot) to interact with Azure Cosmos DB data through natural language queries, acting as a translator between AI assistants and your database.Last updated -3111JavaScriptMIT License