Slide 1

Slide 1 text

Azure × MCP 入門 Ryosuke HYAKUTA (百田 涼佑)

Slide 2

Slide 2 text

百田 涼佑(Ryosuke HYAKUTA) 仕事・好きな技術 ◼ アプリ・システム、自動化など幅広く技術支援 ◼ Azure Monitor の製品サポート チーム出身なの で監視系も大好きです ◼ 学生時代から DevOps 好きなので CI/CD と IaC 組んでる時が落ち着きます 趣味 ◼ 1人外飲み・ジム・個人開発・麻雀・カメラ その他 ◼ Microsoft 2年目 ◼ グッドデザイン賞受賞 Microsoft Japan Co., Ltd. Cloud Solution Architect (App Innovation)

Slide 3

Slide 3 text

ゴール  MCP の概要を理解する  MS製品/Azure 文脈での MCP を学ぶ ⇒ MCP を理解し、Azure 上で展開するイメージを掴む

Slide 4

Slide 4 text

ざっくりアジェンダ  概要  MS / Azure での MCP  デモ  開発方法  認証プラクティス  まとめ

Slide 5

Slide 5 text

MCP 概要

Slide 6

Slide 6 text

MCP とは何か?  LLM と外部データ / ツールを 繋ぐオープン標準プロトコル  “AI 業界の USB-C” と呼ばれて いる  Function Calling と違い、アク ションを外部に持ち出せる Introduction - Model Context Protocol LLM が外部と簡単に繋がるための「共通の接続口」

Slide 7

Slide 7 text

なぜ MCP が生まれたのか?  大規模モデルの外部アクセス需要の高まり  個別実装コストと運用負荷の増大  セキュアかつ標準の双方向通信の必要性 M × N から M + N へ 例:M=30, N=50 の場合 Before MCP M × N = 30 × 50 = 1500 After MCP M + N = 30 + 50 = 80 Model Context Protocol (MCP) an overview LLM と外部の統合を…

Slide 8

Slide 8 text

MCP の基本アーキテクチャ Model Context Protocol (MCP) an overview

Slide 9

Slide 9 text

MCP の基本アーキテクチャ

Slide 10

Slide 10 text

MCP の基本アーキテクチャ Tools:(モデル制御) • LLM が特定のアクションを実行する ために呼び出すことが出来る関数 (ツール) • 例:天気 API Resources:(アプリ制御) • LLM がアクセスできるデータ ソース • REST API の GET エンドポイントのよ うなもの • 例:クラウド ストレージのファイル Prompts:(ユーザー制御) • 事前に定義されたプロンプト テンプ レート • ユーザーが推論を指示する前に選択

Slide 11

Slide 11 text

MCP の基本アーキテクチャ Tools:(モデル制御) • LLM が特定のアクションを実行する ために呼び出すことが出来る関数 (ツール) • 例:天気 API Resources:(アプリ制御) • LLM がアクセスできるデータ ソース • REST API の GET エンドポイントのよ うなもの • 例:クラウド ストレージのファイル Prompts:(ユーザー制御) • 事前に定義されたプロンプト テンプ レート • ユーザーが推論を指示する前に選択 ※ VS Code 上の GitHub Copilot エージェント モードでは現在、「Tools」のみが利用可能(参考)

Slide 12

Slide 12 text

MCP の基本アーキテクチャ stdio: • 標準入出力を使用してメッセージを 送受信 • ローカル MCP サーバー用途 SSE (Server-Sent Event): • 最初にクライアント⇒サーバーに HTTP で接続を確立 • サーバー⇒クライアントのメッセー ジはストリーミングでイベント通信 Streamable HTTP (NEW!): • VS Code v1.100 よりサポート • SSE の問題(サーバー負荷、常時接 続)を解決 • プレーンな HTTP サーバーとして実 装可能 • オプションで SSE も使用可能 Transports - Model Context Protocol Use MCP servers in VS Code (Preview) GitHub Copilot in VS Code April release (v1.100) - GitHub Changelog

Slide 13

Slide 13 text

MCP サーバーの見つけ方  MCP 公式リポジトリ にて企業や個人が開発した MCP サーバーが列 挙されている modelcontextprotocol/servers: Model Context Protocol Servers

Slide 14

Slide 14 text

MCP デモ ~インストールから使用まで~

Slide 15

Slide 15 text

GitHub Copilot エージェント モード  MCP クライアントとしてエージェント モードを活用 エージェント モードを選択 インストールされている MCP サーバーとツール一覧が表示 使用したくないツールの チェックを外すことが可能 インストールされている MCP サーバーとツール一覧が表示 使用したくないツールの チェックを外すことが可能 Use MCP servers in VS Code (Preview)

Slide 16

Slide 16 text

GitHub Copilot エージェント モード  「#ツール名」で使用したいツールを明示的に指定することも可能

Slide 17

Slide 17 text

MS 製品 / Azure における MCP

Slide 18

Slide 18 text

