mcp-workshop-20250905

ueshiman/mcp-workshop-20250905

3.1

If you are the rightful owner of mcp-workshop-20250905 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a comprehensive overview of the MCP Server workshop, focusing on the development and deployment of an MCP Server using Azure Functions and MCP Tool Trigger.

Tools
3
Resources
0
Prompts
0

MCP Server workshop

ワークショップ概要

このワークショップでは、Azure Functions の MCP Tool Trigger を利用し、以下の構成のサンプルアプリケーションをもとに開発の基礎を学ぶことができます。

%%{init: { "flowchart": { "htmlLabels": true, "nodeSpacing": 40, "rankSpacing": 60 } }}%%
graph LR
    %% スタイル定義
    classDef user fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
    classDef ai fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef server fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
    classDef tool fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    classDef db fill:#fce4ec,stroke:#c2185b,stroke-width:2px
  %% スペーサー用クラス(不可視)
  classDef pad fill:transparent,stroke:transparent,color:transparent,stroke-width:0
    
    %% ユーザーインターフェース
    Console[🖥️ MCP Client<br/>コンソールアプリケーション]:::user
    
    %% AI サービス
    OpenAI[🤖 Azure OpenAI<br/>GPT-4.1<br/>Tool選択・呼び出し]:::ai
    
    %% データベース
    CosmosDB[(🗄️ Azure Cosmos DB<br/>レビューデータ)]:::db
    
  %% MCP Server(Azure Functions内にToolsを配置)
  subgraph MCPServer[🔧 MCP Server <br/>Azure Functions]
        direction TB
    %% 上端に余白を作るための不可視スペーサー
    TopPad[" "]:::pad
        Tool1[📊 get_reviews_by_category<br/>カテゴリ別レビュー取得]:::tool
        Tool2[📄 get_review_detail<br/>詳細レビュー取得]:::tool
        Tool3[📅 get_reviews_by_date<br/>日付範囲レビュー取得]:::tool
    end
    
    %% 接続関係
    Console <--> OpenAI
    
    %% LLMから各Toolへの選択的な呼び出し
    OpenAI -->|Tool Call | Tool1
    OpenAI -->|Tool Call | Tool2
    OpenAI -->|Tool Call | Tool3

    Tool1 --> CosmosDB
    Tool2 --> CosmosDB
    Tool3 --> CosmosDB
    
    %% ユーザーのクエリ例とToolの対応関係
    Query1["「タブレットカテゴリ内で<br/>評価のいい製品を教えて」"]:::user
    Query2["「ここ1週間の<br/>タブレットのレビューは」"]:::user
    
    Query1 -.-> Console
    Query2 -.-> Console
    
    %% スタイルをサブグラフに適用
    class MCPServer server

アジェンダ

1. イントロダクション

ここでは講師の解説をもとに、参加者全員でハンズオンを進めていきます。

Noタイトル(ドキュメントリンク)概要
1-1Codespace を使ったローカル開発環境・デバッグ実行の準備をします。
1-2Azure Functions のサンプルコードをデバッグ実行しながら、MCP Serverの実装コードの構成を講師が解説します。

2. Self-paced contents

ここからは、時間の許す限りドキュメントに沿って自身のペースでハンズオンを進めます。

Noタイトル(ドキュメントリンク)概要
2-1Azure Functions の MCP Tool Trigger を利用した MCP Server の実装を行います。
2-2ここまで実装した Function App を Azure へデプロイする方法を学びます。
2-3MCP ServerのToolを追加実装します。
2-4ローカルでMCP Serverの動作検証・デバッグを行うための開発支援ツールであるMCP Inspectorを紹介します。

ワークショップ概要

MCP Server について

  • PythonのMCP Tool TriggerのAzure Functionsを作成する
  • 「タブレットカテゴリ内で評価のいい製品を教えて」「今年の春のタブレットのレビューは」に答えられるToolを持ったMCP Serverを作成する

Cosmos DBスキーマ構造

  • Cosmos DB: cosmos-mcp-workshop-{unique_id}
  • データベース: Gadget
  • Container: Reviews
  • パーティションキー: /category

ガジェット製品レビューデータ(Cosmos DB)

  • レビュー ID
  • カテゴリ
  • スコア(1~5)
  • 投稿日
  • 本文
  • 投稿者 ID
  • 投稿者名
  • 投稿者の年齢層 (xx 代)
  • 商品 ID
  • 商品名

レビューサンプルデータ

{
  "id": "rev_001",
  "category": "タブレット",
  "score": 4.5,
  "posted_date": "2025-06-25T10:30:00Z",
  "content": "軽量で持ち運びが便利。ディスプレイが非常にクリア",
  "user_id": "user_12345",
  "user_name": "田中太郎",
  "user_age_group": "30代",
  "product_id": "tab_001",
  "product_name": "UltraTab Pro 11インチ"
}

カテゴリに指定できるもの

  • タブレット
  • ノートパソコン
  • デスクトップ
  • PCスピーカー
  • ディスプレイ

一覧取得MCPのレスポンス

  • レビュー ID
  • カテゴリ
  • スコア
  • 投稿日
  • 投稿者の年齢層 (xx 代)
  • 商品 ID
  • 商品名

レビュー詳細MCPのレスポンス

  • レビュー ID
  • カテゴリ
  • スコア
  • 投稿日
  • 本文
  • 投稿者の年齢層 (xx 代)
  • 商品 ID