Skip to main content
Glama
hawkxdev

google-workspace-mcp

by hawkxdev

google-workspace-mcp

Un proyecto para construir cinco servidores MCP remotos independientes para Google Workspace: Gmail, Google Calendar, Google Drive, Google Sheets y Google Docs.

Estado: pre-alfa. Los servidores MCP aún no están operativos. El repositorio contiene actualmente el andamiaje del paquete, cinco puntos de entrada provisionales, el núcleo de estado OAuth descendente y la configuración inmutable por servicio.

Estado actual

Implementado:

  • un paquete de Python con cinco puntos de entrada de consola;

  • estado OAuth descendente respaldado por SQLite;

  • registro de cliente OAuth y PKCE;

  • vinculación de tokens a un resource canónico;

  • rotación de tokens de actualización, detección de reproducción y revocación de familia;

  • metadatos de propiedad de estado inmutables para el servicio y el recurso;

  • configuración inmutable por servicio con validación estricta de puerto y TTL de token.

Los cinco puntos de entrada de consola son provisionales y salen con un mensaje de que el servicio no está construido. El transporte HTTP/MCP, la integración con la API de Google, las herramientas de servicio y la configuración de despliegue aún no están implementados.

Related MCP server: google-workspace-mcp-advanced

Servicios planificados

La tabla describe el alcance objetivo. Estas capacidades aún no están disponibles.

Servicio

Capacidades objetivo

gmail

buscar y leer mensajes e hilos, etiquetas, adjuntos, borradores, enviar y responder

calendar

calendarios, búsqueda y recuperación de eventos, disponibilidad, creación y actualización de eventos

drive

búsqueda de archivos, metadatos, contenido de carpetas, descarga y exportación

sheets

metadatos de hojas de cálculo, lecturas y escrituras de rangos, operaciones por lotes

docs

creación de documentos, recuperación de estructura y texto, inserción y reemplazo

En la arquitectura objetivo, cada servicio se ejecuta como un proceso separado con su propio endpoint MCP, registro de herramientas, ámbitos OAuth de Google, credenciales de Google y estado OAuth descendente.

Arquitectura de autorización objetivo

El diseño utiliza dos capas independientes:

Cliente a servicio. El cliente MCP utiliza OAuth 2.1 con PKCE. Cada token de acceso está vinculado a un resource, y los tokens de actualización rotan con detección de reproducción.

Servicio a Google. Cada servicio utiliza credenciales de Google separadas y los ámbitos OAuth mínimos requeridos. Los tokens de actualización de Google nunca se devuelven a los clientes MCP.

Solo existe hoy el núcleo de estado para la primera capa. Los endpoints HTTP y la segunda capa de autorización no están implementados.

Tecnología

Requisitos previos de desarrollo

  • Git

  • Python 3.14

  • uv

Se requerirá un proyecto de Google Cloud y un cliente OAuth después de que se implemente la integración con la API de Google. La versión actual no los utiliza.

Configuración de desarrollo

git clone https://github.com/hawkxdev/google-workspace-mcp.git
cd google-workspace-mcp
uv sync --dev

No es necesario activar el entorno virtual. Ejecuta los comandos a través de uv run.

Comprobaciones

uv run --no-sync pytest -q
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync mypy src

La bandera --no-sync es necesaria al comprobar la versión de dependencia instalada. Un uv run simple puede resincronizar el entorno desde el archivo de bloqueo.

Estructura

Ruta

Propósito

src/google_workspace_mcp/auth/state.py

ciclo de vida del estado OAuth descendente

src/google_workspace_mcp/common/config.py

configuración de entorno inmutable por servicio

src/google_workspace_mcp/cli/

cinco puntos de entrada provisionales

tests/core/

regresiones del núcleo OAuth y de los puntos de entrada del paquete

pyproject.toml

metadatos del paquete, dependencias y configuración de herramientas

NOTICE

procedencia del código adaptado

Contribuciones

El proyecto está en desarrollo temprano. Antes de realizar un cambio sustancial, abre un issue describiendo el comportamiento propuesto. Los cambios no deben fusionar los cinco servicios en un solo proceso, compartir credenciales entre servicios ni introducir una omisión de OAuth.

Procedencia

El proyecto adapta el núcleo OAuth 2.1 de jimprosser/obsidian-web-mcp bajo la Licencia MIT. Consulta NOTICE para más detalles.

El núcleo OAuth 2.1 descendente se basa en la revisión 7e6a52d791a50e3bd533df1060217973ab5be1c8. Incluye correcciones adicionales para los ciclos de vida de cliente y token, rotación de tokens de actualización, detección de reproducción y canonicalización de resource.

La funcionalidad de almacenamiento de Obsidian y sincronización de Git del proyecto original no fue copiada.

Este proyecto utiliza mcp>=2,<3. El paquete mcp.server.fastmcp eliminado en MCP 2.0 no es necesario; la composición futura utilizará mcp.server.mcpserver.

Autor

Sergey Sokolkin (@hawkxdev)

Licencia

MIT, consulta LICENSE.

Related MCP Connectors

Related MCP Servers