MCP クライアント・サーバー一覧  クライアント  VS Code / GitHub Copilot エージェント モード  サーバー  [公式 (Azure)] Azure MCP Server: https://github.com/Azure/azure-mcp  [公式 (MCP)] GitHub: https://github.com/github/github-mcp-server  [公式 (Microsft)] Playwright: https://github.com/microsoft/playwright-mcp  [コミュニティ] Azure ADX: https://github.com/pab1it0/adx-mcp-server  [コミュニティ] Azure DevOps: https://github.com/Vortiago/mcp-azure-devops  [コミュニティ] Microsoft Teams: https://github.com/InditexTech/mcp-teams-server  [コミュニティ] OneNote: https://github.com/rajvirtual/MCP-Servers/tree/master/onenote

Slide 19

Slide 19 text

Playwright MCP Playwright を使用したブラウザ操作自動化機能を持つ MCP サーバー であり、以下のようなユース ケースを持つ:  Web ページの操作  クリック、ホバー、ドラッグ、スクリーンショット、タブ作成・選択、ナビゲーション、PDF 保存、ファイル アップロード  ブラウザのサイズ変更、閉じる  キーボード操作  データ抽出  コンソール メッセージ取得、ネットワーク リクエスト情報取得、  その他ブラウザを通じた様々な目的

Slide 20

Slide 20 text

Azure MCP サーバー Azure サービス① できること AI Search • AI Search サービスのリスト • インデックスのリストとスキーマと構成 • インデックスに対する検索クエリ実行 Cosmos DB • DB アカウントのリスト • DB に対するクエリ実行 • コンテナーとアイテムに対する操作 • コンテナーに対するクエリ実行 Azure Database for PostgreSQL • DB に対するクエリ実行 • テーブルのスキーマ取得 • サーバーの構成値やパラメータ取得 Kusto (ADX) • クラスタ、DB、テーブルの取得 • KQL を使ったクエリ実行 Azure Storage • Blob や Table の操作 • コンテナーの情報取得 Azure サービス② できること Azure Monitor (Log Analytics) • ワークスペースのリスト • KQL を使ったクエリ実行 App Configuration • ストアのリスト • キー・バリューのペア取得 • 構成値のロック・アンロック Key Vault • キーの取得・作成 ARG (Azure Resource Graph) • リソース グループのリスト・操作 Azure CLI Extension • Azure CLI コマンドの実行 Azure Developer CLI Extension • Azure Developer CLI コマンドの実 行 Azure/azure-mcp

Slide 21

Slide 21 text

GitHub MCP サーバー  PAT (Personal Access Token) を使って接続  機能  リポジトリ操作:ファイル、ブランチ、コミット  イシュー操作:作成、取得、更新、コメント  ユーザー操作:ユーザー情報の CRUD  プルリク操作:作成、マージ、レビュー  コード スキャン:スキャン アラートとセキュリティ事項  その他実験的ツール github/github-mcp-server: GitHub's official MCP Server

Slide 22

Slide 22 text

MCP 関連アップデート一覧  Azure Functions で MCP トリガーをサポート  Azure API Center でリモート MCP サーバーの登録が可能  Copilot Studio で MCP サーバーをコネクタとして使用可能

Slide 23

Slide 23 text

MCP サーバー on Azure Functions  早期の試験プレビューとして MCP トリガーがサポート  これにより MCP サーバーを Azure Functions でホスト可能に  対応言語は、C#・Python・Node.js (TypeScript)  IaC とセットで各言語の公式サンプルが提供(リンク) [Python版] Azure FunctionsでMCPサーバーを動かす Azure Functions で MCP サーバーが作れるようになりました! Azure FunctionsでMCPサーバーを作る! SSE MCP サーバー

Slide 24

Slide 24 text

MCP サーバー on Azure Functions Python コード例 (remote-mcp-functions-python)

Slide 25

Slide 25 text

API Center へのMCP サーバー登録  API Center に対してリモート MCP サーバーが登録可能に ⇒ API のインベントリの一部として管理可能になった、より包括的な API 管理が可能 API センターでの MCP サーバーのインベントリと検出 - Azure API Center | Microsoft Learn

Slide 26

Slide 26 text

Copilot Studio で MCP サーバーを利用 1. MCP サーバーを作成 2. MCP サーバーの OpenAPI スキーマ ファイル (YAML) を使ってカ スタム コネクタを作成 3. エージェントのアクション ページからカスタム コネクタを選択 Introducing Model Context Protocol (MCP) in Copilot Studio: Simplified Integration with AI Apps and Agents | Microsoft Copilot Blog モデル コンテキスト プロトコルを使用してエージェントを拡張する (プレビュー) - Microsoft Copilot Studio | Microsoft Learn カスタム コネクタ MCP サーバー

Slide 27

Slide 27 text

MCP 開発方法

Slide 28

Slide 28 text

