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

  1. Crea un nuevo proyecto en Google Cloud Console
  2. Habilita la API de Google Docs y la API de Google Drive
  3. 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
  4. 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

  1. Haz un fork de este repositorio
  2. Impórtalo en Vercel
  3. 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
    
  4. 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)

  1. 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"]
    }
  }
}
  1. 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
  2. Herramientas disponibles:

    • authorize_google - Autoriza el acceso a Google Docs (ejecuta esto primero)
    • read_document - Lee contenido de Google Docs
    • create_document - Crea nuevos Google Docs
    • update_document - Actualiza el contenido del documento con operaciones por lotes
    • append_text - Añade texto a los documentos
    • list_documents - Lista tus Google Docs

Alternativa: Configuración con clave API (avanzado)

Para acceso programático o múltiples clientes:

  1. Configuración web:

    • Visita tu aplicación desplegada: https://your-app.vercel.app
    • Inicia sesión con Google
    • Crea una clave API
  2. 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

  1. Clona el repositorio
  2. Instala las dependencias: pnpm install
  3. Copia .env.example a .env y completa los valores
  4. Ejecuta las migraciones de la base de datos: pnpm db:push
  5. Inicia el servidor de desarrollo: pnpm dev

Comandos

  • pnpm dev - Inicia el servidor de desarrollo
  • pnpm build - Compila para producción
  • pnpm start - Inicia el servidor de producción
  • pnpm lint - Ejecuta ESLint
  • pnpm db:generate - Genera migraciones de la base de datos
  • pnpm db:push - Envía el esquema a la base de datos
  • pnpm 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

  1. Error de OAuth: Verifica que la URI de redirección coincida exactamente
  2. Conexión a la base de datos: Verifica el formato de DATABASE_URL
  3. Clave API no válida: Asegúrate de que el encabezado X-API-Key esté configurado correctamente
  4. 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

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Realiza los cambios
  4. Prueba localmente
  5. Envía una solicitud de extracción (pull request)

Licencia

Licencia MIT: consulta el archivo LICENSE para más detalles.