mcpField
G
gogcli-mcp-classroom

gogcli-mcp-classroom

Local
github.com/chrischallScience & Education1Updated 4d ago

About gogcli-mcp-classroom

gogcli-mcp-classroom is an MCP server for Google Classroom through gogcli, aimed at users managing courses and class activity. It offers dedicated tools for common Classroom operations and an escape hatch for additional commands, with safeguards for actions that affect students.

Key features

  1. 01Manage courses and class rosters
  2. 02Create and edit coursework
  3. 03List, grade, and return submissions
  4. 04Manage announcements, topics, and invitations
  5. 05Run additional Classroom commands
  6. 06Guard student-impacting actions

Use cases

  1. 01Review a course roster and coursework
  2. 02Grade and return student submissions
  3. 03Manage course announcements and invitations

MCP support

Exposes gogcli-backed Google Classroom and authentication operations as MCP tools. Dedicated tools cover common tasks, while an escape hatch runs other subcommands; selected actions affecting students are refused or guarded.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"chrischall-gogcli-mcp-classroom": {
"command": "npx",
"args": [
"-y",
"gogcli-mcp-classroom"
],
"env": {
"GOG_ACCOUNT": "<GOG_ACCOUNT>",
"GOG_PATH": "<GOG_PATH>",
"DISPLAY_TZ": "<DISPLAY_TZ>",
"GOG_READONLY": "<GOG_READONLY>",
"GOG_TIMEZONE": "<GOG_TIMEZONE>"
}
}
}
}
Run commandnpx -y gogcli-mcp-classroom
Environment variables to set
GOG_ACCOUNTEmail address of the Google account to use (matches gogcli auth)
GOG_PATHOverride path to the gogcli binary (auto-discovered otherwise)
DISPLAY_TZzone for *Display fields and for interpreting naive gog values; defaults to America/New_York
GOG_READONLYblock all mutating gog API requests (injects gog's --readonly); set to 0/false/no/off (or unset) to allow writes
GOG_TIMEZONEzone gog formats naive dates in; unset, runner.ts hands gog DISPLAY_TZ so the two cannot diverge

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmgogcli-mcp-classroom4.8.1

Tools

52

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

gogcli-mcp-classroom

Warning

AI-developed project. This codebase was built and is actively maintained by Claude Code. Review all code and tool permissions before use.

Extended Google Classroom MCP server via gogcli. Includes auth tools plus dedicated Classroom tools covering courses, rosters, coursework, submissions (grading), announcements, topics, invitations, and profiles.

Requirements

  • gogcli installed and authenticated
  • Node.js 22+
brew install gogcli
gog auth add [email protected] --services classroom

Installation

npm install -g gogcli-mcp-classroom
Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "gogcli-classroom": {
      "command": "gogcli-mcp-classroom",
      "env": {
        "GOG_ACCOUNT": "[email protected]"
      }
    }
  }
}
Claude Code
claude mcp add gogcli-classroom -- gogcli-mcp-classroom

Dedicated Classroom Tools (44)

Plus 5 auth tools. Dedicated tools cover the common Classroom operations; anything not listed runs via the escape hatch.

NamespaceTools
Coursesgog_classroom_courses_list, _get, _create, _update, _delete, _archive, _unarchive
Studentsgog_classroom_students_list, _get, _add, _remove
Teachersgog_classroom_teachers_list, _get, _add, _remove
Rostergog_classroom_roster (combined students + teachers)
Courseworkgog_classroom_coursework_list, _get, _create, _update, _delete
Submissionsgog_classroom_submissions_list, _get, _grade, _return, _turn_in, _reclaim
Announcementsgog_classroom_announcements_list, _get, _create, _update, _delete
Topicsgog_classroom_topics_list, _get, _create, _update, _delete
Invitationsgog_classroom_invitations_list, _get, _create, _accept, _delete
Profilegog_classroom_profile_get
Escape hatch

gog_classroom_run runs any Classroom subcommand not covered above, including:

  • guardians (list/get/delete)
  • guardian-invitations (create/list/cancel)
  • materials (course materials)
  • coursework assignees (individualized assignment targeting)
  • announcement assignees (individualized announcement targeting)

It refuses what would reach students without the user being asked: publishing an announcement, coursework or material (--state=PUBLISHED or --scheduled), assigning an item to more students (--mode=ALL_STUDENTS or --add-student), roster adds, submission returns and guardian invitations. Use the dedicated tool, or ask the user to do it from Classroom.

Example: { "subcommand": "guardians", "args": ["list", "<studentUserId>"] }.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.