mcpField
E
eShopLite

eShopLite

ローカル
aka.ms開発ツール1691 日前に更新

eShopLite について

eShopLiteは、.NETとAspireを使ったEC参考アプリ群で、セマンティック検索、ベクトルデータベース、AIモデル、エージェントの利用例を示します。これらの技術構成を試す開発者向けで、MCPサーバーとクライアントの実装も個別シナリオで紹介します。

主な機能

  1. 01キーワード検索とセマンティック検索の例
  2. 02複数のAIモデルとの連携
  3. 03複数のベクトルデータベースの例
  4. 04リアルタイム音声シナリオ
  5. 05MCPサーバーとクライアントの実装
  6. 06マルチエージェント連携の紹介

活用シーン

  1. 01EC向けセマンティック検索参考アプリの構築
  2. 02ベクトルデータベース実装の検討
  3. 03MCPサーバーとクライアント間の動作検証
  4. 04マルチエージェントのオーケストレーション検討

MCP 対応

MCPサーバーとクライアントの実装を含み、MCP連携を示す専用シナリオがあります。別のシナリオでは、安全な店舗操作をMCPツールとしてエージェントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

eShopLite

GitHub license GitHub contributors GitHub issues GitHub pull-requests PRs Welcome

GitHub watchers GitHub forks GitHub stars

Azure AI Community Discord

Azure AI Foundry GitHub Discussions

eShopLite は、セマンティック検索、Model Context Protocol(MCP)、推論モデル、ベクトルデータベースなどの機能を備えた e コマースサイトを実装する、.NET リファレンスアプリケーションのセットです。

  • ☁️ シナリオでは .NET と Aspire を使用し、安定版の .NET 10 をベースラインとしています。また、実験的な Blazor AI コンポーネント用に、.NET 11 RC2 を使用する独立したシナリオもあります。互換性に関する例外については、以下の依存関係のベースラインをご覧ください。
  • 🌟 後で見つけやすくするため、このリポジトリに**スター(🌟)を付けて**ください。
  • ➡️ **このリポジトリをフォーク**して自分用のコピーを作成すると、自分のリポジトリからすぐに見つけられます。
  • ❓ ご質問がありますか? issueやプルリクエストを作成するほか、質問にはAzure AI Discord チャンネルへの参加がおすすめです。AI の専門家チームがサポートします。

機能

このプロジェクトのフレームワークには、次の機能があります。

  • Aspire を使用した最新の .NET アプリケーションアーキテクチャ
  • さまざまな検索機能(キーワード検索、セマンティック検索)
  • 複数の AI モデル(GPT-4o、DeepSeek-R1 など)との統合
  • ベクトルデータベースの実装(インメモリ、Azure AI Search、Chroma DB など)
  • リアルタイムオーディオ機能
  • Model Context Protocol(MCP)サーバーおよびクライアントの実装

eShopLite のシナリオ

このプロジェクトには、さまざまな機能を紹介する複数のシナリオが含まれています。

