Skip to main content
Glama

Google Classroom MCP (local)

This MCP server exposes multiple tools for read + write:

  • classroom_get_user_enrollments

  • classroom_get_course

  • classroom_list_courses

  • classroom_create_course

  • classroom_update_course

  • classroom_set_course_state

  • classroom_archive_course

  • classroom_activate_course

  • classroom_delete_course

  • classroom_list_course_students

  • classroom_list_course_teachers

  • classroom_add_teacher_to_course

  • classroom_remove_teacher_from_course

  • classroom_add_student_to_course

  • classroom_remove_student_from_course

  • classroom_list_invitations

  • classroom_get_invitation

  • classroom_create_invitation

  • classroom_delete_invitation

  • classroom_accept_invitation

  • classroom_list_course_topics

  • classroom_create_topic

  • classroom_create_announcement

  • classroom_list_coursework

  • classroom_create_assignment

  • classroom_list_student_submissions

  • classroom_set_draft_grade

  • classroom_set_assigned_grade

  • classroom_turn_in_submission

  • classroom_reclaim_submission

  • classroom_return_submission

1) Google Workspace setup

  1. Create (or choose) a Google Cloud project.

  2. Enable Google Classroom API.

  3. Create a Service Account and download its JSON key.

  4. Enable Domain-wide delegation on that service account.

  5. In Google Admin Console, go to Security > API controls > Domain-wide delegation and add:

    • Client ID: service account client ID

    • OAuth scopes (comma-separated):

      • https://www.googleapis.com/auth/classroom.courses.readonly

      • https://www.googleapis.com/auth/classroom.courses

      • https://www.googleapis.com/auth/classroom.rosters.readonly

      • https://www.googleapis.com/auth/classroom.rosters

      • https://www.googleapis.com/auth/classroom.topics.readonly

      • https://www.googleapis.com/auth/classroom.topics

      • https://www.googleapis.com/auth/classroom.announcements

      • https://www.googleapis.com/auth/classroom.coursework.students.readonly

      • https://www.googleapis.com/auth/classroom.coursework.students

      • https://www.googleapis.com/auth/classroom.coursework.me

  6. Ensure the delegated admin user can read Classroom data in your domain.

2) Local install

cd /home/carlos/classroom-mcp bash setup.sh cp .env.example .env # edit .env

3) Register in Codex

codex mcp add classroom -- /home/carlos/classroom-mcp/run.sh codex mcp list

4) Example prompt in Codex

En qué materias está registrado el usuario guiarodrigo@asociacionmontessori.mx?

5) Smoke test (portable)

Run the full write-path smoke test with automatic cleanup:

cd /home/carlos/classroom-mcp ./smoke_test.sh

You can override inputs with flags:

./smoke_test.sh \ --teacher-email carlos@certificacionmontessori.com \ --student-email carlos@asociacionmontessori.com.mx \ --course-id 765463029199

Or set defaults in .env:

  • SMOKE_TEST_TEACHER_EMAIL

  • SMOKE_TEST_STUDENT_EMAIL

  • SMOKE_TEST_COURSE_ID

Keep generated artifacts (no cleanup) only when debugging:

./smoke_test.sh --keep-artifacts

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

cd /home/carlos/classroom-mcp ./admin_smoke_test.sh

With explicit inputs:

./admin_smoke_test.sh \ --admin-email admin@asociacionmontessori.com.mx \ --teacher-email carlos@certificacionmontessori.com \ --student-email carlos@asociacionmontessori.com.mx

Defaults can live in .env:

  • ADMIN_SMOKE_ADMIN_EMAIL

  • ADMIN_SMOKE_TEACHER_EMAIL

  • ADMIN_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_email lets you impersonate a teacher/admin for operations that require role-specific permissions.

  • classroom_create_announcement does not support real Classroom topic binding; if topic_id is sent, it is appended as text marker.

  • classroom_create_course defaults to PROVISIONED for safer setup before going live.

  • classroom_create_course defaults ownerId to acting_user_email (or GOOGLE_WORKSPACE_ADMIN_EMAIL) when not provided.

  • classroom_delete_course permanently deletes the course; prefer classroom_archive_course when in doubt.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carlosrm22/mcp-classroom-codex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server