# google-classroom-student-mcp [Health: Active]

**Category:** 🎓 Education  
**Repository:** https://github.com/AnonymousOnyx22/google-classroom-student-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 2253  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/google-classroom-student-mcp

## Description
Google Classroom MCP server for students. Read only access to Google Classroom courses, assignments, due dates, missing work, grades and announcements. Works with Claude, ChatGPT, Cursor and other AI apps.

## Tools
Capabilities this server exposes over MCP:

- **get_my_courses** — List the student's active Google Classroom classes with their IDs. Use this when the user asks 'What classes am I in?' or needs a course ID to pass to another tool.
- **get_todo** — Everything assigned that the student has not turned in yet, each with a link to open it in Classroom. Pass course_ids to limit it, or leave empty for all active classes. Use this when the user asks 'What do I still have to do?' or 'What's left to turn in across all my classes?'
- **export_due_dates_calendar** — Build an ICS calendar file of upcoming due dates so they can be imported into a calendar app. Pass course_ids to limit it, or leave empty for all active classes. Use this when the user asks 'Can you give me my due dates as a calendar file?'
- **get_upcoming_due_dates** — Work that is due soon and not turned in, soonest first. Pass course_ids or days_ahead to narrow it, or leave both empty. Use this when the user asks 'What's due this week across all my classes?' or 'What's coming up?'
- **get_missing_assignments** — Past due work that has not been turned in. Pass course_ids to limit it, or leave empty for all active classes. Use this when the user asks 'What's overdue?' or 'What am I behind on?'
- **get_assignments** — Assignments for one class with due dates and status, each with a link to open it in Classroom. Use this when the user asks 'What's due in this class?' or wants every assignment and its points for a single class.
- **get_assignment_details** — Everything about one assignment: what the teacher wrote in the description, the files and links attached to it, its due date, points and your status. Pass the course ID and the assignment ID. Use this when the user asks 'What does this assignment ask for?' or 'What do I need to turn in?' about one specific assignment.
- **get_submission_status** — Did my teacher get my work? For one assignment, shows whether it is turned in, when it was turned in, whether it was late, the grade if it was returned and the comment the teacher left. Pass the course ID and the assignment ID. Use this when the user asks 'Did my teacher get my work?' or 'Was my assignment marked late?'
- **get_my_grades** — Grades on returned work for each class, with the comment the teacher left on the work. Google Classroom has no overall grade, so this adds up graded work only, and adds a weighted percent when the class uses grading categories with weights. Pass course_ids to limit it, or leave empty for all active classes. Use this when the user asks 'How am I doing in my classes?' or 'What grades have I gotten back?'
- **get_target_grade** — Points needed on the work that is left to reach a target percent in each class. Adds up the points earned on graded work and the points the work left is worth, then says how many of those points you still need. target_percent is the percent you want, from 0 to 100. Pass course_ids to limit it, or leave empty for all active classes. Use this when the user asks 'What do I need to score to get a 90?' or 'Can I still get an A in this class?'
- **get_announcements** — Recent announcements, each with a link to open it in Classroom. Pass course_ids or since_days to limit how far back they go, or leave empty for all active classes. Use this when the user asks 'Did my teacher post anything new?' or 'What did my teacher announce?'
- **get_course_materials** — Posted materials for one class, grouped by topic with the Drive link of every attached file. Use this when the user asks 'What materials did my teacher post?' or 'What did we cover in unit 3?' or wants the readings, slides and handouts for one class.
- **get_course_teachers** — Teachers of one class with their email addresses when Classroom shares them. Pass the course ID. Use this when the user asks 'Who teaches this class?' or 'How do I email my teacher?'
- **get_whats_new** — One catch up digest for every class: new announcements, newly graded work with the comment the teacher left, overdue work and what is due next. Pass course_ids to limit it, since_days for how far back to look and days_ahead for how far ahead to look. Use this when the user asks 'What's new since yesterday?' or 'What changed in my classes?'

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "google-classroom-student-mcp": {
    "command": "npx",
    "args": ["-y","google-classroom-student-mcp"],
    "env": {
      "GOOGLE_CLIENT_ID": "",
      "GOOGLE_CLIENT_SECRET": "",
      "GOOGLE_REFRESH_TOKEN": "",
      "GOOGLE_ACCESS_TOKEN": "",
      "CLASSROOM_TIMEZONE": ""
    }
  }
}
```

**Requires environment variables:** `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_REFRESH_TOKEN`, `GOOGLE_ACCESS_TOKEN`, `CLASSROOM_TIMEZONE` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What google-classroom-student-mcp does

google-classroom-student-mcp gives students a read-only way to query Google Classroom from an MCP-compatible AI application. It can inspect active classes, coursework, due dates, submission state, returned scores, teacher comments, announcements, course materials, and teachers whose email addresses Classroom shares.

The server is designed for questions such as what remains unsubmitted, what is overdue, what is due across classes, what a teacher wrote on returned work, and what has changed recently. It can also determine the points needed on remaining work to reach a target percentage and produce an ICS calendar file for upcoming due dates.

## How it works

The server uses the Google Classroom API with OAuth credentials created in a Google Cloud project. After authorization, the AI app calls MCP tools, which read the student’s Classroom data and return formatted results in chat. Due times are stored by Classroom in UTC; the server displays them using the configured time zone or the time zone of the machine running the server.

Access is read-only. The server cannot turn in assignments, modify coursework, edit grades, or delete Classroom data. It is intended for a student’s own Google account and is not affiliated with Google.

## Setup and configuration

Install or run the package through `npx`:

```bash
npx google-classroom-student-mcp setup
```

Before connecting an AI app, create a Google Cloud project, enable the Google Classroom API, configure the OAuth consent screen with the account as a test user, and create a Desktop app OAuth client. Run the login command with the client ID and secret, approve read-only access, and save the resulting refresh token.

```bash
GOOGLE_CLIENT_ID=your-id GOOGLE_CLIENT_SECRET=your-secret npx google-classroom-student-mcp login
```

Add the generated `mcpServers` configuration to the selected application and restart it. `npx google-classroom-student-mcp doctor` checks the setup. For a short-lived test, `GOOGLE_ACCESS_TOKEN` can be used with a token from Google’s OAuth Playground; such tokens expire after about an hour.

`CLASSROOM_TIMEZONE` accepts an IANA time zone such as `America/Toronto`. It controls how undetermined due times are interpreted and displayed.

## Tools and capabilities

- `get_my_courses` lists active classes and their IDs.
- `get_todo` finds assignments not yet turned in.
- `get_upcoming_due_dates` returns soon-due work in chronological order.
- `get_missing_assignments` lists overdue, unsubmitted work.
- `get_assignments` retrieves assignments for a class with due dates and status.
- `get_assignment_details` returns descriptions, attachments, due dates, points, and status.
- `get_submission_status` reports turn-in timing, lateness, grade, and teacher comments.
- `get_my_grades` lists returned points and teacher comments by class.
- `get_target_grade` estimates points needed to reach a target percentage.
- `export_due_dates_calendar` creates an ICS calendar file.
- `get_announcements`, `get_course_materials`, and `get_course_teachers` retrieve class information.
- `get_whats_new` combines recent announcements, grades, overdue work, and upcoming deadlines into one digest.

## Limitations and notes

Only read operations are supported. Assignments without a due date are handled separately from dated work, and due dates without a specified time are interpreted using the configured or local time zone. The server requires Google OAuth setup and Classroom API access before an AI client can use the tools.

_Full upstream README: https://allmcps.com/mcp/google-classroom-student-mcp/readme_