シナリオ説明主なテクノロジ
01 - Semantic Searchキーワード検索とセマンティック検索を使用した検索機能を備える、eコマースサイトを実装した.NET のリファレンスアプリケーションです。Aspire、OpenAI GPT-4.1-mini、インメモリベクトルデータベース
02 - Azure AI SearchSQL クエリを使用したキーワード検索と、ベクトルデータベースおよび Azure AI Search を使用したセマンティック検索を備える eコマースサイトを実装します。Azure AI Search、OpenAI Embeddings、SQL Server
03 - Realtime AudioGPT-4o Realtime Audio API を活用した高度な検索機能とリアルタイムオーディオ機能で、eコマースサイトを拡張します。GPT-4o Realtime Audio API、Blazor のオーディオ、Aspire
04 - Chroma DBAI アプリケーション向けに設計されたオープンソースデータベース、Chroma DB を使用してセマンティック検索機能を実装します。Chroma DB、OpenAI Embeddings、.NET SDK
05 - DeepSeek-R1セマンティック理解と検索機能を強化するため、DeepSeek-R1 モデルとの統合を実演します。DeepSeek-R1、Aspire、ベクトル埋め込み
06 - Model Context Protocol (MCP)MCP サーバーと MCP クライアントを使用した高度な AI インタラクションのために、Model Context Protocol (MCP) を実装します。Model Context Protocol、Function Calling、SSE イベント
07 - Agents Concurrentエージェントの並行オーケストレーションと、高度な AI エージェントの協調パターンを実演します。Aspire、マルチエージェントシステム、オーケストレーション
08 - SQL Server 2025SQL Database Engine におけるベクトル検索とベクトルインデックスの使用方法を実演します。SQL Server 2025、ベクトル検索、ベクトルインデックス
09 - Azure App Serviceデータに SQLite を使用し、AI 検索を統合した Aspire マルチサービス eコマースアプリを Azure App Service にデプロイする方法を紹介します。Azure App Service、Aspire、OpenAI、SQLite
10 - A2A Networkマルチエージェントの協調と推論を含む、Aspire における高度なエージェント間(A2A)通信およびオーケストレーションのパターンを実演します。Aspire、マルチエージェントシステム、A2A Protocol
11 - GitHub Modelsローカル実行時には GitHub Models を使用し、デプロイ時には Azure OpenAI に自動で切り替える、ローカル優先の AI 開発を紹介します。Aspire、GitHub Models、Azure OpenAI
12 - Azure Functionsセマンティック検索向けのオプションの Azure Functions ファサードと、ベクトル検索の代替デプロイ境界を提供します。Azure Functions、Aspire、Azure OpenAI
13 - Observability Assistant with Foundry Localローカル優先の可観測性アシスタントを使用して、ログ、トレース、インシデントを要約します。Aspire、OpenTelemetry、Foundry Local、Microsoft.Extensions.AI
14 - Product Discovery Copilot根拠に基づく説明を提供し、検索を自然言語による商品発見へと変えます。セマンティック検索、ベクトル検索、Microsoft.Extensions.AI
15 - Store Intelligence Report日次の店舗ビジネスおよび運用インテリジェンスレポートを生成します。アプリデータ、テレメトリ、AI による要約、レポート
16 - MCP Store Operations Toolsエージェントが使用できるよう、安全な店舗機能を MCP ツールとして公開します。MCP、Aspire、アプリ API、ツール呼び出し
17 - A2A Store Operations NetworkA2A を通じて、特化型エージェントが店舗アプリを中心に連携する方法を紹介します。A2A、Microsoft Agent Framework、ホスト型エージェント
18 - Blazor Agentic UI商品カタログカードと、人間の承認を経てカートを操作する機能を備えた、実験的なストリーミング型ショッピングアシスタントです。.NET 11 RC2、Blazor AI コンポーネント、AG-UI、Microsoft Agent Framework、Aspire
Scenario 18 を初めて利用しますか?まずは3 ステップのクイックスタートをお試しください。
その後、スクリーンショットと
ブログ記事からコードをたどるウォークスルーをご覧ください。

はじめに

前提条件
依存関係の基準

2026 年 10 月 14 日の更新では、14-MAFDevUI を除く既存の 17 シナリオを Aspire 13.6.1 と互換性のある最新の NuGet リリースに更新します。ルート SDK は安定版の .NET 10 のままです。Scenario 18 では、実験的な Blazor コンポーネントを使用するため、.NET 11 RC2 に上書きしています。すべてのシナリオに取り組むには、両方の SDK をインストールしてください。

この更新には、使用箇所に応じて Microsoft.Extensions.AI 10.11.0、OpenTelemetry 1.19、 Microsoft Agent Framework 1.24.0、MCP 2.2.0、A2A 1.0.0-preview3 が含まれます。必要な機能を提供する安定版の代替がない場合は、既存のプレリリース依存関係もプレリリースのままです。MCP SSE トランスポートと A2A テキストパーツは、パッケージのバージョンを変更するだけでなく、現行 API に移行しました。

Scenario 08 と 12 では、最新の EF Core 9 サービスリリースである 9.0.21 を意図的に維持しています。 EFCore.SqlServer.VectorSearch 9.0.0 プロバイダーが、同じ EF メジャーバージョンを必要とするためです。ほかの EF を使用するシナリオでは 10.0.13 を使用します。ローカルの dotnet-ef ツールマニフェストも、対応する EF メジャーバージョンに合わせています。SQL ベクトルプロバイダーをネイティブ EF 10 にアップグレードするには、EF 9 のリレーショナルアセンブリと EF 10 のテストを混在させるのではなく、ベクトルエンティティとクエリの別途移行が必要です。直接参照する PKCS は、脆弱性のある推移的バージョンではなく、パッチ適用済みの 10.0.13 を選択します。

