mcpField
📚
📚 Microsoft Education MCP Server

📚 Microsoft Education MCP Server

ローカル
github.com/jesegher科学・教育820 週間前に更新

📚 Microsoft Education MCP Server について

Microsoft Graph APIを通じてMicrosoft Educationのデータを管理するMCPサーバーです。教育関係者やAIツール連携向けに、クラス、課題、ルーブリック、名簿、提出物、採点を扱います。

主な機能

  1. 01クラスと名簿の確認
  2. 02課題の作成・更新と対象生徒の指定
  3. 03ルーブリックの作成・添付・再利用
  4. 04提出物と採点結果の確認
  5. 05MSALによるOAuth認証

活用シーン

  1. 01コース課題と期限の確認
  2. 02生徒の成績とルーブリックのフィードバック集約
  3. 03生徒向け補習課題の作成
  4. 04保護者面談に向けた成績概要の準備

MCP 対応

MCPクライアント向けにMicrosoft Educationの操作をツールとして公開し、Microsoft Graph APIを通じて実行します。ストリーミングトランスポートとOAuth 2.0認証に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

📚 Microsoft Education MCP サーバー

⚠️ これは個人プロジェクトです。Microsoft とは提携しておらず、Microsoft による保守も行われていません。

このプロジェクトは、教育分野の Microsoft Graph API と統合するために構築されたカスタム Model Context Protocol(MCP)サーバーです。

VSCode、Copilot Studio、Claude、Microsoft AI Foundry のエージェントが、次の項目を管理できます。

  • ✅ Microsoft Education のクラス
  • ✅ 課題(作成、更新、対象の生徒の指定)
  • ✅ ルーブリック(作成、添付、一覧表示)
  • ✅ 生徒と教員(名簿)
  • ✅ 提出物と採点

AI を活用したツール、テスト、インテリジェントなプロンプト統合向けに構築されています。


🚀 機能

  • 🔐 Microsoft の委任認証(MSAL 経由の OAuth)
  • 🧑‍🏫 クラスと名簿の確認
  • 📝 課題の作成、更新、生徒の対象指定
  • 🎓 ルーブリックの作成と再利用
  • 📤 課題の提出物と結果の表示
  • 🧠 VSCode、Copilot Studio、Claude、Microsoft AI Foundry 向けに設計

📂 構成

🔍 主要コンポーネント
  • start-mcp-server-streaming.js

    • OAuth 2.0 認証レイヤーを使用して、すべてのツールを読み込み、登録します。
    • Windows アカウント選択との統合を備えた OAuth 2.0 サーバーを実装します。
    • バックエンド API にアクセスするため、MSAL を介して Microsoft Graph の認証を管理します。
    • Model Context Protocol SDK とストリーミングトランスポートを使用して、MCP サーバーを起動します。
  • tools/ folder

    • 各ファイルで関連するツールのセットを定義し、サーバーに登録します。
    • ツールは、Zod スキーマ検証と Microsoft Graph との統合を用いて、MCP 標準(server.tool(...))に従います。
  • .env

    • Microsoft アプリの機密性の高い認証情報と設定を保存します。
    • Microsoft Graph API の認証に必要です。
  • Example.env

    • 共有や共同作業者のオンボーディングに使える安全なテンプレートです。

この構成により、次のことが簡単に行えます。

  • 機能の追加や変更(tools/ にファイルを追加するだけです)
  • ドメインごとにロジックを分離(例:課題とルーブリック)
  • クリーンでスケーラブルな MCP 統合のサポート

🏗 Entra ID(Azure AD)でアプリケーションを登録する方法

このプロジェクトで Microsoft Graph API を使用するには、Entra ID でアプリを登録する必要があります。

1. Microsoft Entra 管理センターに移動する

2. 新しいアプリケーションを登録する
  1. 「Applications」→「App registrations」 に移動します。

  2. 「New registration」 をクリックします。

  3. 次の項目を入力します。

    • Name:Microsoft Education MCP Server(または任意の名前)
    • Supported account types:シナリオに応じて選択します(通常は「この組織ディレクトリ内のアカウントのみ」です)。
    • Redirect URI:今は空欄のままにします(Azure App Service の作成後に追加します)。
  4. 「Register」 をクリックします。


