mcpField
G
Google Classroom MCP for students

Google Classroom MCP for students

本地服务
brightspacemcp.com科研与教育02 天前更新

关于 Google Classroom MCP for students

面向 Google Classroom 学生的开源 MCP 服务,让 AI 应用读取课程、作业、成绩和教师评语。所有工具均为只读,并提供目标成绩规划和课程动态汇总。

主要功能

  1. 01查看待交、逾期和即将截止的作业
  2. 02读取已返还作业的成绩与教师评语
  3. 03计算达到目标成绩所需分数
  4. 04查看公告与课程材料
  5. 05汇总新成绩、公告和待办事项

适用场景

  1. 01检查各课程本周要交的作业
  2. 02了解已评分作业中的教师反馈
  3. 03规划达到目标百分比所需的分数
  4. 04快速查看课程近期变化和逾期事项

MCP 相关

作为 MCP 服务向 AI 客户端提供 Google Classroom 只读工具,用于访问课程、作业、成绩、公告和材料;不会提交、编辑或删除内容。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"anonymousonyx22-google-classroom-student": {
"command": "npx",
"args": [
"-y",
"google-classroom-student-mcp"
]
}
}
}
启动命令npx -y google-classroom-student-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgoogle-classroom-student-mcp0.1.7

工具

还没有获取到工具列表

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

详细介绍

面向学生的 Google Classroom MCP 服务

npm version MCP Smithery Glama mcp.so

问问你的 AI,Google Classroom 里还有哪些事没做。

这是 Google Classroom MCP 服务:一个免费、开源的 MCP 服务,可让 Claude、ChatGPT、Cursor 和其他 AI 应用读取你的 Classroom 课程、作业、截止日期、未完成的作业、已批改作业的成绩及老师留下的评语、达到目标成绩所需的分数、公告、课程资料,以及补课摘要。它是只读的,绝不会提交、编辑或删除任何内容。与 Google 无关。

永久免费。无需注册,也无需订阅。你的登录信息只会发送给 Google。

立即试用

完成设置后,可以直接问:

  • “我还有哪些作业没交?”
  • “有哪些作业逾期了?”
  • “我所有课程本周有哪些作业到期?”
  • “老师对我的作业有什么评价?”
  • “我需要考多少分才能拿到 90 分?”
  • “从昨天起有什么新内容?”
示例回答

第三个问题会调用 get_upcoming_due_dates。它会读取你的课程,并按截止时间从早到晚为每项作业打印一行。回答示例如下:

- Essay outline (English) due Fri, Oct 23
- Lab write up (Biology) due Fri, Oct 23, 11:59 p.m. UTC
- Problem set 4 (Calculus) due Mon, Oct 26

每行都包含作业标题、课程和截止日期。已提交的作业不会列出。将 days_ahead 设为 7 并传给该工具,即可查看未来一周的作业。Classroom 使用 UTC 保存截止时间,而服务会按你所在的时区显示。更多示例回答见学生常问的问题。

使用 npx 快速开始

使用 npx 安装 Google Classroom MCP 服务,然后将它添加到你的 AI 应用中。运行 npx google-classroom-student-mcp setup,即可输出下方的配置块;如果环境中已设置三个 Google 值,这些值也会自动填入。选择你的应用。

Claude Desktop

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "classroom": {
      "command": "npx",
      "args": ["-y", "google-classroom-student-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-id",
        "GOOGLE_CLIENT_SECRET": "your-secret",
        "GOOGLE_REFRESH_TOKEN": "paste-from-login"
      }
    }
  }
}
Claude Code

运行以下命令:

claude mcp add google-classroom-student-mcp \
  -e GOOGLE_CLIENT_ID=your-id \
  -e GOOGLE_CLIENT_SECRET=your-secret \
  -e GOOGLE_REFRESH_TOKEN=paste-from-login \
  -- npx -y google-classroom-student-mcp

或者,将与 Claude Desktop 相同的 JSON 配置块放入项目文件夹中的 .mcp.json 文件,或使用该配置块运行 claude mcp add-json。

Cursor

将以下内容放入项目文件夹中的 .cursor/mcp.json,或放入 ~/.cursor/mcp.json 以便全局使用:

{
  "mcpServers": {
    "classroom": {
      "command": "npx",
      "args": ["-y", "google-classroom-student-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-id",
        "GOOGLE_CLIENT_SECRET": "your-secret",
        "GOOGLE_REFRESH_TOKEN": "paste-from-login"
      }
    }
  }
}

