Manage courses, assignments, rosters and student activity within Google Classroom. Create learning workflows, track submissions and organize educational content across classrooms.
Hermes is Nous Research's command-line agent. MCP servers are declared in its YAML config and reloaded without a restart.
This guide connects Google Classroom to Hermes through MewCP, so Hermes can use Google Classroom's 76 tools, like create_course_alias, delete_course_alias and list_course_aliases, without your Google Classroom credentials ever reaching the app.
Google Classroom signs in through managed OAuth. MewCP stores the token encrypted, refreshes it before it expires and injects it only at call time. Your agent never holds it, so it can never leak it.
More apps
AI's impact on real-world sectors, as a structured record for agents: source-linked headlines placed in one of 18 sectors (healthcare, law, retail, government, defense and more), with outlet, country and time, since June 2026
MoSPI MCP Server provides AI agents access to official Indian government statistics from the Ministry of Statistics and Programme Implementation, covering 500+ indicators across employment, prices, industry, national accounts, health, education, trade, and more.
PopHIVE provides AI agents with access to community-level U.S. public health data, enabling them to explore disease trends, compare health indicators across states and counties, analyze vaccination rates and chronic conditions, and investigate social determinants of health using data from multiple sources.
Cliometry provides AI agents with climate and environmental data for analyzing emissions, sustainability metrics, and climate-related risks. Specific data sources and supported analysis tools could not be verified from the available documentation.
Other clients
Google Classroom works the same way in every client below. Pick yours for its own guide.
Free to start.
Scope access to the exact Google Classroom tools and accounts you allow, work and personal side by side. Anything outside that scope is refused at call time, even when the model asks for it.
Each call is logged: what ran, on which account, and whether it worked. Failures come back structured, so the agent knows whether to retry instead of guessing.
Every app sits behind one secure MCP URL, and there is no server for you to deploy or keep running. Add an integration in the dashboard and it is live on the next call, with no config to change and no new credentials to wire up. Tools load only when a task needs them, so your agent stays fast and focused however many apps you connect.
Edit config.yaml in your Hermes config directory (~/.hermes).
Put this under the top-level "mcp_servers:" key.
Run /reload-mcp in Hermes, or start a fresh session. Sign in when the browser window opens.
Start a new chat and ask: "List the tools you can use from MewCP." You should see your connected apps.
Creates an alias for a course and returns it. The alias must start with `d:` (domain-scoped) or `p:` (project-scoped), and fails with ALREADY_EXISTS if it is taken.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course alias. This action is irreversible — the alias (the course itself is not deleted) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Lists the aliases of a course. Returns each alias string plus `nextPageToken` for paging.
Creates an announcement in a course and returns it, optionally with materials, a draft/scheduled state and specific student assignees. Attachments must be visible to the creator.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes an announcement. This action is irreversible — the announcement and its materials link cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one announcement of a course by ID and returns its text, state, materials, assignee mode and timestamps.
Lists announcements in a course, filtered by `announcement_states`. Students only see PUBLISHED announcements; teachers and domain admins see all. Returns announcements plus `nextPageToken`.
Changes the assignee mode of an announcement (all students or specific students) and adds or removes individual students, then returns the announcement. Only a teacher of the course can call it. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Updates the provided fields of an announcement (text, state, scheduled time) and returns the updated announcement. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Creates a course owned by `owner_id`, who is also added as its teacher, and returns the new course. Non-admin users can only create courses they own; domain admins can create courses owned by any user in their domain, and an alias passed in `id` fails with ALREADY_EXISTS if it is taken.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course. This action is irreversible — the course and its classwork, announcements and roster links cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one course by ID or alias and returns its settings, state, links, owner and teacher/course group emails.
Retrieves the grading period settings of a course and returns each grading period with its start and end dates, plus whether the settings apply to existing coursework.
Lists the courses the user can view, most recently created first, optionally filtered by `student_id`, `teacher_id` (mutually exclusive) and `course_states`. Returns courses plus `nextPageToken` for paging.
Replaces a course with the supplied field values (full update); `name` and `owner_id` are required, and `levels` is the one field kept when omitted. Use update_course to change only some fields or to clear `levels`. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Updates only the provided fields of a course and returns the updated course. Fails if the course is not modifiable or the title contains a URL. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Adds, removes or modifies grading periods in a course's grading period settings. Both the requesting user and the course owner must be licensed to modify grading periods. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Creates course work (assignment, short-answer or multiple-choice question) in a course and returns it. The item is tied to the OAuth client's project, so later edits and deletes must use a client from the same project.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course work item. This action is irreversible — the item and its student submissions cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one course work item by ID and returns its title, work type, state, due date, max points, materials, assignee mode and topic.
Lists course work in a course, filtered by `course_work_states` and ordered by `order_by`. Students only see PUBLISHED items; teachers and domain admins see all. Returns items plus `nextPageToken`.
Changes the assignee mode of a course work item (all students or specific students) and adds or removes individual students, then returns the item. Only a teacher of the course can call it. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Updates the provided fields of a course work item and returns it. Must be called with an OAuth client from the project that created the item. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Creates a course work material (a classwork item that carries materials but no grade) in a course and returns it. Attachments must be visible to the creator.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course work material. This action is irreversible — the material item and its links to attached materials cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one course work material by ID and returns its title, description, materials, state, topic and assignee settings.
Lists course work materials in a course, filtered by state, linked URL or Drive file ID. Students only see PUBLISHED materials; teachers and domain admins see all. Returns materials plus `nextPageToken`.
Updates the provided fields of a course work material (title, description, materials, state, scheduled time, topic) and returns the updated material. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Creates a guardian invitation for a student and emails the guardian to confirm; once they accept, the invitation state becomes COMPLETED and a guardian link is created. Only `student_id` and `invited_email_address` may be set.
Retrieves one guardian invitation by ID and returns its state, invited email address and creation time.
Lists the guardian invitations of a student, filtered by `invited_email_address` and `states`. Returns invitations plus `nextPageToken` for paging.
Withdraws a guardian invitation by changing its `state` from PENDING to COMPLETE, the only supported change, and returns the invitation. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a guardian link. This action is irreversible — the guardian's access, so they stop receiving guardian notifications and can no longer be retrieved through the API cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one guardian of a student by guardian ID and returns the guardian's profile and invited email address.
Lists the guardians of a student, optionally filtered by `invited_email_address`. Pass `-` as `student_id` to span every student the user can view guardians for. Returns guardians plus `nextPageToken`.
Accepts a course invitation, which consumes it and adds the invited user as a teacher or student of the course. Only the invited user can accept; returns the invitation as it was before. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Creates an invitation for a user to join a course as student, teacher or owner and returns it. Only one invitation per user and course can exist, so delete and re-create it to change it.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course invitation. This action is irreversible — the pending invitation (a new one must be created to invite the user again) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one course invitation by ID and returns the invited user, course and role.
Lists course invitations the user can view, filtered by `user_id` and `course_id`; at least one of the two must be provided. Returns invitations plus `nextPageToken` for paging.
Creates a push-notification registration so Classroom sends the given `feed` to a Cloud Pub/Sub topic, and returns the registration with its server-assigned ID and expiry. The topic must already exist and Classroom must be allowed to publish to it.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a push-notification registration. This action is irreversible — the registration, so Classroom stops sending notifications for its feed cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Creates a rubric on a course work item and returns it. The user and course owner need rubric licensing, and the call must use the OAuth client's project that created the course work.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a rubric. This action is irreversible — the rubric and any grading criteria set on it cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one rubric of a course work item by ID and returns its criteria, levels and linked spreadsheet.
Lists the rubrics of a course work item. Returns rubrics plus `nextPageToken` for paging.
Updates the rubric of a course work item, found by `rubric_id` if given or else the item's only rubric, and returns it. Rubric edits are limited once grading has started, and the call must use the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Updates a rubric by ID and returns it. Rubric edits are limited once grading has started, and the call must use the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Adds a student to a student group and returns the membership. Fails with ALREADY_EXISTS if the student is already a member.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a student from a student group. This action is irreversible — the student's membership in the group (the student stays enrolled in the course) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Lists the student members of a student group. Returns members plus `nextPageToken` for paging.
Creates a student group in a course and returns it.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a student group. This action is irreversible — the group and its memberships (the students stay enrolled in the course) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Lists the student groups of a course. Returns groups plus `nextPageToken` for paging.
Updates the provided fields of a student group (its title) and returns the updated group. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Retrieves one student submission by ID and returns its state, grades, late flag, attachments and submission history.
Lists student submissions for a course work item, filtered by `states`, `user_id` and `late`. Pass `-` as `course_work_id` to span all course work in the course; students see only their own work, teachers and domain admins see all. Returns submissions plus `nextPageToken`.
Adds attachments to a student submission and returns it. Only works for submissions of ASSIGNMENT course work, and the call must use the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Reclaims a turned-in student submission on behalf of the student who owns it, returning ownership of attached Drive files to the student, and returns the submission afterwards. Only the owning student can call it, using the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Returns a student submission to the student, transferring ownership of attached Drive files to them, and returns the submission afterwards. It does not copy `draftGrade` into `assignedGrade`. Only a teacher of the course can call it, using the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Turns in a student submission, transferring ownership of attached Drive files to the teacher, and returns the submission afterwards. Only the owning student can call it, using the OAuth client's project that created the course work. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Updates the provided fields of a student submission, such as `draft_grade` or `assigned_grade`, and returns it. Must use the OAuth client's project that created the course work (or a grade-sync add-on attachment on it). NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Adds a user as a student of a course and returns the student. Domain admins can add any user in their domain directly; students can add themselves by passing the course's `enrollment_code`.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a student from a course. This action is irreversible — the student's enrollment in the course (they must be re-added or re-invited to rejoin) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one student of a course by user ID or email and returns their profile and course membership.
Lists the students of a course that the user can view. Returns students plus `nextPageToken` for paging.
Adds a user as a teacher of a course and returns the teacher. Only domain admins can add teachers directly; other users must send an invitation with create_invitation instead.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a teacher from a course. This action is irreversible — the teacher's membership in the course (they must be re-added or re-invited to rejoin) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one teacher of a course by user ID or email and returns their profile and course membership.
Lists the teachers of a course that the user can view. Returns teachers plus `nextPageToken` for paging.
Creates a topic in a course and returns it. Topic names are case sensitive and the course may reach a topic limit.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes a course topic. This action is irreversible — the topic (coursework and materials filed under it are not deleted) cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves one topic of a course by ID and returns its name, ID and last update time.
Lists the topics of a course that the user can view. Returns topics plus `nextPageToken` for paging.
Updates the provided fields of a topic (its name) and returns the updated topic. NOTE: this overwrites the current field values — the original state is not stored by the API after the call. The response includes both the before and after state so you have a full record of what changed.
Retrieves the profile of a user by ID, email or `me` and returns their name and, with the matching scopes, email address and photo URL.