Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GOOGLE_CLIENT_IDNoOAuth client ID of your Google Cloud Desktop app OAuth client, copied from the Credentials page.
GOOGLE_ACCESS_TOKENNoQuick test alternative: an access token from the OAuth Playground with the Classroom read only scopes. It stops working after about an hour.
GOOGLE_CLIENT_SECRETNoOAuth client secret of your Google Cloud Desktop app OAuth client, copied from the Credentials page.
GOOGLE_REFRESH_TOKENNoRefresh token printed by the one time `npx google-classroom-student-mcp login` sign in.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_my_coursesA

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_todoA

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_calendarA

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_datesA

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_assignmentsA

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_assignmentsA

Assignments for one class, picked by course_id or course_name, 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_detailsA

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_statusA

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_gradesA

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_gradeA

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_announcementsA

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_materialsA

Posted materials for one class, picked by course_id or course_name, 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_teachersA

Teachers of your classes with their email addresses when Classroom shares them. Pass course_id for one class, or course_ids or course_name for several, and each class gets its own list. With none of them it covers all active classes. Use this when the user asks 'Who teaches this class?' or 'How do I email my teacher?'

get_whats_newA

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?'

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct slices of data (courses, grades, announcements, materials, teachers), and descriptions carefully explain the 'what do I still have to do' vs 'what's due soon' vs 'what's overdue' split. The tightest overlap is get_submission_status vs get_assignment_details, since the latter also reports the student's status, and get_whats_new aggregates several other tools' outputs — an agent may hesitate between the specific and the aggregate.

Naming Consistency5/5

Every tool is snake_case with a predictable verb_noun shape (get_my_courses, get_todo, get_missing_assignments, get_course_teachers), and the single non-get verb (export_due_dates_calendar) describes a genuinely different action. Scope qualifiers like get_my_* vs get_course_* are used consistently.

Tool Count5/5

14 tools sits in the sweet spot and each one maps to a distinct student question (what am I in, what's due, what's late, what did I get, what's new, who teaches me). The aggregate tools (get_whats_new, export_due_dates_calendar) earn their place as conveniences rather than duplicating surface for its own sake.

Completeness4/5

Read-only student workflows are well covered end-to-end: discovery of courses, per-class and cross-class assignment views, submission detail, grades, target-grade math, materials, announcements, and teacher contact. Gaps are minor but real — no way to fetch attachment/drive file contents, no archived-course access, and no write/submit operations if the server is intended to grow beyond read-only.

Maintenance

ActivityMaintained
ResponsivenessNo issues