其他 MCP 应用也使用相同的 mcpServers JSON,只需将 command 设为 npx,并将 args 设为 ["-y", "google-classroom-student-mcp"]。

设置(约 10 分钟,仅需设置一次)

Google 要求每个应用都单独请求权限,因此你需要创建一个仅供自己使用的小型私有“应用”。

  1. 前往 Google Cloud 控制台 并创建一个项目。
  2. 为其启用 Google Classroom API(APIs & Services > Library)。
  3. 在 APIs & Services > OAuth consent screen 下,将其设置为 External,并将自己的 Google 账号添加为测试用户。
  4. 在 Credentials 下,创建一个类型为 Desktop app 的 OAuth 客户端 ID。复制客户端 ID 和密钥。
  5. 运行一次性登录:
GOOGLE_CLIENT_ID=your-id GOOGLE_CLIENT_SECRET=your-secret npx google-classroom-student-mcp login

打开它打印出的链接,批准只读访问权限,然后复制它打印出的三个值。

  1. 将这些值添加到 AI 应用的 MCP 配置中。运行 npx google-classroom-student-mcp setup 并粘贴适用于你应用的代码块,或者使用上方快速入门中的一种格式。

  2. 重启 AI 应用并询问“这周有哪些作业要交?”

随时运行 npx google-classroom-student-mcp doctor,检查设置是否正常。

无需设置应用即可快速测试:将 GOOGLE_ACCESS_TOKEN 设置为一个来自 OAuth Playground 的令牌,并授予 Classroom 只读范围。该令牌约一小时后会失效。

学生常问的问题

以下是学生常问的问题,以及回答每个问题的工具。答案会直接显示在聊天中,方便阅读。

你的问题工具答案包含的内容
“我还有什么作业没交?”get_todo你尚未提交的所有作业,并附上可在 Classroom 中打开作业的链接
“有哪些作业逾期了?”get_missing_assignments已到截止日期但仍未提交的作业
“我所有课程这周有哪些作业要交?”get_upcoming_due_dates即将到期的作业,按截止时间从近到远排列
“老师对我的作业说了什么?”get_my_grades老师对已评分作业留下的评论,以及分数和可在 Classroom 中打开作业的链接
“我需要考多少分才能达到 90 分?”get_target_grade要在每门课中达到该百分比,你需要在剩余作业中取得的分数
“老师最近发布了什么?”get_announcements所有课程的最新公告
“从昨天到现在有什么新内容?”get_whats_new新公告、新成绩、逾期作业和接下来要交的作业

以下是答案示例。

get_todo 的答案示例

对于“我还有什么作业没交?”这个问题,会调用 get_todo。它会列出你尚未提交的所有作业,并在每个作业的标题下方附上 Classroom 页面,方便你打开作业本身。

- Lab safety form (English) due Fri, Oct 9
  link: https://classroom.google.com/c/English/course/1/courseWork/w2
- Chapter 3 questions (Biology) due Mon, Oct 19
  link: https://classroom.google.com/c/Biology/course/2/courseWork/w4
- Essay outline (English) due Fri, Oct 23
  link: https://classroom.google.com/c/English/course/1/courseWork/w1
- Lab write up (Biology) due Fri, Oct 23, 11:59 p.m. UTC
  link: https://classroom.google.com/c/Biology/course/2/courseWork/w3
- Problem set 4 (Calculus) due Mon, Oct 26
  link: https://classroom.google.com/c/Calculus/course/3/courseWork/w5

已提交的作业不会列出,没有截止日期的作业会排在最后。传入 course_ids 可仅检查指定的几门课程。

get_missing_assignments 的答案示例

对于“有哪些作业逾期了?”这个问题,会调用 get_missing_assignments。它会列出已到截止日期但仍未提交的作业,并按截止日期从近到远排列。

- Chapter 3 questions (Biology) was due Mon, Oct 19
- Lab safety form (English) was due Fri, Oct 9
get_whats_new 的答案示例

对于“从昨天到现在有什么新内容?”这个问题,会调用 get_whats_new。它会生成一份摘要,列出新公告、新成绩、逾期作业和接下来要交的作业。此示例中的时间均为 UTC。

New announcements (last 7 days)
- Biology (Wed, Oct 21, 8:00 a.m. UTC) Field trip permission slip due Friday
- English (Tue, Oct 20, 9:00 a.m. UTC) Bring your textbook

New grades (last 7 days)
- Midterm review (Calculus) graded 88/100 on Tue, Oct 20, 3:00 p.m. UTC
  teacher said: Good work on the analysis. Watch the units on question 3.
  link: https://classroom.google.com/c/Calculus/course/3/courseWork/w6

