# Google Classroom — how to use (mcp.ai)

Google Classroom is a free web service developed by Google for schools that aims to simplify creating, distributing, and grading assignments

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_google_classroom?ms=1781542020000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `google_classroom_classrooms_course_work_materials_list`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/google_classroom`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/google_classroom/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/google_classroom/classrooms/course/work/materials/list` — Tool to list courseworkmaterials in a course. use after confirming a valid courseid; supports pagination and ordering.
  - body: { orderBy?: string, courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/create` — Tool to create a coursework item in a course. use when you need to assign an assignment or question to students immediately or on a schedule.
  - body: { state?: string, title: string, dueDate?: object, dueTime?: object, topicId?: string, courseId: string, workType: string, materials?: object[], maxPoints?: number, assignment?: object, description?: string, scheduledTime?: string, shortAnswerQuestion?: object, multipleChoiceQuestion?: object, submissionModificationMode?: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/delete` — Tool to delete a specific coursework. use when you need to remove a coursework item from a course after confirming the ids.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/get` — Tool to get details of a specific coursework. use when detailed information about a particular assignment is needed.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/list` — Tool to list coursework in a course. use after verifying courseid.
  - body: { orderBy?: string, courseId: string, pageSize?: integer, pageToken?: string, previewVersion?: string, courseWorkStates?: string[] }
- `POST https://api.mcp.ai/api/google_classroom/course/work/materials/create` — Tool to create course work material. use when adding resources or notes to a course.
  - body: { state: string, title?: string, topicId?: string, courseId: string, materials?: object[], description?: string, assigneeMode?: string, scheduledTime?: string, associatedWithDeveloper?: boolean, individualStudentsOptions?: object }
- `POST https://api.mcp.ai/api/google_classroom/course/work/materials/get` — Tool to get a coursework material. use when you need to retrieve details of a specific coursework material by course and material id.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/materials/list` — Tool to list course work materials in a course. use when you need to retrieve and paginate materials for a given courseid.
  - body: { orderBy?: string, courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/patch` — Tool to update fields of a coursework. use when you need to modify specific details of an existing coursework after confirming which fields to update.
  - body: { id: string, title?: string, dueDate?: object, dueTime?: object, topicId?: string, courseId: string, workType?: string, maxPoints?: number, updateMask: string, description?: string, scheduledTime?: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/student/submissions/list` — Tool to list student submissions for a specific coursework. use when you need to fetch or paginate student submissions by course and coursework, optionally filtering by user, state, or timeliness.
  - body: { late?: string, states?: string[], userId?: string, courseId: string, pageSize?: integer, pageToken?: string, courseWorkId: string }
- `POST https://api.mcp.ai/api/google_classroom/course/work/student/submissions/reclaim` — Tool to reclaim a student submission for editing. use after a student requests to edit their turned-in submission, resetting its state to created.
  - body: { id: string, courseId: string, courseWorkId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/announcements/create` — Tool to create an announcement in a course. use after confirming the course id is valid.
  - body: { text?: string, state?: string, courseId: string, materials?: object[], assigneeMode?: string, scheduledTime?: string, individualStudentsOptions?: object }
- `POST https://api.mcp.ai/api/google_classroom/courses/announcements/delete` — Tool to delete an announcement. use after confirming the announcement id.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/announcements/get` — Tool to get an announcement. use when you need to fetch an announcement by course and announcement id.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/announcements/list` — Tool to list announcements in a course. use after you have the course id to page through announcements.
  - body: { orderBy?: string, courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/announcements/patch` — Tool to update fields of an announcement. use when you need to modify specific details of an existing announcement after confirming which fields to update.
  - body: { id: string, text?: string, state?: string, courseId: string, materials?: object[], updateMask: string, assigneeMode?: string, scheduledTime?: string, individualStudentsOptions?: object }
- `POST https://api.mcp.ai/api/google_classroom/courses/create` — Tool to create a new course. use when a teacher needs to establish a classroom course before enrollment.
  - body: { name: string, room?: string, ownerId: string, section?: string, courseState?: string, description?: string, descriptionHeading?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/delete` — Tool to delete a course. use when you need to remove a course after confirming the course id.
  - body: { id: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/get` — Tool to get details for a specific course. use when you need full course information by id.
  - body: { id: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/list` — Tool to list all courses accessible to the authenticated user. use when you need a paginated list of courses.
  - body: { pageSize?: integer, pageToken?: string, studentId?: string, teacherId?: string, courseStates?: string[] }
- `POST https://api.mcp.ai/api/google_classroom/courses/patch` — Tool to update one or more fields of a classroom course. use after retrieving course details and confirming fields to update.
  - body: { id: string, name?: string, room?: string, ownerId?: string, section?: string, updateMask: string, courseState?: string, description?: string, descriptionHeading?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/students/guardians/list` — Tool to list guardians of a student in a course. use when you need to retrieve and paginate guardians for a given student in a course.
  - body: { courseId: string, pageSize?: integer, pageToken?: string, studentId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/students/list` — Tool to list students in a course. use after you have the course id to page through enrolled students.
  - body: { courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/teachers/get` — Tool to get teacher enrollment. use when you need to retrieve a specific teacher in a course by courseid and userid.
  - body: { fields?: string, userId: string, courseId: string, quotaUser?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/teachers/list` — Tool to list teachers in a course. use after you have the course id to page through enrolled teachers.
  - body: { courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/topics/create` — Tool to create a course topic. use when you need to organize course content into named sections.
  - body: { name: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/topics/delete` — Tool to delete a course topic. use when you need to remove a topic from a course after confirming the course and topic ids.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/topics/get` — Tool to get a course topic. use when you need to retrieve details of a specific course topic by id after confirming the course and topic ids.
  - body: { id: string, courseId: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/topics/list` — Tool to list topics in a course. use when you have confirmed the courseid and need to retrieve its topics.
  - body: { courseId: string, pageSize?: integer, pageToken?: string }
- `POST https://api.mcp.ai/api/google_classroom/courses/topics/patch` — Tool to update fields of a course topic. use when you need to rename a topic after confirming its current details.
  - body: { id: string, name?: string, courseId: string, updateMask?: string }
- `POST https://api.mcp.ai/api/google_classroom/invitations/create` — Tool to create an invitation for a user to a course. use after confirming the course id is valid.
  - body: { role: string, userId: string, courseId: string }

## More
- Page: https://mcp.ai/google_classroom
- Agent spec (llms.txt): https://mcp.ai/google_classroom/llms.txt
- Postman collection: https://mcp.ai/google_classroom/postman.json