3. API のアクセス許可を設定する
  1. 登録後、「API permissions」 に移動します。

  2. 「Add a permission」→ Microsoft Graph → Delegated permissions をクリックします。

  3. 次のアクセス許可を追加します(検索/フィルターを使って各項目を見つけてください)。

    OpenID のアクセス許可:

    • offline_access
    • openid
    • profile

    EduAssignments:

    • EduAssignments.ReadWrite

    EduRoster:

    • EduRoster.ReadWrite

    User:

    • User.ReadWrite.All
  4. 「Add permissions」 をクリックします。

  5. 次に、「Configured permissions」 で 「Grant admin consent for [your tenant]」 をクリックし、テナント内のすべてのユーザーに対して承認します。

💡 ヒント:「Grant admin consent」ボタンは、管理者アカウントでサインインしている場合にのみ表示されます。この手順により、管理者だけでなく、すべてのユーザーがこれらのアクセス許可を使用できるようになります。


4. クライアントシークレットを生成する
  1. **「Certificates & secrets」**に移動します
  2. Client secretsで、**「New client secret」**をクリックします
  3. Description:任意のラベルを入力します(例:mcp-server-secret)。後で識別するための名前です。
  4. Expires:有効期限を選択します(例:6か月または12か月)
  5. **「Add」**をクリックします
  6. 「Value」をすぐにコピーします。これがCLIENT_SECRETです。このページを離れると、再度表示できなくなります!

⚠️ 重要:「Value」列にあるのがシークレットで、「Secret ID」ではありません。安全な場所(パスワードマネージャーやメモ帳など)に保存してください。後で必要になります。


5. これらの値を保存する

アプリ登録の**「Overview」**ページに移動して、以下の値をコピーします。メモ帳に保存してください。Azure のデプロイ時に必要になります。

名前確認場所
CLIENT_IDOverview ページのApplication (client) ID
CLIENT_SECRETステップ4でコピーしたValue
TENANT_IDOverview ページのDirectory (tenant) ID
REDIRECT_URI下記の Azure デプロイセクションで作成します。今はスキップしてください

🚀 Azure デプロイガイド

OAuth 2.0 認証を使用して、本番環境向けに MCP サーバーを Azure App Service にデプロイします。

1. 📋 前提条件
  • ✅ Azure サブスクリプション
  • ✅ Azure アプリ登録(上記で完了)
  • ✅ コードを GitHub リポジトリにプッシュ済み
2. 🏗️ Azure App Service を作成する
Azure Portal
  1. Azure Portalに移動します
  2. Create a resource → Web App
  3. 以下を設定します:
    • Subscription:サブスクリプション
    • Resource Group:新規作成するか、既存のものを使用します(例:edumcp-resource-group)
    • Name:your-app-name(組織に適した名前を選んでください。Azure 内で一意の名前にする必要があります。)
    • Publish:Code
    • Runtime stack:Node 22 LTS
    • Operating System:Linux
    • Region:ユーザーに最も近いリージョンを選択します
    • Linux Plan:Default
    • Pricing Plan:Default
  4. **「Review + create」をクリックし、検証後に「Create」**をクリックします。1、2分でデプロイされます。
3. 🔐 環境変数を設定する

Azure Portal → App Services → [Your App] → Settings → Environment Variablesに移動し、**「+ Add」**をクリックします:

以下の4つの環境変数を追加します(名前 → 値):

名前値
CLIENT_IDEntra の Application (client) ID
TENANT_IDEntra の Directory (tenant) ID
CLIENT_SECRET先ほど保存したクライアントシークレットの Value
REDIRECT_URIhttps://<YOUR_APP_NAME>.azurewebsites.net/oauth/callback

<YOUR_APP_NAME>は、ステップ2で選択した App Service 名に置き換えてください(例:edumcp-server-prod)。

4つすべてを追加したら、**「Apply」をクリックし、続けて「Confirm」**をクリックして App Service を再起動します。

4. � Entra ID(Azure AD)にリダイレクト URI を追加する

App Service が作成され、URL がわかったら、アプリ登録に戻ってリダイレクト URI を追加する必要があります。

⚠️ 重要:アプリ登録時にリダイレクト URI の追加をスキップした場合、この手順を完了するまで認証に失敗します。

リダイレクト URI を追加する手順:
  1. Microsoft Entra Admin Centerに移動します
  2. **「Entra ID」→「App registrations」**に移動します
  3. 一覧から登録済みのアプリケーションを選択します
  4. 左側のサイドバーで**「Authentication」**をクリックします
  5. **「Platform configurations」で、「Add a platform」**をクリックします
  6. **「Web」**を選択します
  7. **「Redirect URIs」**フィールドに、以下を入力します:
    https://<YOUR_APP_NAME>.azurewebsites.net/oauth/callback
    
    <YOUR_APP_NAME>を実際の Azure App Service 名に置き換えてください(例:edumcp-server-prod)。
  8. **「Configure」**をクリックして保存します
