gdocs
gdocs — Google-Docs-Review-Schleife für Claude Code
Ein MCP-Server, der Claude Code ermöglicht, ein Google Doc und dessen Kommentarthreads zu lesen und dann Korrekturen in dasselbe Doc unter derselben URL zurückzuschreiben.
Entwickelt für den Workflow, in dem Markdown im Repo die Quelle der Wahrheit ist und Google Docs nur die Review-Oberfläche darstellt. Er erspart den Kopier-und-Einfüge-Umweg: kein Einfügen des Entwurfs in Docs, kein Zurückkopieren des Review-Kommentare ins Terminal.
Der Server ist auf Benutzerebene installiert und funktioniert daher in jedem Projekt.
Voraussetzungen
Node 18+
Die
claude-CLIEin Google-Konto und etwa 10 Minuten in der Google Cloud Console
Installation
git clone https://github.com/uma-victor1/gdocs-mcp.git
cd gdocs-mcp
./install.shDas installiert die Abhängigkeiten, überprüft, ob der Server startet, und registriert ihn bei Claude Code auf Benutzerebene. Die beiden folgenden Schritte für die Zugangsdaten erledigst du danach selbst.
1. Google Cloud, einmalig
Erstelle ein Projekt: https://console.cloud.google.com/projectcreate
Aktiviere Google Docs API und Google Drive API (APIs & Services > Library)
OAuth-Zustimmungsbildschirm: Der Benutzertyp External ist für ein persönliches Konto in Ordnung. Füge unter Zielgruppe deine eigene Adresse als Testnutzer hinzu – diesen Schritt zu überspringen ist der häufigste Grund, warum die Zustimmung fehlschlägt.
Anmeldedaten > Anmeldedaten erstellen > OAuth-Client-ID > Desktop-App > JSON-Datei herunterladen
Speichere die Datei als
~/.config/gdocs-mcp/credentials.json
Die Zugangsdaten liegen absichtlich außerhalb jedes Repos, damit git add -A sie niemals committen kann.
2. Autorisieren, einmal
npm run authGoogle warnt, dass die App unverifiziert ist. Das ist bei einer App mit einem einzigen Nutzer zu erwarten: Erweitert > Weiter zu ... (unsicher). Das Refresh-Token landet in ~/.config/gdocs-mcp/token.json, Modus 0600.
Starte Claude Code neu und bestätige danach mit claude mcp list.
Die 7-Tage-Neuautorisierung und warum
Solange sich der Zustimmungsbildschirm im Modus Testing befindet, lässt Google das Refresh-Token alle 7 Tage ablaufen. Das ist dokumentiertes Verhalten für externe Apps im Testmodus, kein Bug, und es gibt daran kein Weg vorbei für diesen Satz von Scopes: auth/drive ist ein eingeschränkter Scope, und die Veröffentlichung eines eingeschränkten Scopes in die Produktion erfordert eine CASA-Sicherheitsprüfung – das ist für ein Ein-Personen-Tool nicht sinnvoll.
So schlägt etwa einmal pro Woche ein Tool-Aufruf mit „Authorisation expired“ fehl. Beheben:
npm run authFünfzehn Sekunden. Wenn du ein Google Workspace-Konto hast, kannst du das vollständig vermeiden: Erstelle das Cloud-Projekt unter dieser Organisation und stelle den Benutzertyp des Zustimmungsbildschirms auf Intern um. Interne Apps haben keine 7-Tage-Ablauf und keine Liste von Testnutzern.
Tools
Tool | Wirkung |
| Durchsucht Drive nach Docs mit dem Titel |
| Body als Markdown + Kommentar-Threads, jeweils link zu Ankertext |
| Nur Kommentar-Threads – der einfache „Neues Feedback?“-Check |
| Exaktes Suchen und Ersetzen an Ort Sache; behält Kommentar-Anker |
| Fügt formatierten Absatz am Ende hinzu (Überschriftsebene, Schriftgröße, Farbe, fett/kursiv); fügt nur hinzu Anmerkungen, erhält Anker |
| Ersetzt den gesamten Body aus lokaler Datei; erfordert |
| Eine Antwort auf einen Thread zu posten |
| Löst einen Thread mit Abschlussnotiz auf |
| Neues Doc aus Markdown-Datei – einmal pro Artikel |
Alle Tools akzeptieren eine Doc-URL oder eine rohe fileId.
Der Kommentar-Anker-Kompromiss
Google verankert jeden Kommentar an einer Textstelle. Wird diese Stelle umgeschrieben, löst sich der Thread oder wird automatisch aufgelöst. Also:
Kleine Korrekturen →
replace_text. Anker überleben; Reviewer behalten ihren Kontext.Strukturelle Umschreibungen →
push_markdown. Schneller, aber Threadverlust luft. Sie liefert die Zahl der vorher offenen Threads, damit der Schaden sichtbar ist statt still unbemerkt bleibt.Hinzufügen statt umschreiben →
append_text. Es wird nur am Ende eingefügt, damit kein Text verschoben wird kein Anker bricht.Antwort bevor du überschreibst.
reply_commentsieht der Nachweis, was geändert wurde und warum.
Warum dieses und nicht ein Standard-Server
Ein MCP-Server, der ein OAuth-Token für Docs enthält, kann jedes Dokument im Konto lesen und neu schreiben. Es gibt kein First-Party-Google- oder Anthropic-Docs-MCP; jede veröffentlichte Lösung ist ein Drittanbieter-Paket von einem einzelnen Publisher. Das sind ~250 Zeilen auf Basis des Anthropic MCP SDK und der Google-Client-Bibliothek – klein genug, um es zu lesen, bevor man ihm vertraut.
Nur-Lese-Modus
claude mcp remove gdocs -s user
claude mcp add gdocs -s user -e GDOCS_MCP_READONLY=1 -- node "$PWD/server.mjs"Lesen funktioniert weiterhin; jedes Schreib-Tool verweigert die. Nützlich, wenn jemand anderes die Eigentümer eines Docs ist.
Fehlerbehandlung
Symptom | Fix |
„Not authorised yet“ |
|
| Die angemeldete Adresse ist kein freigegebener Tester. Füge ihn unter OAuth-Zustimmungsbildschirm > Zielgruppe > Testnutzer hinzu, matter, retry |
„Authorisation expired“ nach etwa Woche | Im Testmodus zu erwarten. |
| Aktiviere Docs-API und Drive-API auf diesem Cloud-Projekt |
„no refresh token“ | Widerrufe Zugriff unter https://myaccount.google.com/permissions und führe |
Server fehlt in Claude Code |
|
Doc wird als einfacher Text exportiert | Doc enthält Inhalt, den Google nicht als Markdown rendern kann; der Inhalt wird dennoch geliefert |
Du kannst den Server jederzeit unabhängig mit npm run smoke überprüfen.
Um ein einzelnes Tool ohne Claude Code zu benutzen:
node call.mjs read_comments '{"doc":"https://docs.google.com/document/d/FILEID/edit"}'Zugriff widerrufen
Öffne https://myaccount.google.com/permissions und lösche danach ~/.config/gdocs-mcp/token.json.
Aufbau
server.mjs the nine tools
google.mjs auth + Drive/Docs clients; credential paths
auth.mjs one-time interactive OAuth (npm run auth)
smoke.mjs starts the server, lists tools (npm run smoke)
call.mjs invoke one tool from the shell, for debugging
install.sh deps, verify, register at user scope
docs/guide.html the setup walkthrough as a standalone pageLizenz
MIT. Siehe LICENSE.
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 Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Read, edit, publish, and preview your pepita websites from Claude.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
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/uma-victor1/gdocs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server