Google Classroom MCP
Google Classroom MCP — Next.js + Google OAuth
Ein Remote-, Read-only-Google-Classroom-MCP für ChatGPT/Agent-Clients. Es ersetzt eine lokale stdio- + tokens.json-Architektur durch zustandslose Next.js-App-Router-Route-Handler, OAuth-Discovery, einen interaktiven Google-Anmeldeablauf, informationsreiche Classroom-Tools und Textextraktion aus Drive-Anhängen.
Was diese Implementierung tut
Führt
/mcpals Web-Standard-MCP-Endpunkt auf der Standard-Node.js-Laufzeit von Next.js aus.Verwendet die aktuelle
@modelcontextprotocol/server-v2-API anstelle des monolithischen v1-SDKs.Implementiert OAuth Protected Resource Metadata und OAuth Authorization Server Metadata.
Unterstützt sowohl OAuth-Client-ID-Metadaten-Dokumente (CIMD) als auch Dynamic Client Registration (DCR) für Client-Kompatibilität.
Leitet den Benutzer innerhalb des MCP-Verbindungsablaufs durch Google OAuth. Es gibt keinen lokalen
auth-CLI-Befehl und keinetokens.json.Hält die Bereitstellung zustandslos: Autorisierungsstatus, kurzlebige Autorisierungscodes, MCP-Zugriffstokens und MCP-Refresh-Tokens werden als verschlüsselte undurchsichtige JWE-Werte mit
AUTH_SECRETgespeichert.Hält das Upstream-Google-Refresh-Token aus MCP-Zugriffstokens heraus. Das normale MCP-Bearer-Token enthält nur das aktuelle kurzlebige Google-Zugriffstoken; der Google-Refresh-Grant befindet sich nur im verschlüsselten MCP-Refresh-Token, das von
/oauth/tokenverarbeitet wird.Verwendet Google-REST-APIs über
fetch, vermeidet Node-Dateisystem-APIs und den Node-lastigengoogleapis-Client.Liest Classroom-Kursarbeiten, die Abgaben des aktuellen Schülers, Ankündigungen, Kursarbeitsmaterialien, Themen und Kursmetadaten.
Normalisiert Classroom-Anhangstypen: Drive-Dateien, Links, YouTube-Videos, Formulare, Gemini-Gems und NotebookLM-Notizbücher.
Liest bei Bedarf tatsächlichen Text aus angehängten Google Docs, Sheets, Slides, PDFs und Text-/JSON-/XML-Dateien.
Die Implementierung ist bewusst read-only. Fügen Sie später Mutations-Tools hinzu und fordern Sie Schreib-Scopes nur für diese Operationen an.
Related MCP server: mcp-classroom
Modellorientierte Tools
classroom_overview
Verwenden Sie dies zuerst für die Planung. Es verbindet aktive Kurse + alle veröffentlichten Kursarbeiten + die Abgaben des authentifizierten Schülers und bezieht standardmäßig auch Ankündigungen und Kursmaterialien ein. Es unterstützt Datumsgrenzen, Statusfilter für Aufgaben, ausgewählte Kurse, optionale Arbeiten ohne Fälligkeitsdatum und begrenzte Beitragszahlen. Datumsgrenzen für Aufgaben verwenden Fälligkeitsdaten; Grenzen für Ankündigungen/Materialien verwenden die Aktualisierungs-/Erstellungszeit des Beitrags.
Typische Fragen: „Was ist diese Woche fällig?“, „Was haben meine Lehrer diese Woche gepostet?“, „Was fehlt mir?“, „Gib mir einen Plan für heute Abend.“
classroom_course_context
Gibt ein verbundenes Kursbündel zurück: Metadaten, Themen, Aufgaben + Abgabestatus, Kursarbeitsmaterialien, Ankündigungen und normalisierte Anhänge. Mit attachmentMode: "text" liest es auch eine begrenzte Anzahl von Drive-Anhängen, sodass ein Modell direkt auf einen Lehrplan oder ein Handout verweisen kann.
Typische Fragen: „Was sind die Bewertungsregeln in Chemie?“, „Was hat mein Lehrer diese Woche gepostet?“, „Verwende den Lehrplan bei der Antwort.“
classroom_assignment_context
Gibt eine bestimmte Aufgabe, ihre Rubrik, die Abgabe/Bewertung des aktuellen Schülers und den Rubrik-Bewertungsstatus sowie vom Lehrer bereitgestellte Anhänge und eingereichte Anhänge zurück. Es kann auch Anhangstext extrahieren.
Typische Fragen: „Zerlege diese Aufgabe“, „Was genau muss ich einreichen?“, „Vergleiche meine Arbeit mit den Anweisungen.“
classroom_search
Durchsucht Aufgabentitel/-beschreibungen, Materialien, Ankündigungen, Titel/Links von Lehreranhängen und die eigenen eingereichten Anhangstitel des authentifizierten Schülers in ausgewählten Kursen und einem optionalen Datumsbereich. searchAttachmentContents: true führt eine begrenzte Tiefensuche in Drive-Anhängen von Lehrern und den Abgaben des Schülers durch, nützlich, wenn Sie sich an eine Regel aus einem Lehrplan oder eine alte Datei erinnern, aber nicht an den Dateinamen.
Typische Fragen: „Finde meinen Lehrplan“, „Wo hat der Lehrer Cornell-Notizen erwähnt?“, „Finde das Handout zu Kapitel 4.“
classroom_read_attachment
Liest eine Drive-Datei anhand der ID. Google Docs, Sheets, Slides, Textdateien, JSON/XML und textbasierte PDFs geben extrahierten Text plus Metadaten zurück. Nicht unterstützte Binärtypen geben Metadaten und die Drive-URL zurück, anstatt halluzinierte Inhalte zu liefern.
OAuth-Ablauf, der von einem MCP-Client verwendet wird
Die Google-Anmeldung ist Teil der MCP-Verbindung und kein separater Einrichtungsbefehl:
MCP client
-> /mcp (no bearer token)
<- 401 + WWW-Authenticate + resource_metadata
-> /.well-known/oauth-protected-resource/mcp
-> /.well-known/oauth-authorization-server
-> /oauth/authorize (PKCE)
-> accounts.google.com
-> /oauth/google/callback
-> client redirect URI with MCP authorization code
-> /oauth/token
<- MCP access token + refresh token
-> /mcp (Bearer <MCP access token>)Ihr Google-Refresh-Token wird niemals zum Bearer-Token, das an /mcp gesendet wird; es bleibt im verschlüsselten Refresh-Grant des Connectors. Dadurch verhält sich die Erfahrung wie ein normales „Mit Google verbinden“-MCP, anstatt Sie aufzufordern, Anmeldeinformationen in den Agenten einzufügen.
Google-Cloud-Einrichtung
Erstellen/auswählen eines Google-Cloud-Projekts und Aktivieren der Google-Classroom-API, Google-Drive-API, Google-Docs-API, Google-Sheets-API und Google-Slides-API.
Konfigurieren Sie den OAuth-Zustimmungsbildschirm. Für eine private/persönliche Bereitstellung halten Sie das erlaubte Konto zusätzlich mit
ALLOWED_GOOGLE_EMAILSeingeschränkt.Erstellen Sie einen OAuth-2.0-Webanwendungs-Client.
Fügen Sie diese exakte Google-Redirect-URI hinzu:
https://YOUR_DOMAIN/oauth/google/callback.Kopieren Sie die Client-ID/das Client-Geheimnis in die Vercel-Umgebungsvariablen, die in
.env.examplegezeigt werden.
Die angeforderten Google-Scopes sind schreibgeschützte Classroom-Scopes plus drive.readonly. drive.readonly ist ein eingeschränkter Google-Scope, daher kann eine öffentliche/mehrbenutzerfähige Produktions-App eine Google-Verifizierung erfordern. Eine Google-OAuth-App im Testmodus kann auch kurzlebige Refresh-Grants haben; verschieben Sie die Zustimmungskonfiguration in den entsprechenden Produktionszustand, wenn Sie bereit sind.
Vercel-Bereitstellung
Setzen Sie die Umgebungsvariablen aus .env.example, stellen Sie bereit und verwenden Sie dann:
https://YOUR_DOMAIN/mcpals Remote-MCP-Server-URL in Ihrem MCP-Client / ChatGPT-Custom-App. Die erste nicht authentifizierte MCP-Anfrage erhält die OAuth-Herausforderung; der Client entdeckt die OAuth-Metadaten dieses Servers und öffnet den Autorisierungsablauf. Der Autorisierungsendpunkt leitet den Browser dann an Google weiter, und der Callback gibt einen MCP-Autorisierungscode an den Client zurück.
Für ChatGPT halten Sie offline_access beworben. Diese Implementierung fügt es auch dann hinzu, wenn ein Client es weglässt, damit ein MCP-Refresh-Token ausgestellt werden kann und der Connector nicht bei jedem Ablauf des kurzlebigen Zugriffstokens eine Google-Anmeldung benötigt.
Laufzeit
Alle MCP- und OAuth-Endpunkte verwenden Next.js-App-Router-Route-Handler auf der Standard-Node.js-Laufzeit. Dies entspricht den Next.js-16-Richtlinien und vermeidet Edge-Runtime-Paketbeschränkungen. Die Implementierung verwendet dennoch wo praktikabel portable Web-APIs.
Sicherheitshinweise
Dieses Projekt ist bewusst zustandslos. Das macht die Vercel-Bereitstellung einfach, bedeutet aber, dass der Server ein bereits ausgestelltes MCP-Refresh-Token nicht zentral widerrufen oder den einmaligen Verbrauch von Autorisierungscodes ohne persistenten Speicher garantieren kann. Google-Widerruf oder rotierendes AUTH_SECRET macht den Zugriff global ungültig. Wenn Sie dies von einem persönlichen Connector in einen Mehrbenutzerdienst verwandeln, ersetzen Sie die eigenständige Refresh-Token-/Code-Speicherung durch einen datenbank-/KV-gestützten Autorisierungsserver, der Widerruf, einmalige Code-Verwendung, Token-Rotation/Wiederverwendungserkennung und Konto-Trennungen unterstützt.
Setzen Sie ALLOWED_GOOGLE_EMAILS für eine persönliche Bereitstellung. Setzen Sie ALLOWED_CIMD_HOSTS=chatgpt.com für ChatGPT; CIMD-URL-Abruf wird verweigert, wenn diese Whitelist leer ist.
Aktuelle API-Grenzen
„Volle Beitragsunterstützung“ bedeutet hier die Classroom-Objekte, die die öffentliche API einem Schüler zugänglich macht: Kursarbeiten, Kursarbeitsmaterialien und Ankündigungen, zusammengeführt in modellfreundliche Ansichten. Classroom stellt nicht jedes Element der Website-UI als generischen Beitrags-/Kommentar-Feed bereit. Add-ons von Drittanbietern für Classroom, Nur-Scan-PDFs, Office-Binärdateien, Videos und beliebige verlinkte Webseiten werden als typisierte Metadaten/Links zurückgegeben, sofern kein dedizierter Extraktor hinzugefügt wird.
Lokale Entwicklung
Kopieren Sie .env.example nach .env.local, setzen Sie APP_ORIGIN auf den HTTPS-Ursprung, den Ihr OAuth-Client erreichen kann, und dann:
npm install
npm run devGoogle OAuth erfordert normalerweise eine registrierte Redirect-URI. Verwenden Sie für lokales interaktives OAuth daher einen HTTPS-Tunnel und setzen Sie APP_ORIGIN auf den Ursprung dieses Tunnels.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to access and interact with Google Classroom data, allowing users to view courses, course details, and assignments through natural language commands.1,3056MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Google Classroom enabling reading assignments, checking submission states, uploading files to Drive, and viewing attachments, with optional Playwright automation for write operations restricted by Workspace admins.
- AlicenseAqualityDmaintenanceUnified MCP server for Google Classroom, Drive, and Docs, enabling AI assistants to manage courses, assignments, files, and documents.17MIT
- FlicenseNot gradedqualityCmaintenanceIntegrates Google Classroom with LLMs and AI agents via MCP. Enables listing courses, assignments, announcements, and generating prioritized TODO summaries.1
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/elijah629/classroom-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server