<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azure SDK | The .NET Blog</title><link>https://thedotnetblog.com/ja/tags/azure-sdk/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ja</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ja/tags/azure-sdk/index.xml" rel="self" type="application/rss+xml"/><item><title>苦しんでいる依存関係を叩き続けるのをやめよう：Azure Functions + Service Bus のリトライパターン</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</guid><description>指数バックオフとサーキットブレーカーパターンが、Service Bus でトリガーされる Azure Functions でネイティブサポートされるようになりました — どのように機能するか、なぜ両方が必要なのかを説明します。</description><content:encoded>&lt;p&gt;Functions アプリで回復可能な障害がサービス停止に変わる経緯はこうです：依存関係がタイムアウトし始め、すべての Functions インスタンスが即座に無限にリトライし、依存関係は数百の同時失敗リクエストで叩かれ、一時的な問題として始まったものがシステム全体のバックプレッシャーイベントになります。&lt;/p&gt;
&lt;p&gt;この話はご存知でしょう。Azure Functions は素早くスケールアウトします — それが目的です。しかし、「素早くスケールアウト」と「即座にリトライ」が合わさると、障害を劇的に悪化させる可能性があります。&lt;/p&gt;
&lt;p&gt;2つのパターンが役立ちます。指数バックオフとサーキットブレーカー。両方が、Service Bus でトリガーされる Azure Functions でネイティブサポートされるようになりました。&lt;/p&gt;
&lt;h2 id="2つのパターン異なる役割"&gt;2つのパターン、異なる役割&lt;/h2&gt;
&lt;p&gt;これらのパターンは補完的で、代替ではありません：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;指数バックオフ&lt;/strong&gt;は答えます：&lt;em&gt;いつリトライすればよいか？&lt;/em&gt;
依存関係が回復する時間を確保するためにリトライ間の遅延を増加させます。メッセージレベルで、リトライタイミングを調整します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;サーキットブレーカー&lt;/strong&gt;は答えます：&lt;em&gt;今この依存関係を呼び出すべきか？&lt;/em&gt;
障害のしきい値に達した後、不健全な依存関係への繰り返し呼び出しを停止し、クールダウン期間後に慎重に調査します。システムレベルで、リトライストームを防ぎます。&lt;/p&gt;
&lt;p&gt;両方が必要です。バックオフはメッセージごとのリトライペーシングを処理します。サーキットブレーカーは集合的な健全性の決定を処理します。&lt;/p&gt;
&lt;h2 id="service-bus-に特に重要な理由"&gt;Service Bus に特に重要な理由&lt;/h2&gt;
&lt;p&gt;キューはバーストトラフィックを吸収します、これは良いことです。しかし制御がなければ、ワーカーが失敗する呼び出しに計算リソースを無駄にし続ける間、キューが成長する可能性があります。ポイズンメッセージは、あるべき時間より長くアクティブのままです。ホットパーティションや下流の容量制限がカスケード問題を生み出します。&lt;/p&gt;
&lt;p&gt;より安全な設計：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一時的な障害を検出する&lt;/li&gt;
&lt;li&gt;指数バックオフで次の試行を遅らせる&lt;/li&gt;
&lt;li&gt;障害しきい値に達したら依存関係への呼び出しを停止する（サーキットオープン）&lt;/li&gt;
&lt;li&gt;クールダウン期間後に慎重に再開する（サーキット調査）&lt;/li&gt;
&lt;li&gt;回復不能な作業を dead-letter または隔離パスに移動する&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="ネイティブサポートの外観"&gt;ネイティブサポートの外観&lt;/h2&gt;
&lt;p&gt;新しいサポートは既存の Azure Functions ホストモデルと統合されます — 追加ライブラリなし、カスタム実装なし。設定は &lt;code&gt;host.json&lt;/code&gt; に入ります：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;serviceBus&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;messageHandlerOptions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;retryPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;exponentialBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;minBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:00:02&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:05:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;サーキットブレーカーの設定は、不健全な依存関係が回復中に叩かれないよう、障害のしきい値とリセット間隔を設定します。&lt;/p&gt;
&lt;h2 id="対応言語"&gt;対応言語&lt;/h2&gt;
&lt;p&gt;これは .NET だけではありません。この機能は dotnet、JavaScript、TypeScript、Python をカバーします — Azure Functions の Service Bus トリガーでサポートされる言語の完全セットです。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;リトライパターンを設定するのは、下流の停止が発生して Functions が問題をより悪化させてしまう最初の事態が起きるまで、退屈に感じるものです。これを積極的に設定するのは安価です。インシデント中に改修するのはそうではありません。&lt;/p&gt;
&lt;p&gt;元の投稿：&lt;a href="https://devblogs.microsoft.com/azure-sdk/exponential-backoff-circuit-breaker-azure-functions/"&gt;Exponential backoff and circuit breaker for Service Bus-triggered Azure Functions&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server が .mcpb になった — ランタイムなしでインストール</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server が MCP Bundle (.mcpb) として利用可能になりました — ダウンロードして Claude Desktop にドラッグするだけ。Node.js、Python、.NET 不要。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元の記事は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MCP サーバーのセットアップで面倒だったこと、ご存知ですか？ランタイムが必要でした。npm 版には Node.js、pip/uvx には Python、dotnet 版には .NET SDK。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server がその問題を解決しました&lt;/a&gt;。&lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — として利用可能になり、セットアップはドラッグ＆ドロップです。&lt;/p&gt;
&lt;h2 id="mcp-bundle-とは"&gt;MCP Bundle とは？&lt;/h2&gt;
&lt;p&gt;VS Code 拡張機能（&lt;code&gt;.vsix&lt;/code&gt;）やブラウザ拡張機能（&lt;code&gt;.crx&lt;/code&gt;）のようなものですが、MCP サーバー用です。&lt;code&gt;.mcpb&lt;/code&gt; ファイルはサーバーバイナリとすべての依存関係を含む自己完結型の ZIP アーカイブです。&lt;/p&gt;
&lt;h2 id="インストール方法"&gt;インストール方法&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. プラットフォーム用バンドルをダウンロード&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;GitHub Releases ページ&lt;/a&gt; で、OS とアーキテクチャに合った &lt;code&gt;.mcpb&lt;/code&gt; ファイルをダウンロードします。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Claude Desktop にインストール&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最も簡単な方法：拡張機能の設定ページ（&lt;code&gt;☰ → ファイル → 設定 → 拡張機能&lt;/code&gt;）を開きながら、&lt;code&gt;.mcpb&lt;/code&gt; ファイルを Claude Desktop ウィンドウにドラッグ＆ドロップします。サーバーの詳細を確認し、インストールをクリックして確認します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Azure で認証&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上です。Azure MCP Server は既存の Azure 認証情報を使用します。&lt;/p&gt;
&lt;h2 id="できること"&gt;できること&lt;/h2&gt;
&lt;p&gt;AI クライアントから直接 100 以上の Azure サービスツールにアクセス：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cosmos DB、Storage、Key Vault、App Service、Foundry のクエリと管理&lt;/li&gt;
&lt;li&gt;任意のタスクの &lt;code&gt;az&lt;/code&gt; CLI コマンド生成&lt;/li&gt;
&lt;li&gt;Bicep・Terraform テンプレートの作成&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="はじめるには"&gt;はじめるには&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ダウンロード&lt;/strong&gt;: &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-"&gt;GitHub Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;リポジトリ&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ドキュメント&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;完全な記事&lt;/a&gt;もご確認ください。&lt;/p&gt;</content:encoded></item><item><title>Azure SDK 2026年4月: AI Foundry 2.0と.NET開発者が知るべきこと</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/</guid><description>2026年4月のAzure SDKリリースは、重要な破壊的変更を伴うAzure.AI.Projects 2.0.0安定版、Cosmos DBの重大なセキュリティ修正、および.NET向けの新しいProvisioningライブラリを提供します。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/posts/emiliano-montesdeoca/azure-sdk-april-2026-ai-foundry-2-stable/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;月次SDKリリースはよく見落とされがちですが、今回は特に注意すべき点があります。&lt;/p&gt;
&lt;h2 id="azureaiprojects-200--意味のある破壊的変更"&gt;Azure.AI.Projects 2.0.0 — 意味のある破壊的変更&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Azure.AI.Projects&lt;/code&gt; NuGetパッケージが安定版2.0.0に到達。名前空間の分割、型の名前変更、ブール値プロパティの&lt;code&gt;Is*&lt;/code&gt;規則の統一。&lt;/p&gt;
&lt;h2 id="cosmos-db-java-重大なセキュリティ修正rce"&gt;Cosmos DB Java: 重大なセキュリティ修正（RCE）&lt;/h2&gt;
&lt;p&gt;バージョン4.79.0で**リモートコード実行脆弱性（CWE-502）**の重大な修正。Azure Cosmos DBを使用しているJavaサービスがあれば直ちに更新してください。&lt;/p&gt;
&lt;h2 id="net向け新しいprovisioningライブラリ"&gt;.NET向け新しいProvisioningライブラリ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nuget.org/packages/Azure.Provisioning.Network/1.0.0"&gt;Azure.Provisioning.Network 1.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nuget.org/packages/Azure.Provisioning.PrivateDns/1.0.0"&gt;Azure.Provisioning.PrivateDns 1.0.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;オリジナルポスト: &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-april-2026/"&gt;Azure SDK Release (April 2026)&lt;/a&gt;。&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server 2.0 がリリース — セルフホスト型エージェンティック クラウド オートメーションがここに</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</guid><description>Azure MCP Server 2.0 は、セルフホスト型のリモート展開、57 の Azure サービス全体で 276 のツール、エンタープライズグレードのセキュリティを備え、安定版となりました。エージェンティック ワークフローを構築する .NET 開発者にとって重要な点をここに紹介します。</description><content:encoded>&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;最近 MCP と Azure で何かを構築している人なら、ローカル環境での体験がうまく機能していることはご存じでしょう。MCP サーバーを接続して、AI エージェントが Azure リソースと通信できるようにして、先へ進む。しかし、その設定をチーム全体で共有する必要が出た瞬間？そこが複雑になっていました。&lt;/p&gt;
&lt;p&gt;もうそんなことはありません。Azure MCP Server が &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;2.0 安定版をリリース&lt;/a&gt;し、見出し機能はまさにエンタープライズ チームが要望していたものです：&lt;strong&gt;セルフホスト型リモート MCP サーバー サポート&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="azure-mcp-server-とは"&gt;Azure MCP Server とは？&lt;/h2&gt;
&lt;p&gt;簡単なおさらいです。Azure MCP Server は &lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro"&gt;Model Context Protocol&lt;/a&gt; 仕様を実装し、Azure 機能を構造化された検出可能なツールとして公開します。AI エージェントがこれらを呼び出せます。これをエージェントと Azure 間の標準化された橋と考えてください — プロビジョニング、デプロイメント、監視、診断、すべて 1 つの一貫したインターフェース経由で。&lt;/p&gt;
&lt;p&gt;数字を見ればわかります：&lt;strong&gt;57 の Azure サービス全体で 276 の MCP ツール&lt;/strong&gt;。これは本格的なカバレッジです。&lt;/p&gt;
&lt;h2 id="大きな変化セルフホスト型リモート展開"&gt;大きな変化：セルフホスト型リモート展開&lt;/h2&gt;
&lt;p&gt;ここが重要な点です。ローカルでマシン上で MCP を実行することは開発と実験には問題ありませんが、実際のチーム シナリオでは以下が必要です：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;開発者と内部エージェント システム向けの共有アクセス&lt;/li&gt;
&lt;li&gt;集中管理構成（テナント コンテキスト、サブスクリプション デフォルト、テレメトリ）&lt;/li&gt;
&lt;li&gt;エンタープライズ ネットワークとポリシー境界&lt;/li&gt;
&lt;li&gt;CI/CD パイプラインへの統合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure MCP Server 2.0 はこれらすべてに対応しています。HTTP ベースのトランスポート、適切な認証、一貫した統治を備えた集中管理内部サービスとしてデプロイできます。&lt;/p&gt;
&lt;p&gt;認証には 2 つの確実なオプションがあります：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;マネージド ID&lt;/strong&gt; — &lt;a href="https://aka.ms/azmcp/self-host/foundry"&gt;Microsoft Foundry&lt;/a&gt; と並行して実行している場合&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-Behalf-Of（OBO）フロー&lt;/strong&gt; — サインインしたユーザーのコンテキストを使用して Azure API を呼び出す OpenID Connect 委譲&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この OBO フロー は .NET 開発者にとって特に興味深いものです。これは、エージェンティック ワークフローが過度な特権を持つサービス アカウントではなく、ユーザーの実際のアクセス許可で動作できることを意味します。最小権限の原則が組み込まれています。&lt;/p&gt;
&lt;h2 id="セキュリティの強化"&gt;セキュリティの強化&lt;/h2&gt;
&lt;p&gt;これは単なる機能リリースではなく、セキュリティ リリースでもあります。2.0 リリースは以下を追加します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より強いエンドポイント検証&lt;/li&gt;
&lt;li&gt;クエリ指向ツールのインジェクション パターンに対する保護&lt;/li&gt;
&lt;li&gt;開発環境用のより厳密な分離制御&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MCP を共有サービスとして公開する場合、これらのセーフガードは重要です。本当に重要です。&lt;/p&gt;
&lt;h2 id="どこで使用できますか"&gt;どこで使用できますか？&lt;/h2&gt;
&lt;p&gt;クライアント互換性の状況は幅広いです。Azure MCP Server 2.0 は以下で動作します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IDE&lt;/strong&gt;：VS Code、Visual Studio、IntelliJ、Eclipse、Cursor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLI エージェント&lt;/strong&gt;：GitHub Copilot CLI、Claude Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;スタンドアロン&lt;/strong&gt;：シンプルなセットアップ用のローカル サーバー&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;セルフホスト型リモート&lt;/strong&gt;：2.0 の新しいスター&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さらに、Azure US Government と 21Vianet が運用する Azure のソブリン クラウド サポートもあります。これは規制対象のデプロイメントに重要です。&lt;/p&gt;
&lt;h2 id="net-開発者にとってこれが重要な理由"&gt;.NET 開発者にとってこれが重要な理由&lt;/h2&gt;
&lt;p&gt;.NET でエージェンティック アプリケーションを構築している場合 — Semantic Kernel、Microsoft Agent Framework、または独自のオーケストレーションのいずれであっても — Azure MCP Server 2.0 は、エージェントが Azure インフラストラクチャと対話するための本番環境対応の方法を提供します。カスタム REST ラッパーは不要です。サービス固有の統合パターンは不要です。MCP があるだけです。&lt;/p&gt;
&lt;p&gt;数日前にドロップされた &lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;MCP Apps 向けの Fluent API&lt;/a&gt; と組み合わせると、.NET MCP エコシステムは急速に成熟しています。&lt;/p&gt;
&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;パスを選択してください：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp"&gt;GitHub リポジトリ&lt;/a&gt;&lt;/strong&gt; — ソース コード、ドキュメント、すべて&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/docker"&gt;Docker イメージ&lt;/a&gt;&lt;/strong&gt; — コンテナ化されたデプロイメント&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/vscode"&gt;VS Code 拡張機能&lt;/a&gt;&lt;/strong&gt; — IDE 統合&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/self-host"&gt;セルフホスティング ガイド&lt;/a&gt;&lt;/strong&gt; — 2.0 の旗艦機能&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Azure MCP Server 2.0 は、デモでは派手に見えないけれど、実際には万能を変えるようなインフラストラクチャ アップグレードです。適切な認証、セキュリティ強化、ソブリン クラウド サポートを備えたセルフホスト型リモート MCP は、Azure でエージェンティック ワークフローを構築している実際のチームに MCP が対応していることを示しています。「エンタープライズ対応」シグナルを待っていたなら — これです。&lt;/p&gt;</content:encoded></item><item><title>MCP AppsにFluent APIが登場 — .NETでリッチなAIツールUIを3ステップで構築</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/</guid><description>Azure Functions上のMCP Apps向け新しいFluent設定APIにより、あらゆる.NET MCPツールをビュー、パーミッション、CSPポリシーを備えた完全なアプリに、わずか数行のコードで変換できます。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/mcp-fluent-api-azure-functions-dotnet/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MCPツールはAIエージェントに機能を与えるのに最適です。でも、ツールがユーザーに何かを表示する必要がある場合はどうでしょう？ ダッシュボード、フォーム、インタラクティブなビジュアライゼーション。そこで登場するのがMCP Appsで、構築がずっと簡単になりました。&lt;/p&gt;
&lt;p&gt;Azure SDKチームのLilian Kasemが、.NET Azure Functions上のMCP Apps向け&lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;新しいFluent設定APIを発表&lt;/a&gt;しました。なぜ最初からこんなにシンプルじゃなかったのかと思うような、開発者体験の改善です。&lt;/p&gt;
&lt;h2 id="mcp-appsとは"&gt;MCP Appsとは？&lt;/h2&gt;
&lt;p&gt;MCP AppsはModel Context Protocolを拡張し、ツールが独自のUIビュー、静的アセット、セキュリティコントロールを持てるようにします。テキストを返すだけでなく、MCPツールは完全なHTMLエクスペリエンスをレンダリングできます — インタラクティブなダッシュボード、データビジュアライゼーション、設定フォーム — すべてAIエージェントから呼び出し可能で、MCPクライアントを通じてユーザーに表示されます。&lt;/p&gt;
&lt;p&gt;問題は、これらを手動で配線するにはMCP仕様を深く理解する必要があったことです：&lt;code&gt;ui://&lt;/code&gt; URI、特殊なMIMEタイプ、ツールとリソース間のメタデータ調整。難しくはないけど、面倒でした。&lt;/p&gt;
&lt;h2 id="fluent-apiの3ステップ"&gt;Fluent APIの3ステップ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;ステップ1：関数を定義する。&lt;/strong&gt; 標準的なAzure Functions MCPツール：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;[Function(nameof(HelloApp))]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;HelloApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt; [McpToolTrigger(&amp;#34;HelloApp&amp;#34;, &amp;#34;A simple MCP App that says hello.&amp;#34;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ToolInvocationContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Hello from app&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ステップ2：MCP Appに昇格させる。&lt;/strong&gt; プログラムのスタートアップで：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConfigureMcpTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;HelloApp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsMcpApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;assets/hello-app.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Hello App&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithPermissions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpAppPermissions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClipboardWrite&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="n"&gt;McpAppPermissions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ClipboardRead&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithCsp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csp&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;csp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AllowBaseUri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://www.microsoft.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConnectTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://www.microsoft.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;ステップ3：HTMLビューを追加する。&lt;/strong&gt; 必要なUIで&lt;code&gt;assets/hello-app.html&lt;/code&gt;を作成します。&lt;/p&gt;
&lt;p&gt;以上です。Fluent APIがMCPプロトコルの配管をすべて処理します — 合成リソース関数の生成、正しいMIMEタイプの設定、ツールとビューを接続するメタデータの注入。&lt;/p&gt;
&lt;h2 id="apiの設計が秀逸"&gt;APIの設計が秀逸&lt;/h2&gt;
&lt;p&gt;特に気に入っている点がいくつかあります：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ビューソースが柔軟。&lt;/strong&gt; ディスク上のファイルからHTMLを提供したり、自己完結型デプロイのためにリソースをアセンブリに直接埋め込んだりできます：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpViewSource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FromFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;assets/my-view.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpViewSource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FromEmbeddedResource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;MyApp.Resources.view.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;CSPがコンポーザブル。&lt;/strong&gt; 最小権限の原則に従い、アプリが必要とするオリジンを明示的に許可します。&lt;code&gt;WithCsp&lt;/code&gt;を複数回呼び出すとオリジンが蓄積されます：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithCsp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;csp&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;csp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConnectTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://api.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LoadResourcesFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://cdn.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AllowFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://youtube.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;可視性制御。&lt;/strong&gt; ツールをLLMのみ、ホストUIのみ、または両方に表示できます。UIのみをレンダリングし、モデルから呼び出されるべきでないツールが欲しい場合は簡単：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithVisibility&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;McpVisibility&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// UI-only, hidden from the model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="始め方"&gt;始め方&lt;/h2&gt;
&lt;p&gt;プレビューパッケージを追加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Mcp --version 1.5.0-preview.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;すでにAzure FunctionsでMCPツールを構築している場合、これはパッケージの更新だけです。コンセプトが初めての方は&lt;a href="https://learn.microsoft.com/azure/azure-functions/scenario-mcp-apps?tabs=bash%2Clinux&amp;amp;pivots=programming-language-csharp"&gt;MCP Appsクイックスタート&lt;/a&gt;が最適な出発点です。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;MCP AppsはAIツーリング分野で最もエキサイティングな開発の一つです — 物事を&lt;em&gt;行う&lt;/em&gt;だけでなく、ユーザーに物事を&lt;em&gt;見せる&lt;/em&gt;ことができるツール。Fluent APIはプロトコルの複雑さを取り除き、重要なことに集中させてくれます：ツールのロジックとそのUI。&lt;/p&gt;
&lt;p&gt;完全なAPIリファレンスと例については&lt;a href="https://devblogs.microsoft.com/azure-sdk/mcp-as-easy-as-1-2-3-introducing-the-fluent-api-for-mcp-apps/"&gt;完全な記事&lt;/a&gt;をお読みください。&lt;/p&gt;</content:encoded></item></channel></rss>