Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure × MCP 入門

Azure × MCP 入門

Avatar for Ryosuke Hyakuta

Ryosuke Hyakuta

May 10, 2025
Tweet

Other Decks in Technology

Transcript

  1. ゴール  MCP の概要を理解する  MS製品/Azure 文脈での MCP を学ぶ ⇒

    MCP を理解し、Azure 上で展開するイメージを掴む
  2. 百田 涼佑(Ryosuke HYAKUTA) 仕事・好きな技術 ◼ アプリ・システム、自動化など幅広く技術支援 ◼ Azure Monitor の製品サポート

    チーム出身なの で監視系も大好きです ◼ 学生時代から DevOps 好きなので CI/CD と IaC 組んでる時が落ち着きます 趣味 ◼ 1人外飲み・ジム・個人開発・麻雀・カメラ その他 ◼ Microsoft 2年目 ◼ グッドデザイン賞受賞 Microsoft Japan Co., Ltd. Cloud Solution Architect (App Innovation)
  3. ざっくりアジェンダ  概要  MS / Azure での MCP 

    デモ  開発方法  認証プラクティス  まとめ
  4. MCP とは何か?  LLM と外部データ / ツールを 繋ぐオープン標準プロトコル  “AI

    業界の USB-C” と呼ばれて いる  Function Calling と違い、アク ションを外部に持ち出せる Introduction - Model Context Protocol LLM が外部と簡単に繋がるための「共通の接続口」
  5. なぜ 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 と外部の統合を…
  6. MCP の基本アーキテクチャ Tools:(モデル制御) • LLM が特定のアクションを実行する ために呼び出すことが出来る関数 (ツール) • 例:天気

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

    API Resources:(アプリ制御) • LLM がアクセスできるデータ ソース • REST API の GET エンドポイントのよ うなもの • 例:クラウド ストレージのファイル Prompts:(ユーザー制御) • 事前に定義されたプロンプト テンプ レート • ユーザーが推論を指示する前に選択 ※ VS Code 上の GitHub Copilot エージェント モードでは現在、「Tools」のみが利用可能(参考)
  8. 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
  9. GitHub Copilot エージェント モード  MCP クライアントとしてエージェント モードを活用 エージェント モードを選択

    インストールされている MCP サーバーとツール一覧が表示 使用したくないツールの チェックを外すことが可能 インストールされている MCP サーバーとツール一覧が表示 使用したくないツールの チェックを外すことが可能 Use MCP servers in VS Code (Preview)
  10. 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
  11. Playwright MCP Playwright を使用したブラウザ操作自動化機能を持つ MCP サーバー であり、以下のようなユース ケースを持つ:  Web

    ページの操作  クリック、ホバー、ドラッグ、スクリーンショット、タブ作成・選択、ナビゲーション、PDF 保存、ファイル アップロード  ブラウザのサイズ変更、閉じる  キーボード操作  データ抽出  コンソール メッセージ取得、ネットワーク リクエスト情報取得、  その他ブラウザを通じた様々な目的
  12. 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
  13. GitHub MCP サーバー  PAT (Personal Access Token) を使って接続 

    機能  リポジトリ操作:ファイル、ブランチ、コミット  イシュー操作:作成、取得、更新、コメント  ユーザー操作:ユーザー情報の CRUD  プルリク操作:作成、マージ、レビュー  コード スキャン:スキャン アラートとセキュリティ事項  その他実験的ツール github/github-mcp-server: GitHub's official MCP Server
  14. MCP 関連アップデート一覧  Azure Functions で MCP トリガーをサポート  Azure

    API Center でリモート MCP サーバーの登録が可能  Copilot Studio で MCP サーバーをコネクタとして使用可能
  15. 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 サーバー
  16. API Center へのMCP サーバー登録  API Center に対してリモート MCP サーバーが登録可能に

    ⇒ API のインベントリの一部として管理可能になった、より包括的な API 管理が可能 API センターでの MCP サーバーのインベントリと検出 - Azure API Center | Microsoft Learn
  17. 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 サーバー
  18. 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)を推奨
  19. 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#)
  20. 認証  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 経由でサーバーと安全に通信 でき、ユーザー検証とスコープ検証 が保証される
  21. より複雑なことをしたい? ⇒ 「APIM AI Agents - Model Context Protocol (MCP)

    lab」  リソース作成からテストまで一気通貫の Python ノートブックとして提供  資格情報マネージャーを使用した認証トークンの管理・運用  OpenAI SDK / Semantic Kernel / AutoGen それぞれを使ったクライアント実装例 AI-Gateway/labs/model-context-protocol/model-context-protocol.ipynb at main · Azure-Samples/AI-Gateway
  22. 企業 × MCP アプリ MCP A MCP A MCP A

    MCP A 社内 API 社内 DB 社内資産 外部 DB / API ワークスペース・仕事効率化 AI エージェント
  23. まとめ  MCP は「LLM が外部にアクセスする際の標準(候補)接続方法」  様々な MCP サーバーが開発されており便利なものが多い 

    各言語で SDK が用意されており開発ハードルも低い  認証ゲートウェイとして API Management を設置してセキュアかつ スケーラブルな MCP ライフを Call to Action  便利そうな MCP サーバーを探して使ってみよう  MCP を開発してみよう(ローカル検索するようなオレオレ MCP サーバー等)  Azure Functions にデプロイしたり、APIM を使った認証・認可に チャレンジしよう
  24. 参考資料  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