Provides comprehensive tools for managing Google Classroom environments, including the lifecycle management of courses, teacher and student rosters, invitations, topics, announcements, coursework, and student submissions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Classroom MCPlist all assignments and due dates for my History 101 course"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Classroom MCP (local)
This MCP server exposes multiple tools for read + write:
classroom_get_user_enrollmentsclassroom_get_courseclassroom_list_coursesclassroom_create_courseclassroom_update_courseclassroom_set_course_stateclassroom_archive_courseclassroom_activate_courseclassroom_delete_courseclassroom_list_course_studentsclassroom_list_course_teachersclassroom_add_teacher_to_courseclassroom_remove_teacher_from_courseclassroom_add_student_to_courseclassroom_remove_student_from_courseclassroom_list_invitationsclassroom_get_invitationclassroom_create_invitationclassroom_delete_invitationclassroom_accept_invitationclassroom_list_course_topicsclassroom_create_topicclassroom_create_announcementclassroom_list_courseworkclassroom_create_assignmentclassroom_list_student_submissionsclassroom_set_draft_gradeclassroom_set_assigned_gradeclassroom_turn_in_submissionclassroom_reclaim_submissionclassroom_return_submission
1) Google Workspace setup
Create (or choose) a Google Cloud project.
Enable Google Classroom API.
Create a Service Account and download its JSON key.
Enable Domain-wide delegation on that service account.
In Google Admin Console, go to
Security > API controls > Domain-wide delegationand add:Client ID: service account client ID
OAuth scopes (comma-separated):
https://www.googleapis.com/auth/classroom.courses.readonlyhttps://www.googleapis.com/auth/classroom.courseshttps://www.googleapis.com/auth/classroom.rosters.readonlyhttps://www.googleapis.com/auth/classroom.rostershttps://www.googleapis.com/auth/classroom.topics.readonlyhttps://www.googleapis.com/auth/classroom.topicshttps://www.googleapis.com/auth/classroom.announcementshttps://www.googleapis.com/auth/classroom.coursework.students.readonlyhttps://www.googleapis.com/auth/classroom.coursework.studentshttps://www.googleapis.com/auth/classroom.coursework.me
Ensure the delegated admin user can read Classroom data in your domain.
2) Local install
3) Register in Codex
4) Example prompt in Codex
5) Smoke test (portable)
Run the full write-path smoke test with automatic cleanup:
You can override inputs with flags:
Or set defaults in .env:
SMOKE_TEST_TEACHER_EMAILSMOKE_TEST_STUDENT_EMAILSMOKE_TEST_COURSE_ID
Keep generated artifacts (no cleanup) only when debugging:
6) Admin smoke test (course lifecycle + invitations)
This covers the newer admin tools:
create/update/archive/activate/delete course
add/remove teacher
create/get/list/accept/delete invitation
With explicit inputs:
Defaults can live in .env:
ADMIN_SMOKE_ADMIN_EMAILADMIN_SMOKE_TEACHER_EMAILADMIN_SMOKE_STUDENT_EMAIL
Notes
If the user exists outside your Workspace domain, Google may return 403/404.
If you need archived courses too, ask with
course_state="ARCHIVED".acting_user_emaillets you impersonate a teacher/admin for operations that require role-specific permissions.classroom_create_announcementdoes not support real Classroom topic binding; iftopic_idis sent, it is appended as text marker.classroom_create_coursedefaults toPROVISIONEDfor safer setup before going live.classroom_create_coursedefaultsownerIdtoacting_user_email(orGOOGLE_WORKSPACE_ADMIN_EMAIL) when not provided.classroom_delete_coursepermanently deletes the course; preferclassroom_archive_coursewhen in doubt.