MAFDevUI シナリオは、その後、Azure MCP の前提条件が用意されたことで、互換性のある依存関係と API の移行を完了しました。ビルドと 27 件のテストは、オフラインの DevUI/Responses 統合テストも含め、すべて成功しています。Azure CLI の ID と更新済みの保存済み API キーの両方を使ったライブ検証では、埋め込み、標準ツール、ストリーミングワークフロー、3 つすべてのチェックアウト階層が成功しました。ID モードのオーケストレーターの検証でも、フォールバックがないことを確認しました。 Foundry ホストのオプションのエージェントは未検証です。ほかの既存 17 シナリオのソリューションではビルドと既存のテスト(既存テスト 80 件)が成功し、Scenario 18 では 29 件のテストが成功しています。Scenario 18 は、SQL Server 2025、実際の Foundry 埋め込み、Responses 経由の gpt-6-luna を使ってローカルでも検証しました。ストリーミングによるカタログカード、カートの拒否/承認、商品仕様の欠落、既存データを使った再起動を確認しています。これらの確認によって、クラウドへのデプロイ可能性が保証されたり、ほかのすべてのシナリオが実際のモデルで検証されたりするわけではありません。

新しいシナリオ、依存関係の移行、セットアップスクリプト、既知のアップグレード上の制約については、CHANGELOG.md をご覧ください。

シナリオをローカルで起動する

各シナリオには独自の aspire.config.json があり、Aspire はリポジトリルートの選択を引き継ぐのではなく、そのシナリオの AppHost を選択します。

cd .\scenarios\18-BlazorAgenticUI
aspire start

フォアグラウンドセッションには aspire run を、選択したアプリを停止するには aspire stop を使用します。そのシナリオに最も近い global.json で指定された SDK をインストールしてください。安定版シナリオには .NET 10.0.402、Scenario 18 には .NET 11 RC2 が必要です。.NET 11 のインストールでは、安定版 .NET 10 の固定バージョンを満たしません。AppHost の選択によって SDK がインストールされたり、認証情報が設定されたりすることはありません。

サービスを起動せずに、各シナリオのローカルでの選択を検証するには、次を実行します。

pwsh .\scripts\Tests\Test-ScenarioAppHosts.ps1
インストール
  1. リポジトリをクローンします:

    git clone https://github.com/Azure-Samples/eShopLite.git
    
  2. 対象のシナリオディレクトリに移動します:

    cd eShopLite/scenarios/[scenario-folder]
    
  3. Azure にログインします:

    azd auth login
    
  4. すべてのリソースをプロビジョニングしてデプロイします:

    azd up
    

    azd の環境名(「eShopLite」など)を入力し、Azure アカウントのサブスクリプションと、gpt-4.1-mini や ADA-002 などの必要なモデルが利用可能な場所を選択するよう求められます。リージョンの例として、「eastus2」があります。

Microsoft Foundry モデルの共有とローカルシークレット

PowerShell 7 を使用し、az login でサインインしてください。新しいセットアップスクリプトは、AIServices アカウントを作成するか既存のものを再利用し、共通のチャットモデルと埋め込みモデルをデプロイしてから、Aspire CLI を使用してローカルの AppHost ユーザーシークレットを設定します。ご自身のサブスクリプション、リソースグループ、グローバルに一意なアカウント名、リージョンを指定してください。