Overdue work
- Chapter 3 questions (Biology) was due Mon, Oct 19
- Lab safety form (English) was due Fri, Oct 9

Due next (14 days)
- Essay outline (English) due Fri, Oct 23
- Lab write up (Biology) due Fri, Oct 23, 11:59 p.m. UTC
- Problem set 4 (Calculus) due Mon, Oct 26

传入 since_days 可查看更早的内容,传入 days_ahead 可查看更远期的内容。

工具

所有工具均为只读。

工具功能
get_my_courses你当前的课程及其 ID
get_todo所有分配给你但尚未提交的作业
get_upcoming_due_dates即将截止的作业,按截止时间从近到远排列
get_missing_assignments已过截止时间但尚未提交的作业
get_assignments某门课程的作业、截止时间和状态
get_my_grades每门课程已返还作业的得分,以及教师留下的评论
get_target_grade达到目标百分比所需的剩余作业得分
get_announcements最新公告
get_course_materials课程中发布的材料
get_whats_new一份汇总:新公告、新成绩、逾期作业和接下来要截止的作业

llms.txt 中也以纯文本列出了相同的工具,每个工具及其说明和所需参数各占一行。该文件随软件包一同提供,因此网站索引和读取纯文本文件的 AI 应用都可以获取它。

get_todo、get_assignments、get_announcements 和 get_course_materials 会在每个条目的标题下打印其 Classroom 页面链接,让 AI 可以直接把作业链接发给学生。get_course_materials 还会打印材料中每个附件的 Drive 链接。Classroom 只会为已发布的条目提供链接。

Google Classroom 没有课程总成绩,因此 get_my_grades 只统计已评分作业的得分,并会注明这一点。

get_my_grades 和 get_whats_new 会在分数下方打印教师批改作业时写下的内容,以及该作业的 Classroom 页面链接。get_my_grades 会在每门课程下列出带有评论的已评分作业。

get_todo、get_upcoming_due_dates、get_missing_assignments、get_my_grades、get_target_grade 和 get_whats_new 都接受可选的课程 ID 列表(course_ids),因此你可以只查询几门课程,而非全部课程。get_upcoming_due_dates 和 get_whats_new 还接受可选的前瞻天数(days_ahead)。get_whats_new 也接受可选的回溯天数(since_days),默认值为 7 天。get_announcements 也接受课程 ID(course_ids)。get_target_grade 需要一个介于 0 到 100 之间的 target_percent,表示你希望达到的课程百分比。

get_target_grade 会汇总已评分作业的得分,以及剩余作业的总分,然后计算你需要获得多少分才能达到 target_percent。有分值但尚未评分的作业会计入剩余作业;教师已返还但尚未评分的作业则不计入。如果达到目标所需的分数高于剩余作业的总分,结果会说明这一点,并给出你仍能达到的最高百分比。服务只能看到每份作业的分值,看不到教师可能采用的任何加权方式,因此会将每一分视为同等分值。

get_whats_new 会汇总近期动态,在一条回复中列出新公告、新成绩及教师留下的评论、逾期作业和接下来要截止的作业。公告在指定时间范围内发布或更新时,会被视为新公告。新成绩的日期取自教师对作业的评论(如果有),否则取自作业的最近修改时间。评论本身会显示在成绩下方。

Google Classroom 与 Brightspace MCP

Google Classroom 和 D2L Brightspace 是不同的平台,因此需要不同的服务。这个服务读取 Google Classroom。Brightspace MCP 读取 D2L Brightspace。以下是它们的对比。

