google-classroom-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_coursesA | List Google Classroom courses for the signed-in account (teacher or student). Args: course_states: Optional state filter. Defaults to ["ACTIVE"]. Other values: "ARCHIVED", "PROVISIONED", "DECLINED", "SUSPENDED"; pass several to include multiple states. |
| get_courseA | Get one course by id, including description and enrollment code. Args: course_id: Course id from list_courses (numeric string). |
| list_courseworkA | List coursework (assignments, quizzes, questions, materials) for a course. Args: course_id: Course id from list_courses. states: Optional state filter. Defaults to ["PUBLISHED"]; can include "DRAFT" or "DELETED". limit: Maximum number of items to return. |
| list_due_soonB | Upcoming coursework across all active courses, sorted by due date. Args: days: Look-ahead window in days (default 7). include_overdue: Also include items whose due date already passed. |
| list_announcementsC | Recent announcements for a course. Args: course_id: Course id from list_courses. limit: Maximum number of announcements to return. |
| list_teachersA | Teacher roster (names and emails) for a course. Args: course_id: Course id from list_courses. |
| list_studentsA | Student roster (names and emails) for a course. Args: course_id: Course id from list_courses. |
| list_submissionsB | Submission state and grades for one assignment. Args: course_id: Course id from list_courses. coursework_id: Coursework id from list_coursework. user_id: "me" (default) for the signed-in student's submission, a student's numeric id/email, or "-" for all students (teachers only). limit: Maximum number of submissions to return. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and scope: courses, single course, coursework, due-soon across courses, announcements, teachers, students, and submissions. The only near-overlap is list_coursework vs list_due_soon, but the descriptions clearly distinguish per-course listing from cross-course due-date aggregation.
Consistent snake_case verb_noun pattern throughout (list_courses, get_course, list_coursework, etc.). The single 'get_course' appropriately pairs with 'list_courses' for singular retrieval, so the convention is predictable.
Eight tools is well-scoped for a read-oriented Classroom client. Each tool earns its place by covering a distinct entity or query, with no redundancy or filler.
Read coverage is solid (courses, coursework, submissions, announcements, rosters), but the surface is entirely read-only. Common Classroom mutations—creating courses/coursework, submitting assignments, grading, posting announcements, or updating/deleting—are absent, creating dead ends for write-oriented workflows.