pwsh .\scripts\Initialize-FoundryModels.ps1 `
  -SubscriptionId '<subscription-id>' `
  -ResourceGroupName 'rg-eshoplite' `
  -AccountName '<globally-unique-account-name>' `
  -Location 'eastus2' `
  -DryRun

リソースをプロビジョニングしてシークレットを書き込むには、-DryRun を削除してください。Azure の利用料金が発生する場合があります。-DryRun と -WhatIf は Azure への呼び出しを行わず、モデルが利用可能であることも確認しません。

既定のチャットモデルとデプロイ名は gpt-6-luna です。埋め込みには text-embedding-3-small を使用します。スクリプトはリージョンのカタログからモデルのバージョンを解決し、プロビジョニングの前に SKU のサポート状況とクォータを確認します。要求されたモデルが利用できない場合は、代替モデルへの自動切り替えを行わずに停止します。モデル/バージョン、デプロイ名、SKU、容量を変更するには、対応する -Chat* および -Embeddings* パラメーターを指定してください。 一致するデプロイは再利用し、競合するデプロイの上書きや、キー認証が無効になっているアカウントでのキー認証の有効化は行いません。

このスクリプトはローカル開発向けの共通モデル依存関係をプロビジョニングするものであり、各シナリオのインフラストラクチャすべてを対象とするものではありません。SQL/コンテナーは引き続き各 AppHost が管理します。Azure AI Search、リアルタイム音声、DeepSeek、GitHub Models、その他の特殊な依存関係には、それぞれのシナリオ固有のセットアップが引き続き必要です。azd up で使用されるモデル宣言は変更されません。

既存のデプロイのシークレットを構成する

シークレットの設定には、各 AppHost に最も近い global.json で選択された SDK が必要です。 スクリプトはキーを要求する前に SDK が利用可能か確認します。標準以外の SDK インストールを使用する場合は、-DotNetRoot "<SDK installation directory>" を渡してください。このオーバーライドは 子コマンドにのみ適用されます。Aspire の終了コード 7 は、Azure の認証問題ではなく、 SDK が見つからないことを示す場合があります。シナリオ 18 では、.NET 11 RC2 が特に必要です。

既存の scripts\Set-AzureOpenAISecrets.ps1 は、Azure リソースを作成せず、シークレットのみを構成します。 このスクリプトは src を含まないレイアウトも含め、すべての eShopAppHost.csproj を検出し、 将来のシナリオも自動的に対象にします。シナリオ 18(18-BlazorAgenticUI)には専用の AppHost と独立したユーザーシークレットストアがあり、自動的に対象に含まれます。AppHost のない ディレクトリはスキップ対象として報告されます。リポジトリのルートから実行してください:

pwsh .\scripts\Set-AzureOpenAISecrets.ps1

スクリプトは次の 4 つの値を対話形式で要求します:

プロンプトパラメーターセット
Azure OpenAI エンドポイントParameters:AzureOpenAIEndpoint
Azure OpenAI API キー(マスク表示)Parameters:AzureOpenAIApiKey
チャットデプロイ名(既定値 gpt-6-luna)Parameters:AzureOpenAIDeploymentName
埋め込みデプロイ名(既定値 text-embedding-3-small)Parameters:AzureOpenAIEmbeddingsDeploymentName

コマンドを実行せずにプレビューするには、-DryRun を使用します:

pwsh .\scripts\Set-AzureOpenAISecrets.ps1 -DryRun

プロンプトや API キーなしでプレビューするには:

pwsh .\scripts\Set-AzureOpenAISecrets.ps1 `
  -Endpoint 'https://<your-resource>.openai.azure.com/' -NonInteractive -DryRun

非対話型で書き込む場合は、さらに -ApiKey を SecureString として指定する必要があります。マスク表示されるプロンプトまたは 安全な認証情報ソースから指定してください。コマンド履歴にプレーンテキストのキーを含めないでください。 ローカルの .NET ユーザーシークレットは、本番環境用の暗号化されたシークレットストアではありません。

内部では、スクリプトは検出した各 AppHost に対して Aspire CLI(aspire secret set)を呼び出します。単一の値を手動で設定するには、同じコマンドを直接使用してください:

aspire secret set Parameters:AzureOpenAIEndpoint "https://<your-resource>.openai.azure.com/" \
  --apphost scenarios/01-SemanticSearch/src/eShopAppHost/eShopAppHost.csproj

注意: シナリオ固有の追加パラメーター(例:03-RealtimeAudio の Parameters:AzureOpenAIRealtimeDeploymentName、05-deepseek の Parameters:DeepSeekEndpoint、11-GitHubModels の Parameters:GitHubModelsToken)は、引き続き手動で設定する必要があります。詳細は各シナリオの README を参照してください。

クイックスタート
  1. 特定のシナリオフォルダー(例:scenarios/01-SemanticSearch/)に移動します
  2. そのシナリオフォルダー内の README の手順に従います
  3. 適切なホストプロジェクトフォルダーで dotnet run を実行して、ソリューションを起動します

デモ

デモを実行するには、次の手順に従ってください:

  1. 該当するシナリオフォルダーに移動します
  2. そのシナリオの README にある「ソリューションの実行」の手順に従います
  3. コンソール出力に表示された URL からアプリケーションにアクセスします

サンプルアプリケーション

キーワード検索を実行している eShopLite アプリケーションです:

キーワード検索を使用して検索を実行している eShopLite アプリケーション

セマンティック検索を実行している eShopLite アプリケーションです:

キーワード検索を使用して検索を実行している eShopLite アプリケーション

リアルタイムオーディオ機能を実行している eShopLite アプリケーションです:

リアルタイムオーディオ機能を実行している eShopLite アプリケーション

DeepSeek-R1 推論モデルを使用している eShopLite アプリケーションです:

DeepSeek-R1 推論モデルを使用している eShopLite アプリケーション

実行中のサービスを確認するための Aspire ダッシュボード:

実行中のサービスを確認するための Aspire ダッシュボード

デプロイされたすべてのサービスがある Azure リソースグループ:

デプロイされたすべてのサービスがある Azure リソースグループ

リソース

ヘルプ

AI アプリの構築でお困りの場合やご質問がある場合は、以下に参加してください。

Azure AI Foundry Discord

製品に関するフィードバックや、構築中にエラーが発生した場合は、以下をご覧ください。

Azure AI Foundry Developer Forum

コメント

MCP は初めてですか?

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

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