lite-google-workspace-mcp
lite-google-workspace-mcp
Servidor MCP ligero para Gmail y Google Calendar. Cada cuenta de Google se ejecuta como un proceso independiente en su propio puerto.
Característica de seguridad importante: los envíos directos de Gmail requieren una lista allowed_recipients por cuenta. Si la lista falta o está vacía, todos los envíos se bloquean. La lista de permitidos se aplica solo a send_gmail_message; draft_gmail_message permanece sin restricciones para que los agentes puedan preparar borradores para revisión humana sin poder enviarlos.
Cómo funciona
Claude Code --HTTP--> lite-google-workspace-mcp (port 8001) --Google API--> account-A@gmail.com
--HTTP--> lite-google-workspace-mcp (port 8002) --Google API--> account-B@umd.eduUn proceso por cuenta de Google, cada uno escuchando en un puerto separado
Tokens OAuth almacenados localmente en
~/.config/lite-google-workspace-mcp/tokens/<account>.jsonLa renovación de tokens se gestiona automáticamente mediante
google-auth21 herramientas expuestas por cuenta: Gmail (búsqueda, lectura, envío, borrador, etiquetas, filtros) + Calendar (eventos, free/busy, OOO, tiempo de concentración)
Related MCP server: fastmcp-gsuite
Requisitos previos
Un proyecto de GCP con la API de Gmail y la API de Google Calendar habilitadas
Una credencial OAuth 2.0 (tipo de aplicación web) con URI de redirección
http://localhost:8000/oauth2callbackDescarga el JSON de credencial y guárdalo como
~/.config/lite-google-workspace-mcp/client_secret.json
Instalación
git clone https://github.com/WhymustIhaveaname/lite-google-workspace-mcp.git
cd lite-google-workspace-mcp
uv syncConfiguración inicial
1. Configurar puertos
Crea ~/.config/lite-google-workspace-mcp/config.toml:
[accounts.myaccount]
port = 8001
[accounts.work]
port = 8002
allowed_recipients = ["boss@company.com", "team@company.com"]
allowed_body_formats = ["html"]El nombre de la cuenta es solo una etiqueta que eliges. Se asigna a un archivo de token y a un puerto.
send_gmail_message solo entregará a direcciones explícitamente listadas en allowed_recipients (verificado contra para/cc/bcc, sin distinción de mayúsculas y minúsculas). Si allowed_recipients se omite o está vacío, todos los envíos se bloquean. Un campo de destinatario que no se pueda analizar en direcciones se trata como no permitido en lugar de omitirse, de modo que los separadores exóticos no puedan colar una dirección más allá de la verificación. Los borradores nunca se entregan, por lo que draft_gmail_message no está restringido por esta lista.
Tanto send_gmail_message como draft_gmail_message solo aceptan formatos listados en allowed_body_formats. Si la opción se omite, el valor predeterminado es ["html"], por lo que los mensajes de texto plano se bloquean. Añade "plain" explícitamente solo si esa cuenta necesita crear o enviar correo de texto plano.
Ambas opciones deben ser arrays TOML de cadenas, y allowed_body_formats solo acepta "plain" y "html". Cualquier otra cosa aborta el inicio del servidor en lugar de bloquear silenciosamente todos los mensajes.
Si un adjunto no se puede leer o decodificar, no se envía nada y no se crea ningún borrador. El error nombra el adjunto que falla para que se pueda corregir o eliminar antes de reintentar.
2. Autorizar cuentas
uv run lite-google-workspace-mcp auth myaccountEsto imprime una URL de OAuth y abre tu navegador. Inicia sesión con la cuenta de Google que quieras enlazar, concede permisos (puedes omitir algunos ámbitos si quieres) y el token se guarda localmente.
Repite para cada cuenta.
3. Iniciar el servidor
Manual:
uv run lite-google-workspace-mcp serve --account myaccountCon systemd (recomendado):
cp contrib/lite-google-workspace-mcp@.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now lite-google-workspace-mcp@myaccount4. Conectar con Claude Code
claude mcp add --scope user --transport http lite-gmail-myaccount http://localhost:8001/mcpReautorización
Si un token caduca o quieres cambiar los ámbitos concedidos:
# Stop the service first (auth uses port 8000 which must be free)
systemctl --user stop lite-google-workspace-mcp@myaccount
# Re-authorize
uv run lite-google-workspace-mcp auth myaccount
# Restart
systemctl --user start lite-google-workspace-mcp@myaccountTokens que caducan cada 7 días
Si la pantalla de consentimiento de OAuth tiene un tipo de usuario externo y un estado de publicación en Prueba, Google caduca cada token de actualización 7 días después del consentimiento (esto se aplica a cualquier ámbito más allá del perfil/correo básico). El servicio entonces falla al iniciar con invalid_grant: Token has been expired or revoked, y reautorizar solo restablece el reloj de 7 días.
La solución es publicar la aplicación en producción: consola de GCP > APIs y servicios > Pantalla de consentimiento de OAuth > Publicar aplicación. Los tokens de actualización de producción no caducan con un temporizador. Con ámbitos de Gmail restringidos verás una advertencia de «aplicación no verificada» hasta la verificación, lo cual es inofensivo para uso personal o autoalojado.
Herramientas
Gmail (14 herramientas)
Herramienta | Descripción |
search_gmail_messages | Búsqueda por sintaxis de consulta de Gmail |
get_gmail_message_content | Leer un solo mensaje |
get_gmail_messages_content_batch | Leer varios mensajes |
get_gmail_thread_content | Leer un hilo completo |
get_gmail_threads_content_batch | Leer varios hilos |
get_gmail_attachment_content | Descargar adjunto |
send_gmail_message | Enviar (texto plano o HTML, con adjuntos) |
draft_gmail_message | Crear un borrador |
list_gmail_labels | Listar todas las etiquetas |
manage_gmail_label | Crear/actualizar/eliminar etiquetas |
list_gmail_filters | Listar todos los filtros |
manage_gmail_filter | Crear/eliminar filtros |
modify_gmail_message_labels | Añadir/quitar etiquetas en un mensaje |
batch_modify_gmail_message_labels | Modificación masiva de etiquetas |
Calendar (7 herramientas)
Herramienta | Descripción |
list_calendars | Listar todos los calendarios |
get_events | Obtener eventos por ID o rango de tiempo |
manage_event | Crear/actualizar/eliminar/confirmar asistencia a eventos |
manage_out_of_office | Crear/listar/actualizar/eliminar bloques OOO |
manage_focus_time | Crear/listar/actualizar/eliminar tiempo de concentración |
query_freebusy | Comprobar disponibilidad |
create_calendar | Crear un nuevo calendario |
Desarrollo
uv sync --extra dev
uv run pytest
uv run ruff check src/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 Servers
- AlicenseNot gradedqualityDmaintenanceMCP server to interact with Google Gmail and Calendar APIs. Supports multiple accounts, email search and drafting, and calendar event management.MIT
- AlicenseBqualityCmaintenanceMCP server for interacting with Google Gmail and Calendar via natural language, supporting multiple accounts.359MIT
- AlicenseNot gradedqualityAmaintenanceLocal MCP server for reading/sending email via Gmail and managing Google Calendar events, enabling an AI agent to handle email and calendar operations through natural language.1MIT
- FlicenseNot gradedqualityCmaintenanceCustom MCP server for Gmail integration, enabling email listing, reading, searching, and sending via natural language.
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
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/WhymustIhaveaname/lite-google-workspace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server