5. �📦 コードをデプロイする
オプション A:外部 Git(推奨)

⚠️ 注:デプロイする前に、Azure で SCM 基本認証を有効にする必要があります。
App Service → Configuration → General settings → SCM Basic Auth Publishing Credentials → On に進み、"Apply" をクリックします。

続いて、デプロイを行います。

  1. Azure Portal → App Services → [Your App] → Deployment → Deployment Center
  2. Source:Manual Deployment → External Git
  3. Repository:https://github.com/jesegher/EduMCPServer.git
  4. Branch:main
  5. Repository Type:Public
  6. "Save" をクリックします。
オプション B:VS Code 拡張機能
  1. Azure App Service 拡張機能をインストールします
  2. プロジェクトを右クリック → Deploy to Web App
  3. サブスクリプションと App Service を選択します
6. 🎯 MCP クライアントを構成する

本番環境用に MCP クライアントの構成を更新します。

VS Code MCP クライアントの構成:

VS Code の mcp.json(ユーザー設定)に追加します。

{
  "servers": {
    "EDUMCP Server": {
      "url": "https://your-app-name.azurewebsites.net/mcp",
      "type": "http"
    }
  }
}

VS Code は /.well-known/oauth-authorization-server エンドポイントを通じて OAuth 構成を自動的に検出します。

Claude(Anthropic):

Claude の MCP サーバー設定で、次の URL を指定してリモート MCP サーバーを追加します。

https://your-app-name.azurewebsites.net/mcp

Claude は動的クライアント登録と OAuth 2.0 を自動的に使用します。

Microsoft AI Foundry:

AI Foundry プロジェクトで、次のエンドポイントを指定してリモート MCP ツールを追加します。

https://your-app-name.azurewebsites.net/mcp

Foundry は /.well-known/oauth-authorization-server エンドポイントを通じて OAuth 構成を検出します。

7. ✅ デプロイを確認する
  1. エンドポイントをテストする:

    • ヘルスチェック:https://your-app-name.azurewebsites.net
    • OAuth 検出:https://your-app-name.azurewebsites.net/.well-known/oauth-authorization-server
  2. Azure Portal → App Service → Log stream でログを確認します

  3. MCP クライアントで認証をテストします

8. 🛡️ 本番環境のセキュリティ
  • ✅ 機密性の高いシークレットには Key Vault を使用します(任意)
  • ✅ App Service → TLS/SSL 設定で HTTPS only を有効にします
  • ✅ カスタムドメインを構成します(任意)
  • ✅ 監視用に Application Insights を設定します

🧠 シナリオ:成績不振の生徒への補習フロー

これは、データ分析とフォローアップ指導のための、元のプロンプトに基づいた手順をまとめたものです。

📝 元のプロンプト
  1. 代数のコースで「lineair equation」という課題を探してください。課題名、指示、締め切り日を教えてください。

  2. 成績不振の生徒全員について、表形式で概要をまとめてください。生徒の名前、私が提供したフィードバック、関連するルーブリックがあればその内容を含めてください。生徒ごとに1行にしてください。ルーブリックは項目ごとに分けてください。

  3. ルーブリックのフィードバックを分析し、共通点を見つけてもらえますか。

  4. このフィードバックに基づいて、改善のためのアイデアをいくつか挙げてもらえますか。

  5. 生徒たちにさまざまなパターンを練習させたいです。

  6. これを課題とルーブリックにまとめてください。

  7. この情報を使って、生徒たち向けの新しい課題の下書きを作成してください……完了まで2週間の猶予を設けてください。


各プロンプトは、より大きな自動化または AI 支援教育ワークフローの一つの段階として機能します。

  • 対象となる課題の取得
  • ルーブリックに沿ったフィードバックの分析
  • 生徒の取り組みに見られるパターンの特定
  • 学習への介入策の提案
  • 生徒に合わせた補習課題の作成と割り当て

🖥️ シナリオ:Copilot Studio で保護者面談の準備をする

プロンプト: 保護者面談に備えて、Al Frederickson の成績全体の概要を教えてもらえますか?
Copilot Studio での可視化 image

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。