【Azure API Management】コーディング無しで既存APIサーバーを簡単にMCPサーバーにする方法!

こんにちは、MS開発部の渋谷です。
本記事をご覧いただいた皆様は生成AIを活用したアプリケーション開発に取り組まれている方が多いと思います。毎日のようにアップデートがあり、特にオープンソースのプロジェクトを追いかけ続けるのは至難の業です。
生成AIエコノミーをより便利に拡張していくための技術は様々ありますが、特に最近企業でのユースケースで話題なのがMCPかと思います。XやYouTubeなどのメディアでも紹介されており、目にされたことがある方も多いのではないのでしょうか。
本記事では「なんとなくMCPの概念は分かってるけど、どうやって実現したらいいのか分からない」といった方向けに、マネージドサービスを使って簡単にMCPサーバーを実現する方法を紹介します。
MCPとは?
MCPはModel Context Protocolの略称です。MCPは、大規模言語モデル(LLM)の文脈情報を外部で効率的に管理・提供するための新しい技術的な枠組みです。
従来のLLMは「コンテキストウィンドウ」と呼ばれる制限内でしか情報を扱えませんでしたが、MCPはこの制約を超え、対話履歴や外部知識、ユーザー情報などを動的にモデルに提供することで、応答の一貫性や精度を向上させます。
MCPは「AI界のUSB-C」とも称され、異なるツールやデータソースとAIを標準化された方法で接続できるようにするオープンプロトコルです。これにより、開発者は複雑なAPI統合を行わずに、さまざまな外部サービスとAIを連携させることが可能になります。
ユーザーからの問い合わせに対してLLMが確からしい回答を持っていなかった場合、外部のデータソースに必要な情報が無いかを探しにいく必要がありますが、その際にデータをLLMに渡す側がMCPに準拠しているとシームレスにデータ連携することができます。
MCPサーバーを自社で管理しつづけるのは大変
MCPサーバーが今後のAI時代において重要であることを非常に多くの人々が感じている一方で、これまで管理してきた既存のAPIサーバーをMCPサーバーに変えて運用をし続けることは大変な作業です。
特に企業に勤める方であれば、以下のような懸念が残ります。
- 社内でどの部署のどの役割の誰が管理をするのか
- 各APIの管轄が異なる場合、MCP化は誰がリードするのか
- メンテナンスはどのようにするのか
- ロールバックは簡単にできるのか
- 認証認可の実装はどうするのか
単純にMCPという技術を学べばよいだけでなく、組織としての運用体系・手法まで考慮した上で取り組みを進める必要があります。
上記のような面倒な点を楽にしてくれる仕組みが、Azure API Managementには用意されています。
Azure API Managementを使ってMCPサーバーとしてREST APIを公開する
Azure API ManagementにインポートされているAPIは、MCPの皮を被せてMCPサーバーとして公開することができます。
この機能を活用することにより、以下のような恩恵を受けることができます。
- 既存のAPIをインポートするだけでMCPサーバーとして簡単に公開可能
- API Managementで提供されている認証・レート制限・ログ収集などをそのまま利用可能
- 特定の部署・特定の社員にしかアクセスさせないなどのアクセス制御を簡単に設定可能
- 1分あたりのリクエスト数上限を設けるなど、利用過多を防ぐことが可能
- どの部署・どの社員がどれくらい使用しているかといったログを収集可能
単なるAPI Gatewayではなく、企業用途でのAPIおよびMCPの管理に必要な機能を全てマネージドサービスとして提供しているAzure API Managementを上手く活用することで、効率的に生成AIネイティブな環境を構築することができます。
実際に試してみた
それでは早速試してみましょう。
Azureポータルにアクセスし「リソースの作成」から「Azure API Management」を作成します。(※本記事公開時点では、クラシックBasic、Standard、Premiumレベルでのみ本機能が提供されています。デプロイ時に価格レベルを必ず確認してください)

デプロイが完了したら「サービスの更新(プレビュー)」から「編集」をクリックします。

「AIゲートウェイ先行サービス」を選択し「保存」します。

保存が完了したらブラウザの別のタブで「https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp」にアクセスします。通常のAzureポータルのリンクからはMCPの機能を試すことができないのでご注意ください。このリンクから再度先ほど作成したAPI Managementリソースにアクセスをすると「MCP Servers」というメニューを確認することができます。

「APIs」メニューから「+Add API」の「OpenAPI」を選択します。

今回はサンプルのAPIとしてpetstore APIを活用します。「OpenAI specification」に「https://petstore3.swagger.io/api/v3/openapi.json」と入力をし、「API URL suffix」には「petstore」と入力し「Create」します。

MCPサーバーとして公開する前にこのAPIの動作を確認してみます。インポートしたAPIの「Finds Pets by status.」という操作を選択して上部の「Test」タブを選択します。200 OKが返ってくれば問題ありません。

APIの「Settings」タブに移動して、APIのサブスクリプションキーを不要とする設定を行います。「Subscription required」のチェックボックスを外して、APIのサブスクリプション キーを不要にします。

「MCP Servers」メニューから「+Create new MCP Server」を選択します。

先ほど設定したAPIと任意の操作を選択し「Create」します。(※ここでエラーが出る場合があります。エラーが出る場合にはしばらく時間をおいて再度試すとエラーが解消されます。)

作成が完了すると以下のようにMCPサーバーのエンドポイントURLが発行されます。

さいごに、正しくMCPサーバーが呼び出せるか検証をしてみます。今回はVisual Studio CodeとGitHub Copilot Chatを使います。
VS Codeを起動し、「Ctrl + Shift +P」から「MCP: Add Server…」を選択します。サーバータイプは「HTML」を選択し、Azureポータルに表示されているMCPサーバーのエンドポイントURLを入力します。入力が完了すると、VS Codeに記録されているMCPサーバーリストにAzure API Managementで作成したMCPサーバーが追加されます。

GitHub Copilot Chatを起動し「Agent」モードに切り替え「ツール」を確認すると、先ほど追加したMCPサーバーが表示されます。

任意のプロンプトをGitHub Copilot Chatに入力をしてみるとMCPサーバーを経由して回答が返ってくることが確認できます。

さいごに
本記事ではAzure API Managementを使用して既存APIをMCPサーバーとして公開する手法について紹介をしました。現時点ではプレビューのため不安定な部分もありますが、クリック操作のみの作業で実装できるのは素晴らしいと思います。自社でサーバーを立てて実装することももちろん可能ですが、マネージドサービスを使った方が楽に早く実装できるので便利ですね。
本記事作成時点ではプレビュー機能となっておりますので、本番運用におけるご利用にはお気を付けください。また、最新情報は公式ドキュメントをご参照ください。
皆様の業務に少しでもお役に立つ情報をお届けできていれば幸いです。
以上、最後までご愛読いただき
ありがとうございました。
お問い合わせは、
以下のフォームへご連絡ください。