Google Classroom MCP(本项目)Brightspace MCP
平台Google Classroom,即 Google Workspace for Education 中的平台D2L Brightspace,常见于高校
安装npx -y google-classroom-student-mcp setup,会输出供你粘贴到应用中的配置,并在环境中有这三个值时将它们填好npx brightspace-d2l-mcp setup,会为你写入配置
登录你需要在 Google Cloud 控制台创建自己的 OAuth 应用,运行一次登录,然后粘贴客户端 ID、客户端密钥和刷新令牌选择你的学校,然后在浏览器窗口中使用自己的学校账户登录。学校使用的任何登录方式都适用,而且不会存储你的密码
设置后Cloud 应用处于测试模式期间,Google 每 7 天就会让刷新令牌过期,因此你需要不时再次运行登录命令登录状态会静默保持,只有学校要求你重新登录时才会打开浏览器窗口
学校需要做什么什么都不用。你自己的 Google 账户和 Cloud 项目就足够了,不过学校管理员可以阻止第三方应用什么都不用。它使用你自己的学生账户登录,因此不需要管理员提供 API 密钥
课程和作业活跃课程,以及每项作业的截止日期、分值、是否已提交和在 Classroom 中打开作业的链接已选课程,以及作业和测验,并显示每项的实际提交状态
成绩按课程汇总已返还作业的得分,并提供目标成绩工具,告知你剩余作业需要获得多少分。Google Classroom 没有总成绩,因此百分比仅按已评分的作业计算按课程显示成绩明细,包括分数、百分比和教师评论,并提供目标成绩工具,告知你剩余作业需要达到什么成绩
消息最近的公告,以及一份补看摘要,涵盖新公告、新成绩、逾期作业和接下来到期的事项最近的公告,以及一份补看摘要,还涵盖新批改的作业、未读讨论和你尚未尝试的测验
课程文件课程中发布的资料,每项资料都有打开链接,附件也都附有 Drive 链接课程模块、文件、链接、教学大纲、作业附件、讨论、班级名单,以及考试和实验课等日历事件。它还可以将课程文件保存到你选择的文件夹,并生成包含截止日期的日历文件
只读是,绝不会提交、编辑或删除任何内容是,只会读取 Brightspace 中的内容
价格和许可证永久免费、开源,采用 MIT 许可证开源,采用 MIT 许可证,可在你自己的计算机上运行

这两个服务都只能读取内容,因此都不能替你提交作业。如果你的课程在 Google Classroom 中,请安装这个服务。如果你的学校使用 D2L Brightspace,请改为安装 Brightspace MCP。

其他 Brightspace 服务也存在,例如 brightspace-mcp-server 和 brightspace-mcp。作者在 brightspace-mcp.netlify.app/compare 提供了它们的并排对比。

隐私与安全

  • 你的凭据保留在自己的计算机上,且只会发送给 Google。
  • 本项目不会向任何其他服务器发送数据。
  • 仅请求只读权限。你可以随时在 myaccount.google.com/permissions 移除访问权限。

故障排除

消息解决方法
未登录再次运行 login 以获取新的刷新令牌。
登录失败、已过期或已撤销当你的应用处于测试模式时,Google 会在 7 天后使刷新令牌过期。再次运行 login。
访问被拒绝学校的 Google 管理员可能会屏蔽第三方应用。请联系管理员或使用个人账号。
未找到检查请求中的课程或项目 ID。
请求频率受限请求过多。等待一分钟后重试。
Google 未返回刷新令牌从已连接的应用中移除此应用,然后再次运行 login。

开发

npm install
npm run build
npm test

测试会对接虚拟 Google 服务,因此无需账号或网络。其他测试会检查本 README、llms.txt 和 glama.json 中的工具列表是否仍包含每个工具,llms.txt 和 glama.json 中的工具说明是否与代码一致,本 README 和 llms.txt 中的每个示例回答是否与工具实际输出一致,以及版本是否与 package.json 一致。

--version 打印的版本和 MCP 握手发送的版本都来自 package.json,因此只需在该文件中更新版本,别处无需更改。

测试运行器需要 Node 22.12 或更高版本。服务本身可在 Node 20 或更高版本上运行。

更多免费的学生 MCP 服务

这些服务均免费、开源,且在访问你的账号时均为只读。请在完整列表中浏览。

此服务也列于 Smithery、Glama 和 mcp.so 目录中。

服务功能
Brightspace MCP面向 AI 的 D2L Brightspace。包含实际提交状态的截止日期、成绩、目标成绩计算器和课程文件。
Canvas MCP面向 AI 的 Canvas LMS,只读。包含截止日期、未完成作业、成绩和公告。
Moodle MCP面向 AI 的 Moodle,只读。包含截止日期、逾期作业、成绩和公告。
GPA Calculator MCP面向 AI 的 GPA、成绩换算,以及期末考试所需成绩计算器。可离线使用,无需账号。
Citations MCP根据 DOI、ISBN 或手动输入的详细信息生成 APA、MLA 和 Chicago 引用。无需账号。
Study Planner MCP考试学习计划、间隔重复日期、番茄钟计划和作业里程碑。可离线使用。
Paper Finder MCP通过 OpenAlex 搜索学术论文、查找开放获取版本和相关研究。无需密钥。

在两种学校平台之间犹豫不决?请参阅 Google Classroom 与 Brightspace MCP 对比。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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