
Google Classroom MCP for students
io.github.AnonymousOnyx22由 GitHub 账号 AnonymousOnyx22 发布v0.1.10更新于 Nov 1, 2026
Google Classroom MCP server for students: read only assignments, due dates, grades, announcements.
概览
只读的 Google Classroom 服务器,让 AI 助手查看学生的课程、作业、截止日期、未交作业、成绩和公告。
- 可以做什么
- 列出在修课程及其 ID,以及某门课的教师
- 列出作业、即将到期与逾期未交的作业,以及尚未提交的待办清单
- 查看单个作业的说明、附件、分值与提交状态
- 汇总已批改作业的成绩与教师评语,并计算达到目标百分比所需分数
- 读取公告与课程资料,生成包含新公告、新成绩、逾期作业和近期截止的汇总
- 将即将到来的截止日期导出为 ICS 日历文件
- 适用场景
- 适合课程在 Google Classroom 上的学生,用来向 AI 应用询问还有什么要交、哪些已逾期、老师对已批改作业的评语,或需要考多少分才能达到目标成绩。
- 运行要求
- 通过 npx 在本地运行,需要 Node 20 或更高版本。需在 Google Cloud 创建项目并启用 Classroom API、创建 OAuth 桌面客户端,再执行一次性登录,得到 GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET 和 GOOGLE_REFRESH_TOKEN 并写入 MCP 配置。可选 CLASSROOM_TIMEZONE;快速测试可用临时 GOOGLE_ACCESS_TOKEN。需要访问 Google 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Google Classroom MCP for students,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Google Classroom MCP server for students
[npm version] [MCP] [Smithery] [Glama] [mcp.so]
Ask your AI what's actually left to do in Google Classroom.
That one command prints the config for your AI app. Details are in Quick start with npx.
This is the Google Classroom MCP server: a free, open source MCP server that lets Claude Desktop, Claude Code, Cursor and other MCP apps read your Classroom classes, assignments, due dates, missing work, grades on returned work with the comments your teachers leave on them, the points you need to reach a target grade, announcements, course materials and a catch up digest. It is read only. It can never turn in, edit or delete anything. Not affiliated with Google.
Free forever. No sign up and no subscription. Your login details only ever go to Google.
Try it now
Ask these right after setup:
- "What do I still need to turn in?"
- "What's overdue?"
- "What's due this week across all my classes?"
- "What did my teacher say about my work?"
- "What do I need to score to get a 90?"
- "What's new since yesterday?"
Sample answer
The third question goes to get_upcoming_due_dates. It reads your classes and prints one line per assignment, soonest first. Here is what an answer looks like:
Every line has the assignment title, the class and the due date. Work you already turned in is left out. Pass days_ahead set to 7 to that tool for a week ahead. Classroom keeps due times in UTC, and the server prints them in your own time zone. More sample answers are in Questions students ask.
Quick start with npx
Install the Google Classroom MCP server with npx, then add it to your AI app. Run npx google-classroom-student-mcp setup to print the config blocks below, with the three Google values filled in when they are set in your environment. Pick your app.
Claude Desktop
Add this to claude_desktop_config.json:
Claude Code
Run this one command:
Or put the same JSON block as Claude Desktop in a .mcp.json file in your project folder, or run claude mcp add-json with it.
Cursor
Put this in .cursor/mcp.json in your project folder, or in ~/.cursor/mcp.json to use it everywhere:
Other MCP apps take the same mcpServers JSON, with command set to npx and args set to ["-y", "google-classroom-student-mcp"].
Setup (about 10 minutes, one time)
Google makes every app ask for its own permission, so you create a small private "app" that only you use.
- Go to the Google Cloud console and create a project.
- Turn on the Google Classroom API for it (APIs & Services > Library).
- Under APIs & Services > OAuth consent screen, set it up as External, and add your own Google account as a test user.
- Under Credentials, create an OAuth client ID of type Desktop app. Copy the client ID and secret.
- Run the one time sign in:
Open the link it prints, approve read only access, and copy the three values it prints.
Optional: set CLASSROOM_TIMEZONE to a time zone name such as America/Toronto. Work with a due date but no due time counts as due at the end of that day in this zone. Without it, the time zone of the computer running the server is used.
-
Add them to your AI app's MCP config. Run
npx google-classroom-student-mcp setupand paste the block for your app, or use one of the formats from the Quick start above. -
Restart your AI app and ask "what's due this week?"
Run npx google-classroom-student-mcp doctor any time to check that your setup works.
Quick test without the app setup: set
GOOGLE_ACCESS_TOKENto a token from the OAuth Playground with the Classroom read only scopes. It stops working after about an hour.
Questions students ask
Here are the questions students ask, and the tool that answers each one. The answer comes back in the chat, ready to read.
Here is what the answers look like.
Sample answer for get_todo
The question "What do I still need to turn in?" goes to get_todo. It prints everything you have not handed in, and it puts the Classroom page of each one under the title so you can open the work itself.
The first line counts what is due today and what is overdue. Work you already turned in is left out, and work with no due date goes last. Pass course_ids to check a few classes only. You can also pass course_name, for example Biology, to pick a class by part of its name without looking up its ID first.
Sample answer for get_missing_assignments
The question "What's overdue?" goes to get_missing_assignments. It prints the work that was due and is still not handed in, the most recent due date first.
Sample answer for get_whats_new
The question "What's new since yesterday?" goes to get_whats_new. It prints one digest with new announcements, new grades, overdue work and what is due next. The times in this sample are in UTC.
Pass since_days to look further back and days_ahead to look further ahead.
Tools
All tools are read only.
The same list is in plain text in llms.txt, one line per tool with its description and the arguments it takes. That file ships with the package, so site indexes and AI apps that read plain text files can pick it up.
get_todo, get_assignments, get_assignment_details, get_announcements and get_course_materials print the Classroom page of each item under the title, so the AI can hand the student a direct link to the work. get_course_materials also prints the Drive link of every file attached to a material. Classroom sends a link only for published items.
Google Classroom has no overall course grade, so get_my_grades adds up graded work only and says so. When a class weights its work by grading category, it also prints a weighted percent, using only the categories that have graded work. get_target_grade still uses plain points.
get_my_grades and get_whats_new print what the teacher wrote when they returned the work, under the score, with the Classroom page of the work. get_my_grades lists the graded work that has a comment under each class.
get_todo, export_due_dates_calendar, get_upcoming_due_dates, get_missing_assignments, get_my_grades, get_target_grade and get_whats_new accept an optional list of course IDs (course_ids), so you can ask about a few classes only instead of all of them. get_upcoming_due_dates and get_whats_new also accept an optional number of days to look ahead (days_ahead). get_announcements and get_whats_new also accept an optional number of days to look back (since_days), which defaults to 7 days in the digest and means no date filter in announcements. get_announcements and get_course_teachers accept course IDs (course_ids) too. get_course_teachers also accepts course_name. get_target_grade takes a required target_percent from 0 to 100, which is the class percent you want.
get_target_grade adds up the points earned on graded work and the points the work that is left is worth. It then works out how many of those points you need to reach target_percent. Work counts as left when it has points and no grade yet, and work the teacher already returned without a grade is left out. If the target needs more points than the work left is worth, the answer says so and gives the best percent you can still reach. The server only sees the points on each piece of work, not any weighting the teacher may use, so the answer counts every point the same.
get_whats_new is the catch up digest. It prints new announcements, new grades with the comment the teacher left, overdue work and what is due next in one answer. An announcement counts as new when it was posted or changed inside the window. The date of a new grade comes from the teacher's comment on the work when there is one, otherwise from the last change to the assignment. The comment itself is printed under the grade.
Google Classroom vs Brightspace MCP
Google Classroom and D2L Brightspace are different platforms, so they need different servers. This one reads Google Classroom. The Brightspace MCP reads D2L Brightspace. Here is how they line up.
Both servers only read, so neither one can hand in your work for you. If your classes are in Google Classroom, install this one. If your school runs D2L Brightspace, install the Brightspace MCP instead.
Other Brightspace servers exist too, such as brightspace-mcp-server and brightspace-mcp. The author keeps a side by side comparison of them at brightspace-mcp.netlify.app/compare.
Privacy and security
- Your credentials stay on your computer and are only sent to Google.
- Nothing is sent to any other server by this project.
- Only read only permissions are requested. Remove access any time at myaccount.google.com/permissions.
Troubleshooting
Development
Tests run against a fake Google server, so they need no account or network. Other tests check that the tool table in this README, llms.txt and glama.json still list every tool, that the tool descriptions in llms.txt and glama.json match the code, that every sample answer in this README and in llms.txt matches what the tool really prints, and that the version matches package.json.
The version that --version prints and the MCP handshake sends comes from package.json, so bump the version there and nowhere else.
The test runner needs Node 22.12 or newer. The server itself runs on Node 20 or newer.
More free student MCP servers
All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.
This server is also listed in the Smithery, Glama and mcp.so directories.
Picking between the two school platforms? See Google Classroom vs Brightspace MCP.
License
MIT
来源:README.md,提交 eff536b
工具
0版本历史
9- v0.1.10最新Nov 1, 2026
- v0.1.9Oct 30, 2026
- v0.1.8Oct 29, 2026
- v0.1.6Oct 25, 2026
- v0.1.5Oct 23, 2026
- v0.1.4Oct 21, 2026
- v0.1.3Oct 20, 2026
- v0.1.1Oct 16, 2026
- v0.1.0Oct 14, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分