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. 05通过 MSAL 进行 OAuth 身份验证

适用场景

  1. 01查看课程作业及截止日期
  2. 02汇总学生表现与评分反馈
  3. 03为学生创建补救练习作业
  4. 04准备家长教师会议的学生表现概览

MCP 相关

该 MCP 服务将 Microsoft Education 功能作为工具提供给 MCP 客户端,并通过 Microsoft Graph API 执行操作。支持流式传输及 OAuth 2.0 身份验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

📚 Microsoft Education MCP 服务

⚠️ 这是一个个人项目,与 Microsoft 无关,也不由 Microsoft 维护。

此项目是一个自定义的 Model Context Protocol(MCP)服务,旨在与 Microsoft Graph API 的教育功能集成。

它使 VSCode、Copilot Studio、Claude 和 Microsoft AI Foundry Agent 能够管理:

  • ✅ 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 服务。
    • 通过 MSAL 管理 Microsoft Graph 身份验证,以访问后端 API。
    • 使用 Model Context Protocol SDK 和流式传输方式启动 MCP 服务。
  • tools/ 文件夹

    • 每个文件定义一组相关工具,并将其注册到服务中。
    • 工具遵循 MCP 标准(server.tool(...)),并使用 Zod 架构验证和 Microsoft Graph 集成。
  • .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. 填写:

    • 名称:Microsoft Education MCP Server(或使用你偏好的名称)
    • 支持的账户类型:根据你的场景选择(通常为“仅此组织目录中的账户”)
    • 重定向 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.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_ID“Overview”页面上的 Application (client) ID
CLIENT_SECRET你在第 4 步复制的 Value
TENANT_ID“Overview”页面上的 Directory (tenant) ID
REDIRECT_URI我们将在下方的 Azure 部署部分创建此项——暂时跳过

🚀 Azure 部署指南

将 MCP 服务部署到 Azure App Service,以便在生产环境中使用 OAuth 2.0 身份验证。

1. 📋 先决条件
  • ✅ Azure 订阅
  • ✅ Azure 应用注册(已在上方完成)
  • ✅ 代码已推送到 GitHub 仓库
2. 🏗️ 创建 Azure App Service
Azure 门户
  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:默认值
    • Pricing Plan:默认值
  4. 点击 “Review + create”,验证完成后点击 “Create”。部署大约需要一两分钟。
3. 🔐 配置环境变量

在 Azure 门户中,依次前往 App Services → [Your App] → Settings → Environment Variables,然后点击 “+ Add”:

添加以下四个环境变量(名称 → 值):

名称值
CLIENT_ID你的 Entra Application (client) ID
TENANT_ID你的 Entra Directory (tenant) ID
CLIENT_SECRET你之前保存的客户端密钥 Value
REDIRECT_URIhttps://<YOUR_APP_NAME>.azurewebsites.net/oauth/callback

将 <YOUR_APP_NAME> 替换为你在第 2 步中选择的 App Service 名称(例如,edumcp-server-prod)。

添加完全部四项后,点击 “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. 选择订阅和应用服务
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
  • ✅ 配置自定义域名(可选)
  • ✅ 设置 Application Insights 以进行监控

🧠 场景:学业表现不佳学生的补救流程

这是基于数据分析和后续教学的原始提示词编写的结构化演练。

📝 原始提示词
  1. 在我的代数课程中找到名为“lineair equation”的作业。告诉我作业名称、说明和截止日期。

  2. 我想要一份表格形式的学业表现不佳学生总览。列出他们的姓名、我给出的反馈,以及关联的评分标准(如果有)。每位学生占一行。将评分标准拆分为单独的条目。

  3. 你能分析评分标准反馈并找出共性吗?

  4. 根据这些反馈,有什么补救建议?

  5. 我想让他们练习不同的变式。

  6. 将这些内容转换为一份作业和评分标准。

  7. 根据这些信息,为这些学生创建一份新的作业草稿……给他们两周时间完成。


每条提示词都是更大型自动化或 AI 辅助教育工作流中的一个步骤:

  • 检索指定作业
  • 分析与评分标准对应的反馈
  • 发现学生作业中的规律
  • 推荐学习干预措施
  • 创建并分配个性化补救任务

🖥️ 场景:在 Copilot Studio 中为家长会做准备

**提示词:**为了准备和 Al Frederickson 的家长进行家长会,你能提供一份他的完整表现总览吗? Copilot Studio 中的可视化 image

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。