
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 分