Google Docs
Un servidor del Protocolo de Contexto del Modelo (MCP) para integrar Google Docs con clientes de IA.
Documentación
Servidor MCP de Google Docs (Next.js)
Un servidor remoto de Model Context Protocol (MCP) que proporciona integración con Google Docs para Claude Desktop, construido con Next.js y desplegado en Vercel.
Características
- Servidor MCP remoto: Desplegado en Vercel con transporte SSE
- Google OAuth: Autenticación segura con permisos de Google Docs y Drive
- Panel web: Interfaz fácil de usar para gestionar claves API
- Multiusuario: Soporte para múltiples usuarios con acceso aislado
- Gestión de claves API: Autenticación segura basada en tokens para clientes MCP
Arquitectura
User Browser → Next.js App → Google OAuth → Database (User/Tokens)
Claude Desktop → MCP SSE Transport → API Key Auth → Google APIs
Configuración
1. Configuración de Google Cloud Console
- Crea un nuevo proyecto en Google Cloud Console
- Habilita la API de Google Docs y la API de Google Drive
- Crea credenciales OAuth 2.0:
- Tipo de aplicación: Aplicación web
- URIs de redirección autorizadas:
https://your-app.vercel.app/api/auth/callback/google
- Copia el ID de cliente y el secreto de cliente
2. Configuración de la base de datos
Crea una base de datos PostgreSQL (recomendado: Neon o Supabase)
3. Configuración de Redis
Crea una instancia de Redis (requerida para el adaptador MCP de Vercel). Recomendado: Upstash
4. Despliegue en Vercel
- Haz un fork de este repositorio
- Impórtalo en Vercel
- Añade las variables de entorno:
NEXTAUTH_SECRET=your-random-secret NEXTAUTH_URL=https://your-app.vercel.app GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret DATABASE_URL=your-postgresql-url REDIS_URL=your-redis-url - Despliega
5. Inicialización de la base de datos
Después del despliegue, ejecuta las migraciones de la base de datos:
pnpm db:push
Uso
Configuración simple (OAuth bajo demanda)
- Añade el servidor MCP a Claude Desktop (sin configuración requerida):
claude mcp add --transport sse google-docs https://your-app.vercel.app/sse
O añádelo manualmente a claude_desktop_config.json:
{
"mcpServers": {
"google-docs": {
"command": "claude",
"args": ["mcp", "connect", "sse", "https://your-app.vercel.app/sse"]
}
}
}
-
Autorización por primera vez:
- En Claude Desktop, ejecuta: "Usa la herramienta authorize_google"
- Claude proporcionará un enlace de autorización
- Haz clic en el enlace → se abre el navegador → inicia sesión con Google
- Después de la autorización, todas las herramientas de Google Docs funcionan automáticamente
-
Herramientas disponibles:
authorize_google- Autoriza el acceso a Google Docs (ejecuta esto primero)read_document- Lee contenido de Google Docscreate_document- Crea nuevos Google Docsupdate_document- Actualiza el contenido del documento con operaciones por lotesappend_text- Añade texto a los documentoslist_documents- Lista tus Google Docs
Alternativa: Configuración con clave API (avanzado)
Para acceso programático o múltiples clientes:
-
Configuración web:
- Visita tu aplicación desplegada:
https://your-app.vercel.app - Inicia sesión con Google
- Crea una clave API
- Visita tu aplicación desplegada:
-
Configuración de Claude Desktop:
claude mcp add --transport sse google-docs \\
https://your-app.vercel.app/sse \\
--header "X-API-Key: your-api-key"
Desarrollo
Configuración local
- Clona el repositorio
- Instala las dependencias:
pnpm install - Copia
.env.examplea.envy completa los valores - Ejecuta las migraciones de la base de datos:
pnpm db:push - Inicia el servidor de desarrollo:
pnpm dev
Comandos
pnpm dev- Inicia el servidor de desarrollopnpm build- Compila para producciónpnpm start- Inicia el servidor de producciónpnpm lint- Ejecuta ESLintpnpm db:generate- Genera migraciones de la base de datospnpm db:push- Envía el esquema a la base de datospnpm db:studio- Abre Drizzle Studio
Seguridad
- Las claves API se cifran (hash) antes de almacenarse
- Los tokens de actualización de Google se cifran en la base de datos
- El aislamiento de usuarios evita el acceso entre usuarios
- HTTPS obligatorio para las devoluciones de llamada OAuth
Solución de problemas
Problemas comunes
- Error de OAuth: Verifica que la URI de redirección coincida exactamente
- Conexión a la base de datos: Verifica el formato de DATABASE_URL
- Clave API no válida: Asegúrate de que el encabezado X-API-Key esté configurado correctamente
- Conexión a Redis: Verifica REDIS_URL para el transporte SSE
Registros
Consulta los registros de funciones de Vercel para obtener información detallada de errores.
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza los cambios
- Prueba localmente
- Envía una solicitud de extracción (pull request)
Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.