MCP 開発用 SDK  Official SDK  TypeScript (6.4k) / Python (11.8k) / Java (1.4k) / Kotlin (600) / C# (2k) / Swift (400)  FastMCP  TypeScript (1.5k) / Python (9.3k)  OpenAI Agent SDK  Python (10k)  (Client only) Semantic Kernel  (Client only) AutoGen クライアント コード例 ※ 公式 Python SDK は FastMCP v1.0 をベースにしており、 Python で開発するなら FastMCP 本体(v2.0)を推奨

Slide 29

Slide 29 text

MCP サーバーのデプロイ オプション  Azure Functions  Azure-Samples repositories (TypeScript / Python / C# / Java / )  Azure Container Apps  Azure-Samples/remote-mcp-webapp-dotnet (C#)  AI-Gateway/labs/realtime-mcp-agents/realtime-mcp-agents.ipynb at main · Azure- Samples/AI-Gateway (Python)  AI-Gateway/labs/mcp-client-authorization/mcp-client-authorization.ipynb at main · Azure- Samples/AI-Gateway (Python)  AI-Gateway/labs/model-context-protocol/model-context-protocol.ipynb at main · Azure- Samples/AI-Gateway (Python)  Azure App Service  Azure-Samples/remote-mcp-webapp-dotnet (C#)  Azure-Samples/remote-mcp-apim-appservice-dotnet (C#)

Slide 30

Slide 30 text

認証  MCP 公式の認証認可プロポーザルには、第三者認証フローをサポートするよう に書かれている(参考)  第三者認証サーバーとして API Management を置くことが推奨(参考)  Entra ID 認証サーバーに接続する OAuth クライアントでもあり、MCP クライアントにとっては OAuth 認証サーバーとなる  APIM を介することで安全かつスケーラブル Azure API Management Your Auth Gateway For MCP Servers | Microsoft Community Hub 1. クライアントが APIM にアクセス 2. APIM はユーザーを Entra ID にリダ イレクトしてログインと同意を要求 3. 認証後、Entra ID は APIM にアクセ ス トークンを提供し、APIM はクラ イアントとコードを交換して MCP サーバー トークンを生成 4. このトークンによりクライアントは APIM 経由でサーバーと安全に通信 でき、ユーザー検証とスコープ検証 が保証される

Slide 31

Slide 31 text

APIM ワカラン?認証回りめんどくさそう? APIM を使用してリモート MCP サーバーを構築するサンプル リポジ トリがあります!:https://aka.ms/mcp-remote-apim-auth  azd up で構築完了(MCP サーバーは Functions × Python)

Slide 32

Slide 32 text

APIM を閉域化するには?  Standard / Premium v2 で「VNet 統合 + Private Endpoint (PE)」  VNet 統合でアウトバウンド閉域化、PE でインバウンド閉域化  Standard v2 で PE がパブリック プレビュー サポート(2025 年 4 月)  Premium v2 は約 40 万円 / 月に対して、Standard v2 は約 10 万円 / 月  今までは “限定” プレビューだったので専用フォームから使用申請が必要だった 今後は Standard v2 で送受信をプライベート IP 通信化が可能! Announcing open public preview of inbound private endpoint for Standard v2 tier of API Management | Microsoft Community Hub

Slide 33

Slide 33 text

より複雑なことをしたい? ⇒ 「APIM AI Agents - Model Context Protocol (MCP) lab」  資格情報マネージャーを使用した認証トークンの管理・運用  OpenAI SDK / Semantic Kernel / AutoGen それぞれを使ったクライアント実装例 AI-Gateway/labs/model-context-protocol/model-context-protocol.ipynb at main · Azure-Samples/AI-Gateway

Slide 34

Slide 34 text

企業 × MCP アプリ MCP B MCP C MCP D MCP A 社内 API 社内 DB 社内資産 外部 DB / API ワークスペース・仕事効率化 AI エージェント クライアント

Slide 35

Slide 35 text

まとめ & CTA

Slide 36

Slide 36 text

まとめ  MCP は「LLM が外部にアクセスする際の標準(候補)接続方法」  様々な MCP サーバーが開発されており便利なものが多い  各言語で SDK が用意されており開発ハードルも低い  認証ゲートウェイとして API Management を設置してセキュアかつ スケーラブルな MCP ライフを Call to Action  便利そうな MCP サーバーを探して使ってみよう  MCP を開発してみよう(ローカル検索するようなオレオレ MCP サーバー等)  Azure Functions にデプロイしたり、APIM を使った認証・認可に チャレンジしよう

Slide 37

Slide 37 text

参考資料

Slide 38

Slide 38 text

参考資料  MCP 公式:  Introduction - Model Context Protocol  Transports - Model Context Protocol  For Server Developers - Model Context Protocol  For Client Developers - Model Context Protocol  AI Gateway リポジトリ  Azure-Samples/AI-Gateway: APIM AI - This repo contains experiments on Azure API Management's AI capabilities, integrating with Azure OpenAI, AI Foundry, and much more  Azure Samples  https://github.com/orgs/Azure-Samples/repositories?q=mcp