Obtain an OAuth 2.0 access token with the scope https://www.googleapis.com/auth/classroom.coursework.students
Create an assignment by sending POST https://classroom.googleapis.com/v1/courses/<courseId>/courseWork with a JSON body specifying title, workType (ASSIGNMENT), state (PUBLISHED), and maxPoints
List submissions by sending GET https://classroom.googleapis.com/v1/courses/<courseId>/courseWork/<courseWorkId>/studentSubmissions
Read the nextPageToken field in the response and pass it as pageToken in subsequent requests to paginate
Post a grade by sending PATCH https://classroom.googleapis.com/v1/courses/<courseId>/courseWork/<courseWorkId>/studentSubmissions/<submissionId>?updateMask=assignedGrade with the assignedGrade field set
Known gotchas
Only teachers and domain admins can create coursework; student-scoped tokens return a 403 PERMISSION_DENIED even if the correct scope is requested
Grades written via the API do not automatically return the submission to the student; you must also call the :return method on the submission to make the grade visible
Course IDs in Google Classroom are numeric strings; the alias 'me' is not accepted for courseId in most endpoints
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp