【ITニュース解説】🔌 Exposing Logic Apps MCP Server via Azure API Management (APIM)
2025年09月23日に「Dev.to」が公開したITニュース「🔌 Exposing Logic Apps MCP Server via Azure API Management (APIM)」について初心者にもわかりやすく解説しています。
ITニュース概要
Azure Logic Appsで作ったMCPサーバーを、API Management (APIM) で安全に外部公開する方法を解説。Logic Apps側で認証を処理し、APIMはリクエストを転送する仕組み。モダンなアプリやLLMが、このMCPサーバーをセキュアに利用できる。
ITニュース解説
現代のアプリケーション開発、特にAIや大規模言語モデル(LLM)を活用したシステム構築において、様々なサービスやツールが連携することは不可欠である。これらの連携を安全かつ効率的に行うためには、各サービスが提供する機能(API)を適切に公開し、管理する技術が求められる。この解説では、Azure Logic Appsで構築した「MCP(Model Context Protocol)サーバー」を、Azure API Management(APIM)というサービスを通じて、いかにして安全に公開し、利用可能にするかを説明する。
まず、MCPとは何かを理解することは、システムエンジニアを目指す上で重要である。MCPは、大規模言語モデルが外部の「ツール」と対話するための共通の規約、あるいはプロトコルのことを指す。LLMは自ら情報を検索したり複雑な計算をしたりする能力に限界があるため、特定のタスクを実行する外部のプログラムやサービス、これらを「ツール」と呼ぶが、それらに処理を依頼することがよくある。MCPは、LLMがこれらのツールに対して「こんな情報が欲しい」「この計算をしてほしい」といった要求をどのように伝え、ツールがその結果をどのように返すか、という「会話の作法」を定めている。これにより、LLMは特定のツールに依存せず、多様なツールと柔軟に連携できるようになるのである。
次に、Azure Logic Apps(Standard)は、クラウド上でビジネスプロセスやワークフローを直感的に構築できるサービスである。プログラミングの知識が少なくても、様々なシステムとの連携やデータの処理といった一連のタスクを自動化できるのが特徴である。この記事の文脈では、このLogic Appsを使って、MCPの規約に沿った「ツール」をワークフローとして作成する。例えば、「二つの数値を掛け算する」といった単純な機能を一つのツールとしてLogic Appsで実装するイメージである。
そして、Azure API Management(APIM)は、APIの公開と管理を一元的に行うためのサービスである。APIMを利用することで、APIのセキュリティ設定、リクエストの制限、データ形式の変換、監視、ドキュメント生成など、多岐にわたる管理機能を適用できる。Logic Appsで作成したMCPツールを直接インターネットに公開することも可能だが、APIMを介することで、エンタープライズレベルの強固なセキュリティ機能や、APIの利用状況を詳細に監視する機能、APIへのアクセスを一貫した方法で管理する機能などを容易に実現できる。これにより、複数の異なるAPIを一つの統一された窓口として提供し、開発者や利用者にとって使いやすく、かつ安全な環境を構築できるのである。
これらのサービスを組み合わせてLogic Appsで作成したMCPサーバーをAPIM経由で公開する手順は以下の通りである。
最初のステップとして、APIMでMCPサーバーを作成する。これはAPIMのポータル(管理画面)から「MCPサーバー」という項目を選択し、「既存のMCPサーバーを公開する」というオプションを選ぶことから始まる。これはAPIMが、Logic Appsで構築されたMCPサーバーの「代理」として機能するための最初の設定である。APIMは、外部からのリクエストをこの代理サーバーで受け付け、適切なバックエンド(ここではLogic Apps)に転送する役割を担う。
次に、バックエンドのLogic Apps MCPエンドポイントを設定する。APIMに対して、実際にMCPサービスを提供しているLogic AppsのURLを指定する。通常は https://<あなたのロジックアプリ名>.azurewebsites.net/api/mcp のような形式である。また、「Transport type」として「Streamable HTTP」がデフォルトで選択される。これは、データが途切れることなく連続的に流れるHTTP通信の形式であり、Logic Appsの動作と整合性がとれている。さらに、APIM上でこのMCPサーバーを識別するためのわかりやすい名前(Display name, Name, Base path)を設定する。これらの情報は、APIMの利用者がAPIを見つけやすくするために使われる。
三つ目のステップとして、ポリシー設定(パススルー)を行う。APIMの「ポリシー」とは、APIに対するリクエストがAPIMを通過する際に適用される一連のルールや処理のことである。今回のケースでは、認証や認可(誰がアクセスして良いか、何をできるか)の処理はLogic Appsのバックエンド側で実施されるため、APIMでは「パススルー」という最小限のポリシーを設定する。これは、APIMが受信したリクエストを、内容を変更したり追加の処理を加えたりせずに、そのままバックエンドのLogic Appsに転送するという意味である。これにより、Logic Appsから返されるストリーミング形式のHTTP応答も、APIMを介してスムーズに利用者に届く。途中でAPIMがデータをバッファリング(一時的に蓄積)することなく、リアルタイムに近い形で応答が流れるため、特に大量のデータや連続的な処理が必要な場合に有効である。
最後に、APIM経由でのMCPツールテストを行う。APIMを介してMCPサーバーが公開されたら、実際にその機能をテストする。このテストは、APIMが正しくリクエストを転送し、Logic Appsがセキュリティを適用した上で機能を提供していることを確認する重要なステップである。 もし認証情報(OAuth 2.0のBearerトークンなど)を含まずにリクエストを送ると、Logic Appsのバックエンドで認証が拒否され、「401 Unauthorized」(認証されていない)というエラーが返される。これは、APIMがリクエストをそのままLogic Appsに渡し、Logic Appsのセキュリティ層が正しく機能していることを示す。 次に、有効なOAuth 2.0 Bearerトークンをリクエストヘッダーに含めて呼び出す。APIMはこのトークンを忠実にLogic Appsの認証層(Easy Authレイヤー)に転送する。認証が成功すると、指定されたMCPツール(例えば「wf_arithmetic_mul」という掛け算のワークフロー)が実行される。例えば、リクエストで2と3の掛け算を依頼すると、Logic Appsがこれを処理し、「結果は6である」という応答を返す。この一連の成功体験は、APIMがリクエストと認証トークンを適切に転送し、Logic AppsのMCPサーバーが認証を強制しつつワークフローを正確に実行していることを明確に示している。
このように、Azure Logic Appsで柔軟なMCPツールを構築し、Azure API Managementを通じて公開することで、現代のアプリケーションやLLMを活用したエージェントが、安全で管理された方法でこれらのツールを利用できるようになる。APIMは、セキュリティ、利用状況の監視、アクセス制御など、エンタープライズレベルで必要とされるAPI管理の機能を提供し、Logic Appsで作成したサービスをより信頼性が高く、運用しやすい形で提供することを可能にする。システムエンジニアを目指す上で、このようなクラウドサービス連携とAPI管理の知識は、多様なシステムの構築と運用において非常に重要となるのである。