📚 Microsoft Education MCP Server

📚 Microsoft Education MCP Server

微软教育 MCP 服务器

jesegher

研究与数据
访问服务器

README

📚 Microsoft Education MCP 服务器

⚠️ 这是一个个人项目。它不隶属于微软,也不由微软维护。

本项目是一个定制的 模型上下文协议 (MCP) 服务器,旨在与 Microsoft Graph API 集成,用于教育领域。

它使 Claude Desktop 或其他 MCP 兼容工具能够管理:

  • ✅ Microsoft Education 课程
  • ✅ 作业(创建、更新、指定学生)
  • ✅ 评分标准(创建、附加、列出)
  • ✅ 学生和教师(花名册)
  • ✅ 提交和评分

专为 AI 驱动的工具、测试和智能提示集成而构建。


🚀 功能

  • 🔐 Microsoft 委派身份验证 (OAuth via MSAL)
  • 🧑‍🏫 课程和花名册浏览
  • 📝 作业创建、更新和学生指定
  • 🎓 评分标准创建和重用
  • 📤 查看作业提交和结果
  • 🧠 专为 Claude Desktop 和模型上下文客户端设计

📂 结构

🔍 关键组件

  • start-mcp-server.js

    • 加载和注册所有工具。
    • 通过 MSAL 管理 Microsoft 身份验证。
    • 使用模型上下文协议 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. 导航到 “应用程序” → “应用注册”

  2. 点击 “新注册”

  3. 填写:

    • 名称: Microsoft Education MCP Server(或您喜欢的任何名称)
    • 支持的帐户类型: 根据您的场景选择(通常为“仅此组织目录中的帐户”)
    • 重定向 URI:
      • 平台: Web
      • URI: http://localhost:3000/auth/callback(或您的自定义 URI)
  4. 点击 “注册”


3. 配置 API 权限

  1. 注册后,转到 “API 权限”

  2. 点击 “添加权限” → Microsoft Graph → 委派的权限

  3. 添加以下内容:

    • User.ReadWrite.All
    • EduAssignments.ReadWrite.All
    • EduRoster.ReadWrite.All
    • EduRubrics.ReadWrite
    • offline_access
    • openid
    • profile
  4. 点击 “授予管理员同意” 以批准它们用于您的租户。


4. 生成客户端密钥

  1. 转到 “证书和机密”
  2. 在 “客户端机密” 下,点击 “新建客户端机密”
  3. 添加描述并选择到期时间(例如 6 个月或 12 个月)
  4. 点击 “添加”
  5. 复制该值 — 您将无法再次看到它!

5. 将这些值保存在记事本中

注册后,转到 “概述” 并复制以下值:

CLIENT_ID=your-application-id
CLIENT_SECRET=your-client-secret
TENANT_ID=your-directory-id
REDIRECT_URI=http://localhost:3000/auth/callback

📥 克隆存储库并安装依赖项

按照以下步骤在本地运行项目:

1. 克隆存储库

git clone https://github.com/jesegher/EduMCPServer.git
cd EDUMCPServer

2. 安装依赖项

npm install

或手动安装

npm install @modelcontextprotocol/sdk axios zod dotenv @azure/msal-node

🧠 使用 Claude Desktop 运行

要将此 MCP 服务器与 Claude Desktop 一起使用,请将以下内容添加到您的 Claude Desktop claude.settings.json 文件中:

{
  "mcpServers": {
    "Education-Data": {
      "command": "node",
      "args": [
        "C:\\path\\to\\your\\project\\start-mcp-server.js"
      ],
      "env": {
        "TENANT_ID": "your-tenant-id",
        "CLIENT_ID": "your-client-id",
        "CLIENT_SECRET": "your-client-secret",
        "REDIRECT_URI": "http://localhost:3000/auth/callback",
        "PORT": "3000"
      }
    }
  }
}

💡 将路径和环境变量替换为您的实际配置详细信息。

⚠️ 每次进行更改时,请务必关闭 Claude。您需要在任务管理器中将其杀死。

Claude 将自动检测 MCP 服务器和注册的工具。

<img width="362" alt="image" src="https://github.com/user-attachments/assets/924c9da6-0e0b-4c5d-9927-c74517702a5c" />

只要您请求数据,就会启动身份验证流程。 您始终可以通过调用 auth-login 手动触发它。 我注意到 Claude 并不总是为您提供 URL,如果需要,您可以从它对身份验证服务器的调用中找到并复制它。 [修复正在进行中]


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

这是一个基于原始提示的结构化演练,用于数据分析和后续指导。

📝 原始提示

  1. 在我的代数课程中找到我的作业“线性方程”。 告诉我名称、说明和截止日期。

  2. 我想要一个表格格式的概述,其中包含所有表现不佳的学生。 我想要他们的姓名、我提供的反馈以及相关的评分标准(如果有)。 我希望每个学生一行。 分开评分标准的各个项目。

  3. 您能分析评分标准反馈并找到共同点吗?

  4. 根据此反馈,有哪些补救的想法?

  5. 我希望他们练习变体。

  6. 将其翻译成作业和评分标准。

  7. 为这些学生创建一个包含此信息的新草稿作业... 给他们两周时间完成。


每个提示都充当更大的自动化或 AI 辅助教育工作流程中的一个步骤:

  • 检索目标作业
  • 分析与评分标准一致的反馈
  • 识别学生作业中的模式
  • 推荐学习干预措施
  • 创建和分配个性化的补救任务

推荐服务器

mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
MCP Word Counter

MCP Word Counter

一个模型上下文协议服务器,提供用于分析文本文档的工具,包括字数和字符数统计。该服务器通过暴露简单的文档统计功能,帮助大型语言模型(LLM)执行文本分析任务。

本地
JavaScript
mcp-server-data-exploration

mcp-server-data-exploration

能够对基于 .csv 的数据集进行自主数据探索,以最少的精力提供智能洞察。

本地
Python
Claude MCP Server for USGS Quakes API

Claude MCP Server for USGS Quakes API

在 Claude Desktop 中提供对 USGS Quakes API 的访问,使用户能够通过自然语言查询检索地震数据和详细信息。

本地
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python