gdocs
gdocs — bucle de revisión de Google Docs para Claude Code
Un servidor MCP que permite a Claude Code leer un documento de Google Docs y sus hilos de comentarios, y luego escribir correcciones de vuelta en el mismo documento en la misma URL.
Creado para el bucle en el que el Markdown de un repositorio es la fuente de verdad y Google Docs es solo el lugar de revisión. Elimina el ir y venir de copiar y pegar: ni pegar el borrador en Docs ni pegar los comentarios de los revisores de vuelta en la terminal.
Se instala a nivel de usuario, así que funciona en todos los proyectos.
Requisitos
Node 18+
La CLI de
claudeUna cuenta de Google y unos 10 minutos en Google Cloud Console
Instalación
git clone https://github.com/uma-victor1/gdocs-mcp.git
cd gdocs-mcp
./install.shEso instala las dependencias, verifica que el servidor arranca y lo registra con Claude Code a nivel de usuario. Luego haz tú mismo los dos pasos de credenciales que aparecen a continuación.
1. Google Cloud, una sola vez
Crea un proyecto: https://console.cloud.google.com/projectcreate
Habilita Google Docs API y Google Drive API (APIs y servicios > Biblioteca)
Pantalla de consentimiento OAuth: el tipo de usuario Externo es válido para una cuenta personal. En Audiencia, añade tu propia dirección como usuario de prueba — saltarse este paso es la causa más común de que fallen los permisos.
Credenciales > Crear credenciales > ID de cliente OAuth > Aplicación de escritorio > Descargar JSON
Guárdalo como
~/.config/gdocs-mcp/credentials.json
Las credenciales viven fuera de cualquier repositorio a propósito, así git add -A nunca podrá hacerles commit.
2. Autoriza, una sola vez
npm run authGoogle avisa de que la aplicación no está verificada. Es lo esperado en una aplicación de un solo usuario: Avanzado > Ir a ... (no seguro). El token de actualización se guarda en ~/.config/gdocs-mcp/token.json, con modo 0600.
Reinicia Claude Code y confírmalo con claude mcp list.
La reautorización a los 7 días, y por qué
Mientras la pantalla de consentimiento esté en Pruebas, Google expira el token de actualización cada 7 días. Este es un comportamiento documentado para las aplicaciones externas en pruebas, no es un error, y no hay forma de evitarlo para este conjunto de ámbitos: auth/drive es un ámbito restringido, y publicar en producción con un ámbito restringido en el ámbito de un usuario — no merece la pena para una herramienta de una persona.
Así que, aproximadamente una vez por semana, una llamada de herramienta fallará con «Authorisation expired». La solución:
npm run authQuince segundos. Si tienes una cuenta de Google Workspace, puedes evitarlo por completo: crea el proyecto de Cloud dentro de esa organización y ajusta el tipo de usuario de la pantalla de consentimiento a Interno. Las aplicaciones internas no tienen caducidad de 7 días ni lista de usuarios de prueba.
Herramientas
Herramienta | Efecto |
| Busca documentos en Drive por título |
| Cuerpo en formato Markdown + hilos de comentarios, cada uno con su texto de anclaje |
| Solo comentarios: el chequeo barato de "¿hay algo nuevo?" |
| Buscar y reemplazar exacto en el lugar; mantiene los anclajes de comentarios |
| Añade un párrafo con estilo al final (nivel de encabezado, tamaño de punto, color, negrita/cursiva); solo añade y conserva los anclajes |
| Reemplaza todo el cuerpo desde un archivo local; requiere |
| Publica una respuesta en un hilo |
| Resuelve un hilo con una nota de cierre |
| Crea un nuevo documento desde un archivo Markdown — una vez por artículo |
Todas las herramientas aceptan una URL de documento o un simple ID de documento (fileId).
El compromiso de los anclajes de comentarios
Google ancla cada comentario a un tramo de texto. Si se reescribe ese tramo, el hilo se desancla o se auto-resuelve. Así que:
Arreglos pequeños →
replace_text. Los anclajes sobreviven; los revisores conservan sus claves.Reescrituras estructurales →
push_markdown. Más rápido, pero esperar cierta pérdida de hilos. Muestra cuántos hilos abiertos había antes, para que el daño sea visible y no silencioso.Añadir en lugar de cambiar →
append_text. Solo inserta al final, así ningún texto existente se mueve y no se rompe ningún anclaje.Respuesta antes de reescribir.
reply_commentdeja un registro de qué cambió y por qué.
Por qué esto y no un servidor listo para usar
Un servidor MCP con el token OAuth de Docs puede leer y reescribir todos los documentos de la cuenta. No existe un MCP de Docs de primera parte de Google ni de Anthropic; todos los publicados son paquetes de terceros de editores individuales. Esto son about 250 líneas sobre SDK MCP de Anthropic y la librería cliente de Google, lo bastante pequeño como para que un proyecto — apenas nada, la suficiente para leerlo antes de confiar.
Modo de solo lectura
claude mcp remove gdocs -s user
claude mcp add gdocs -s user -e GDOCS_MCP_READONLY=1 -- node "$PWD/server.mjs"Las lecturas continúan funcionando; todas las herramientas de escritura se rechazan. Útil cuando alguien más es propietario del documento.
Solución de problemas
Problema | Solución |
"Aún no se ha autorizado" | Ejecuta |
| La dirección con la que has iniciado sesión no está entre las personas evaluadoras aprobadas. Añádela en Pantalla de consentimiento de OAuth > Audiencia > Test users, guarda y reintenta |
"Autorización expirada" después de aproximadamente una semana | Es lo esperado en modo de prueba. Ejecuta |
| Habilita la API de Docs y la API de Drive en este proyecto de Cloud |
"no refresh token" | Revocar el acceso en https://myaccount.google.com/permissions y vuelve a ejecutar |
No aparece la herramienta en Claude Code | Comprueba con |
El documento se exporta como texto plano | El documento tiene contenido que Google no puede renderizar como Markdown; la respuesta seguirá incluyendo el contenido |
Puedes verificar el servidor de forma independiente en cualquier momento con npm run smoke.
Para probar una herramienta específica sin pasar por Claude Code:
node call.mjs read_comments '{"doc":"https://docs.google.com/document/d/FILEID/edit"}'Revocar el acceso
Dirígete a https://myaccount.google.com/permissions y borra el archivo ~/.config/gdocs-mcp/token.json.
Estructura
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 pageLicencia
MIT. Véase 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