google-workspace-unlimited
🚀 Plataforma Google Workspace de GoogleUnlimited
GoogleUnlimited es un framework MCP integral que proporciona una integración perfecta con Google Workspace mediante una arquitectura de middleware avanzada. Permite a los asistentes de IA y a los clientes MCP interactuar con los servicios de Gmail, Google Drive, Docs, Sheets, Slides, Calendar, Forms, Chat, Photos y Contacts (People API) mediante una API unificada y segura.
Lo que lo hace diferente:
⚡ Code Mode por defecto — en lugar de inundar tu cliente con más de 90 esquemas de herramientas, el servidor expone 7 metaherramientas ligeras; la IA descubre las herramientas bajo demanda y encadena llamadas reales a la API dentro de un único bloque
executeen espacio aislado🚀 Arranque sin configuración — el servidor se ejecuta inmediatamente sin archivo
.env; OAuth se realiza de forma diferida en el primer uso🔧 Control de herramientas por sesión — filtrado de servicios basado en URL y habilitación/deshabilitación con ámbito de sesión, de modo que cada cliente conectado ve exactamente las herramientas que necesita
🎨 Sistema de DSL de plantillas y tarjetas — las macros de Jinja2 y una notación compacta de tarjetas convierten los datos brutos de la API en correos electrónicos enriquecidos, paneles y tarjetas de Google Chat
🧠 Memoria semántica — cada respuesta de herramienta se incrusta en Qdrant y se puede buscar posteriormente con lenguaje natural
📋 Tabla de contenidos
Related MCP server: mcp-google-workspace
⚡ Instrucciones de instalación rápida
¿Qué es GoogleUnlimited?
GoogleUnlimited proporciona a los asistentes de IA acceso a los servicios de Google Workspace a través del Model Context Protocol (MCP). Admite más de 92 herramientas en 9 servicios de Google, lo que permite una integración perfecta entre los flujos de trabajo de IA y las aplicaciones de Google Workspace con mejoras de rendimiento revolucionarias.
🛠️ Métodos de instalación
Método 1: Instalación rápida mediante uvx (recomendado)
La forma más rápida de empezar: instala directamente desde PyPI:
{
"mcpServers": {
"google-workspace-unlimited": {
"command": "uvx",
"args": ["google-workspace-unlimited"],
"disabled": false,
"timeout": 300
}
}
}⚡ ¡Eso es todo! El servidor se ejecuta en modo stdio por defecto, perfecto para clientes MCP como Claude Desktop, Cursor, Roo, etc. Code Mode está activado de serie, por lo que tu cliente ve 7 metaherramientas ligeras en lugar de más de 90 esquemas.
Método 1b: Plugin de Claude Code (servidor + habilidades)
Los usuarios de Claude Code pueden instalar el servidor y las habilidades que enseñan a Claude su DSL de tarjetas/correos, Code Mode y la búsqueda en Qdrant con dos comandos:
/plugin marketplace add dipseth/google_workspace_fastmcp2
/plugin install google-workspace-unlimited@riversunlimitedConsulta plugins/google-workspace-unlimited para más detalles.
Método 2: Clonación y configuración de desarrollo
Para desarrollo o personalización:
Clona y configura:
git clone https://github.com/dipseth/google_workspace_fastmcp2.git cd google_workspace_fastmcp2 uv syncInicia el servidor:
uv run python server.pyEl servidor se inicia inmediatamente sin necesidad de configuración. No se necesitan credenciales OAuth al arrancar: la autenticación se gestiona de forma diferida cuando interactúas por primera vez con un servicio de Google.
Autentícate cuando estés listo:
Cuando llames a cualquier herramienta de Google Workspace, el servidor te pedirá que te autentiques mediante la herramienta
start_google_auth. Esto abre un flujo OAuth basado en navegador. Una vez completado, las credenciales se almacenan localmente y se reutilizan entre sesiones.Para preconfigurar las credenciales OAuth (opcional), crea un archivo
.env:cp .env.example .envLuego añade tus credenciales de Google Cloud Console:
# Option A: Client ID + Secret GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=your-client-secret # Option B: Downloaded JSON credentials file GOOGLE_CLIENT_SECRETS_FILE=credentials.jsonConsulta los pasos de configuración de Google Cloud Console para crear credenciales OAuth y habilitar las API.
📚 Recursos de configuración:
🔧 Guía de configuración completa - Referencia completa de variables de entorno y ajustes
🤖 Guía de integración con Claude.ai - Configuración para el uso del servidor MCP remoto de Claude.ai
🔒 Guía de configuración de HTTPS - Configuración de certificados SSL para conexiones seguras
⚙️ Guía de configuración JSON de MCP - Configuración MCP estándar para cualquier cliente compatible
📋 Referencia de variables de entorno
Todas las variables de entorno son opcionales: el servidor se inicia con valores predeterminados sensatos y no requiere archivo .env. Las credenciales OAuth solo son necesarias al iniciar un nuevo flujo de autenticación mediante start_google_auth.
Google OAuth (necesario para la primera autenticación):
Variable | Default | Description |
| (empty) | ID de cliente OAuth 2.0 de Google Cloud Console |
| (empty) | Secreto de cliente OAuth 2.0 |
| (empty) | Alternativa: ruta al archivo JSON de OAuth descargado |
|
| Debe coincidir con el URI de redirección de Google Console |
Proporciona o bien
GOOGLE_CLIENT_ID+GOOGLE_CLIENT_SECRETo bienGOOGLE_CLIENT_SECRETS_FILEantes de tu primer flujo OAuth. Una vez autenticado, las credenciales se almacenan localmente y estas variables ya no son necesarias.
Servidor:
Variable | Default | Description |
|
| Dirección de enlace del servidor |
|
| Puerto del servidor |
|
| Habilitar HTTPS/SSL |
| - | Ruta al certificado SSL (obligatorio si HTTPS está habilitado) |
| - | Ruta a la clave privada SSL (obligatorio si HTTPS está habilitado) |
|
|
|
Seguridad y sesiones:
Variable | Default | Description |
|
|
|
|
| Directorio para las credenciales almacenadas |
| (empty) | Clave API del servidor: también se usa para el cifrado de credenciales vinculado a criptografía (HKDF-SHA256) y la generación de claves por usuario |
|
| Tiempo de espera de inactividad de la sesión |
| (empty) | Direcciones de correo electrónico de confianza separadas por comas |
Gestión de herramientas:
Variable | Default | Description |
|
| Iniciar con solo 5 herramientas protegidas habilitadas |
| (empty) | Servicios separados por comas para habilitar al inicio (p. ej., |
|
| Code Mode (predeterminado): reemplaza el catálogo completo de herramientas por 7 metaherramientas + |
|
| Habilita FastMCP SkillsDirectoryProvider para la generación dinámica de habilidades |
|
| Directorio para los documentos de habilidades generados |
|
| Tamaño máximo de respuesta de herramienta en bytes (0 = deshabilitado) |
| (empty) | Nombres de herramientas a limitar separados por comas (vacío = todas) |
Base de datos vectorial Qdrant:
Variable | Default | Description |
|
| URL de la base de datos vectorial Qdrant |
|
| Clave API de Qdrant (usa |
|
| Iniciar Qdrant automáticamente mediante Docker si no está accesible |
|
| Imagen de Docker para el inicio automático |
|
| Nombre del contenedor para el Qdrant iniciado automáticamente |
Otros:
Variable | Default | Description |
| (empty) | URL de webhook predeterminada para las herramientas de tarjetas de Google Chat |
|
| Habilita el modo de despliegue en la nube (cambia automáticamente al almacenamiento |
🔗 Conexiones de clientes
GoogleUnlimited admite múltiples métodos de conexión. Estas son las dos formas más populares de empezar:
🎯 Opciones de Configuración Rápida
Opción 1: Cursor IDE (STDIO - Verificado por la Comunidad ✅):
{
"mcpServers": {
"google-workspace": {
"command": "uv",
"args": [
"--directory", "/path/to/google_workspace_fastmcp2",
"run", "python", "server.py"
],
"env": {
"GOOGLE_CLIENT_SECRETS_FILE": "/path/to/client_secrets.json",
"MCP_TRANSPORT": "stdio"
}
}
}
}Opción 2: HTTP Streamable (VS Code Roo, Claude Code, Claude Desktop, etc.):
# Start server in HTTP mode
uv run python server.py --transport http --port 8002Configuración básica de conexión única:
{
"google-workspace": {
"type": "streamable-http",
"url": "https://localhost:8002/mcp",
"disabled": false
}
}Configuración multi-conexión — conecta el mismo cliente (o varios clientes) al mismo servidor con diferentes conjuntos de herramientas usando parámetros de consulta en la URL:
{
"google-email": {
"type": "streamable-http",
"url": "https://localhost:8002/mcp?service=gmail"
},
"google-chat": {
"type": "streamable-http",
"url": "https://localhost:8002/mcp?service=chat"
},
"google-productivity": {
"type": "streamable-http",
"url": "https://localhost:8002/mcp?service=drive,docs,sheets,slides"
}
}Cada conexión obtiene su propia sesión aislada con solo las herramientas de servicio solicitadas habilitadas. También puedes fijar un ID de sesión con ?uuid= para reanudar el mismo estado de sesión entre reconexiones:
{
"google-workspace": {
"type": "streamable-http",
"url": "https://localhost:8002/mcp?uuid=my-workspace&service=gmail,drive,calendar"
}
}Consulta Filtrado de Servicios por URL para ver la lista completa de parámetros de consulta.
🤖 Claude Code y Claude Desktop
Claude Code (CLI) — un solo comando, usando el paquete PyPI publicado:
# Local stdio (recommended): uvx fetches and runs the server on demand
claude mcp add google-workspace -- uvx google-workspace-unlimited
# Or connect to an already-running HTTP server
claude mcp add --transport http google-workspace https://localhost:8002/mcpClaude Desktop (ruta de desarrollo local) — añade a claude_desktop_config.json (Configuración → Desarrollador → Editar Config):
{
"mcpServers": {
"google-workspace-unlimited": {
"command": "uvx",
"args": ["google-workspace-unlimited"]
}
}
}Claude.ai / Claude Desktop (conector alojado) — ejecuta el servidor detrás de un endpoint HTTPS público (por ejemplo, un túnel de Cloudflare o ngrok), luego añádelo en Configuración → Conectores → Añadir conector personalizado con tu URL https://your-domain/mcp. El flujo OAuth 2.1 + PKCE del servidor gestiona la autenticación, incluida la redirección https://claude.ai/api/mcp/auth_callback. Consulta la Guía de Integración con Claude.ai para ver el tutorial completo.
📚 Guía Completa de Conexión
Para instrucciones detalladas de configuración, solución de problemas y configuraciones para todos los clientes compatibles, incluyendo:
Claude Code CLI (HTTP y STDIO)
Claude Desktop
VS Code / Roo / GitHub Copilot
Claude.ai con Cloudflare Tunnel
Y más...
🔗 Guía Completa de Conexión de Clientes - Instrucciones completas de configuración, solución de problemas y configuraciones avanzadas para todos los clientes de IA y entornos de desarrollo compatibles
⚡ Modo Código (Predeterminado)
El Modo Código es la función insignia de GoogleUnlimited — y está activado por defecto. En lugar de cargar más de 90 esquemas de herramientas por adelantado (costoso en tokens), tu cliente MCP ve solo 7 meta-herramientas. La IA descubre herramientas bajo demanda y luego encadena cualquier número de llamadas API reales dentro de un único bloque execute de Python en sandbox.
Meta-Herramienta | Propósito |
| Explorar herramientas por categoría de servicio (Gmail, Drive, Calendar, etc.) |
| Búsqueda de palabras clave con BM25 en nombres y descripciones de herramientas |
| Obtener esquemas de parámetros completos para las herramientas seleccionadas |
| Búsqueda en lenguaje natural sobre respuestas de herramientas almacenadas previamente (respaldada por Qdrant) |
| Recuperar una respuesta almacenada completa por ID de punto desde los resultados de búsqueda |
| Resumir patrones de uso recientes y actividad de herramientas |
| Ejecutar un bloque de Python en sandbox que encadena llamadas reales a herramientas mediante |
Por qué es importante:
💰 Ahorro masivo de tokens — 7 esquemas en lugar de más de 90, con esquemas completos obtenidos solo para las herramientas realmente utilizadas
🔗 Un solo viaje de ida y vuelta en lugar de muchos — buscar → filtrar → actuar ocurre dentro de un único bloque
execute, no en una cadena de viajes de ida y vuelta del cliente🧰 Sandbox con todo incluido — más de 40 ayudantes integrados (
now(),days_ago(),to_json(),re_find(),gather_tools(), …) cubren fechas, JSON, URLs, regex, matemáticas y llamadas por lotes sin necesidad de importaciones
# One execute block: find a Drive file, then email its link
files = await call_tool("search_drive_files", {"query": "Q4 report"})
link = files["files"][0]["webViewLink"]
result = await call_tool("send_gmail_message", {
"to": "manager@company.com",
"subject": "Q4 Report",
"body": "Here's the Q4 report: " + link,
})
return result¿Prefieres el catálogo clásico? Opta por no participar y cada herramienta se expone directamente al cliente:
ENABLE_CODE_MODE=false # expose the full 90+ tool catalog insteadEl Modo Código y el catálogo clásico son mutuamente excluyentes — cuando el Modo Código está activo, las llamadas directas a herramientas se reemplazan por el patrón de búsqueda +
execute. Las herramientas de descubrimiento siempre ven el catálogo completo, independientemente del filtrado a nivel de sesión.
🎯 Capacidades del Servicio
GoogleUnlimited admite 10 servicios de Google Workspace con más de 90 herramientas especializadas:
Servicio | Icono | Herramientas | Características Clave | Documentación |
Gmail | 📧 | 14 | Enviar, responder, etiquetas, filtros, búsqueda, lista blanca | |
Drive | 📁 | 9 | Subir, descargar, compartir, documentos de Office, gestión de archivos | |
Docs | 📄 | 4 | Crear, editar, formatear, operaciones por lotes | |
Sheets | 📊 | 7 | Leer, escribir, fórmulas, formato | |
Slides | 🎯 | 5 | Presentaciones, plantillas, exportación | |
Calendar | 📅 | 9 | Eventos, programación, asistentes, zonas horarias | |
Forms | 📝 | 8 | Creación, respuestas, validación, publicación | |
Chat | 💬 | 24 | Mensajería, tarjetas, espacios, webhooks, tarjetas unificadas | |
Photos | 📷 | 12 | Álbumes, subida, búsqueda, metadatos, búsqueda inteligente | |
People | 👤 | 4 | Búsqueda nombre→correo (contactos + directorio de la organización), etiquetas de contacto |
📚 Recursos de Documentación de API:
🔗 Referencia Completa de API - Documentación completa para las más de 92 herramientas en 10 servicios
📧 Guía de API de Gmail - Gestión de correo, etiquetas, filtros y operaciones de búsqueda
📁 Guía de API de Drive - Operaciones de archivos, uso compartido y manejo de documentos de Office
📊 Guía de API de Sheets - Manipulación y formato de datos de hojas de cálculo
📅 Guía de API de Calendar - Programación de eventos y gestión de zonas horarias
🧠 Arquitectura de Middleware
GoogleUnlimited utiliza una arquitectura de middleware que proporciona integración de servicios sin fisuras, gestión inteligente de recursos y potentes capacidades de plantillas.

🔧 Componentes Centrales del Middleware
🏷️ TagBasedResourceMiddleware: Descubrimiento inteligente de recursos mediante patrones URI (
service://gmail/messages,user://current/email)🧠 QdrantUnifiedMiddleware: Búsqueda semántica impulsada por IA en todas las respuestas de herramientas con incrustaciones vectoriales
🎨 TemplateMiddleware: Sistema avanzado de plantillas Jinja2 para un formato de salida hermoso y estructurado
✨ Beneficios de la Arquitectura
🔄 Acceso Unificado a Recursos: Acceso basado en URI a los datos del servicio sin llamadas API
🧠 Inteligencia Semántica: Búsqueda en lenguaje natural en todas las respuestas almacenadas
🎨 Excelencia Visual: Formato de salida consistente y hermoso para un consumo óptimo por parte de la IA
💰 Eficiencia de Tokens: Las macros de plantillas reducen el uso de tokens en un 60-80% mediante la representación estructurada de datos
⚡ Rendimiento: 30 veces más rápido que los enfoques tradicionales gracias al almacenamiento en caché inteligente
📚 Recursos de Documentación del Middleware:
📖 Guía de Arquitectura del Middleware - Documentación completa del sistema de middleware y detalles de implementación
🏷️ TagBasedResourceMiddleware - Descubrimiento y gestión de recursos mediante patrones URI
🧠 QdrantUnifiedMiddleware - Búsqueda semántica impulsada por IA e incrustaciones vectoriales
🎨 TemplateMiddleware - Sistema avanzado de plantillas Jinja2 para formateo de salida
🔧 SessionToolFilteringMiddleware - Gestión de habilitación/deshabilitación de herramientas por sesión
🚀 Inicio con Herramientas Mínimas
Por defecto, GoogleUnlimited se inicia con solo 5 herramientas protegidas habilitadas para un rendimiento y seguridad óptimos. Esto permite a los clientes habilitar solo las herramientas que necesitan.
Herramientas Protegidas (Siempre Disponibles):
manage_tools- Habilitar/deshabilitar herramientas globalmente o por sesiónmanage_tools_by_analytics- Gestión de herramientas basada en análisishealth_check- Estado de salud del servidor y estado de configuraciónstart_google_auth- Iniciar autenticación OAuthcheck_drive_auth- Verificar estado de autenticación
Configuración:
# Default: Start with minimal tools (only 5 protected tools)
MINIMAL_TOOLS_STARTUP=true
# Optional: Pre-enable specific services at startup
MINIMAL_STARTUP_SERVICES=drive,gmail,calendar
# Disable minimal startup (enable all 92+ tools immediately)
MINIMAL_TOOLS_STARTUP=falseHabilitando Herramientas en Tiempo de Ejecución:
# Enable all tools globally
manage_tools(action="enable_all")
# Enable specific tools
manage_tools(action="enable", tool_names=["search_drive_files", "list_gmail_labels"])
# List all registered tools (shows enabled/disabled status)
manage_tools(action="list")🔧 Gestión de Herramientas con Alcance de Sesión
GoogleUnlimited admite la funcionalidad de habilitar/deshabilitar herramientas por sesión, lo que permite que diferentes clientes MCP tengan diferente disponibilidad de herramientas sin afectar a otros clientes conectados.
Características Clave:
Aislamiento de Sesión: Deshabilita herramientas para una sesión de cliente sin afectar a otras
No Invasivo: Las operaciones con alcance de sesión nunca modifican el registro global de herramientas
Herramientas Protegidas: Las herramientas de gestión centrales (
manage_tools,health_check, etc.) siempre permanecen disponiblesBasado en Middleware: Utiliza
SessionToolFilteringMiddlewarepara el filtrado a nivel de protocolo
Ejemplos de Uso:
# Disable tools for this session only (other clients unaffected)
manage_tools(action="disable", tool_names=["send_gmail_message"], scope="session")
# Disable all except specific tools for this session
manage_tools(action="disable_all_except", tool_names=["search_drive_files", "list_events"], scope="session")
# Re-enable all tools for this session
manage_tools(action="enable_all", scope="session")
# Global operations (original behavior, affects all clients)
manage_tools(action="disable", tool_names=["send_gmail_message"], scope="global")Estructura de Respuesta:
{
"success": true,
"action": "disable_all_except",
"scope": "session",
"enabledCount": 94,
"disabledCount": 0,
"toolsAffected": ["tool1", "tool2", "..."],
"sessionState": {
"sessionId": "f725be09...",
"sessionAvailable": true,
"sessionDisabledTools": ["tool1", "tool2"],
"sessionDisabledCount": 89
},
"message": "Kept 5 tools, disabled 89 tools for this session"
}📚 Proveedor de Habilidades
Cuando se habilita con ENABLE_SKILLS_PROVIDER=true, GoogleUnlimited genera documentos de habilidades a partir de instancias de ModuleWrapper y los sirve a través del SkillsDirectoryProvider de FastMCP. Las habilidades proporcionan conocimiento estructurado que los LLM pueden consultar para tareas complejas de múltiples pasos.
Módulos actualmente compatibles:
card_framework→ habilidadgchat-cards(referencia del DSL de tarjetas de Google Chat, jerarquía de componentes, ejemplos)
Configuración:
ENABLE_SKILLS_PROVIDER=true # Enable skill generation
SKILLS_DIRECTORY=~/.claude/skills # Output directory (default)Las habilidades se regeneran automáticamente en cada inicio y están disponibles inmediatamente a través del sistema de habilidades de FastMCP.
🖥️ Panel de Gestión de Herramientas
GoogleUnlimited incluye un Panel de Gestión de Herramientas integrado que se sirve a través del esquema de recursos ui:// de las Apps MCP. Esto proporciona una interfaz visual para monitorear y gestionar la disponibilidad de herramientas entre sesiones.

Características:
Vista de herramientas agrupadas por servicio — herramientas organizadas por servicio de Google (Gmail, Drive, Sheets, etc.) con contadores
Visibilidad del estado de sesión — ve qué herramientas están habilitadas, deshabilitadas o deshabilitadas por sesión de un vistazo
Chips de filtro — filtra rápidamente por servicio para enfocarte en las herramientas relevantes
Datos en vivo — impulsado por
DashboardCacheMiddlewareque almacena en caché los resultados de list-tool para acceso instantáneo al recursoui://data-dashboard
El panel se conecta automáticamente a todas las herramientas de listado mediante wire_dashboard_to_list_tools() — sin necesidad de configuración por herramienta.
🔗 Filtrado de Servicios por URL (Transporte HTTP)
Cuando se usa transporte HTTP/SSE, puedes filtrar herramientas por servicio directamente mediante parámetros de consulta en la URL — sin necesidad de código:
# Enable only Gmail tools
http://localhost:8002/mcp?service=gmail
# Enable Gmail + Drive + Calendar
http://localhost:8002/mcp?service=gmail,drive,calendar
# Resume a previous session
http://localhost:8002/mcp?uuid=your-session-id
# Resume session with specific services
http://localhost:8002/mcp?uuid=abc123&service=gmail,drive
# Disable minimal startup (enable all tools)
http://localhost:8002/mcp?minimal=falseParámetros de URL Disponibles:
Parámetro | Ejemplo | Descripción |
|
| Lista de servicios separados por comas para habilitar |
|
| Reanudar una sesión anterior por ID |
|
| Anular el modo de inicio mínimo |
Servicios disponibles: gmail, drive, calendar, docs, sheets, slides, photos, chat, forms, people
📚 Recursos de gestión de herramientas de sesión:
🔧 Guía de SessionToolFilteringMiddleware - Documentación completa para la gestión de herramientas por sesión
🎨 Sistema de plantillas
GoogleUnlimited incluye potentes macros de plantilla Jinja2 que transforman datos sin procesar de Google Workspace en formatos visualmente atractivos y optimizados para IA.
🎯 Macros de plantilla disponibles
Archivo de plantilla | Macro | Propósito | Características clave |
|
| Visualización de etiquetas de Gmail | Chips interactivos, recuentos de no leídos, enlaces directos a Gmail |
|
| Panel de calendario y eventos | Calendarios principales/compartidos, próximos eventos, tema oscuro |
|
| Panel de eventos de calendario | Tarjetas de eventos, detalles de hora/ubicación, enlaces clicables, tema oscuro |
|
| Informes profesionales | Métricas, tablas, gráficos, marca de la empresa |
|
| Correos electrónicos HTML enriquecidos | Múltiples firmas, degradados, diseño adaptable |
💡 Ejemplos de macros de plantilla
Visualización de etiquetas de Gmail - Transforma listas de etiquetas en hermosos chips interactivos:
{{ render_gmail_labels_chips( service://gmail/labels , 'Label summary for: ' + user://current/email ) }}Panel de calendario - Crea vistas generales completas del calendario:
{{ render_calendar_dashboard( service://calendar/calendars, service://calendar/events, 'My Calendar Overview' ) }}Panel de eventos de calendario - Transforma eventos de calendario en hermosas tarjetas de eventos interactivas:
{{ render_calendar_events_dashboard( service://calendar/events , 'Upcoming Events for: ' + user://current/email.email ) }}
Esta macro crea un impresionante panel con tema oscuro que incluye:
📅 Tarjetas de eventos interactivas: Cada evento se muestra como una tarjeta clicable que se abre en Google Calendar
🕐 Visualización inteligente de la hora: Formatea automáticamente eventos de día completo frente a eventos con hora, con soporte de zona horaria
📍 Integración de ubicación: Muestra ubicaciones de reuniones y enlaces de reuniones virtuales
👥 Información de asistentes: Muestra recuentos de asistentes y detalles de participantes
✅ Indicadores de estado: Estado codificado por colores (confirmado, tentativo, cancelado) con retroalimentación visual
📱 Diseño adaptable: Diseño optimizado para móviles con interacciones táctiles
🎨 Estilo de tema oscuro: Apariencia profesional con fondos degradados y efectos de desplazamiento
Documentos profesionales - Genera informes con métricas y gráficos:
{{ generate_report_doc(
report_title='Q4 Performance Report',
metrics=[{'value': '$1.2M', 'label': 'Revenue', 'change': 15}],
company_name='Your Company'
) }}🔍 Descubrimiento de macros y creación dinámica
Explora todas las macros disponibles mediante el sistema de recursos de plantillas:
# Access the template://macros resource to discover all available macros
macros = await access_resource("template://macros")
# Returns comprehensive macro information with usage examples
# Access specific macro details
macro_details = await access_resource("template://macros/render_gmail_labels_chips")🎯 Creación dinámica de macros
Crea macros personalizadas en tiempo de ejecución con la herramienta create_template_macro:
# Create a new macro dynamically
await create_template_macro(
macro_name="render_task_status_badge",
macro_content='''
{% macro render_task_status_badge(status, size='small') %}
{% if status == 'completed' %}
<span class="status-badge status-completed {{ size }}">✅ Complete</span>
{% elif status == 'in_progress' %}
<span class="status-badge status-in-progress {{ size }}">🔄 In Progress</span>
{% else %}
<span class="status-badge status-pending {{ size }}">⏳ {{ status|title }}</span>
{% endif %}
{% endmacro %}
''',
description="Renders visual status badges for task states with appropriate icons",
usage_example="{{ render_task_status_badge('completed', 'large') }}",
persist_to_file=True
)
# Immediately use the newly created macro
await send_gmail_message(
html_body="Task Status: {{ render_task_status_badge('completed', 'large') }}"
)Macros basadas en DSL — las macros dinámicas también pueden incorporar notación DSL de tarjetas de Google Chat para generar tarjetas enriquecidas y estructuradas. Los símbolos DSL definen el diseño de la tarjeta mientras que Jinja2 gestiona el contenido dinámico:
{# workspace_dashboard.j2 — a dynamic macro that outputs a Google Chat card #}
{% macro workspace_dashboard(user_email, stats=None, quick_actions=None) %}
{% set username = user_email.split('@')[0] if user_email else 'User' %}
{% set default_stats = stats or [
{'label': 'Emails', 'value': '12 unread'},
{'label': 'Calendar', 'value': '3 meetings today'},
{'label': 'Tasks', 'value': '5 pending'}
] %}
§[δ×3, ℊ[ǵ×4], §[δ×2, Ƀ[ᵬ×3]]]
Welcome back, {{ username | title }}!
Your Workspace Overview:
{% for stat in default_stats %}
- {{ stat.label }}: {{ stat.value }}
{% endfor %}
Actions:
- Button: Open Gmail → https://mail.google.com
- Button: Open Calendar → https://calendar.google.com
- Button: Open Drive → https://drive.google.com
{% endmacro %}La línea DSL §[δ×3, ℊ[ǵ×4], §[δ×2, Ƀ[ᵬ×3]]] define la estructura de la tarjeta: una Sección con 3 widgets DecoratedText, una Cuadrícula con 4 elementos, y una Sección anidada con 2 widgets DecoratedText y una Lista de botones con 3 botones. La plantilla Jinja2 rellena el contenido dinámicamente — y como se guarda en templates/dynamic/, está disponible inmediatamente para send_dynamic_card y otras herramientas.
Características clave:
⚡ Disponibilidad inmediata: Las macros están disponibles al instante después de su creación
🎯 Integración de recursos: Disponibles automáticamente mediante
template://macros/macro_name💾 Persistencia opcional: Guarda macros en disco para disponibilidad permanente
🔄 Procesamiento de plantillas: Validación completa de sintaxis Jinja2 y gestión de errores
💬 Integración DSL: Las macros pueden generar notación DSL de tarjetas para tarjetas enriquecidas de Google Chat
🚀 Uso en el mundo real
Las plantillas se pueden usar directamente en llamadas de herramientas para obtener resultados hermosos y estructurados:
# Send a beautiful email with calendar dashboard
await send_gmail_message(
to="manager@company.com",
subject="Weekly Schedule Update",
html_body="{{ render_calendar_events_dashboard( service://calendar/events, 'My upcoming events') }}",
content_type="mixed"
)
# Generate and send a professional report
await create_doc(
title="Q4 Performance Report",
content="{{ generate_report_doc( report_title='Quarterly Results', company_name='GoogleUnlimited' ) }}"
)📚 Recursos del sistema de plantillas:
🎨 Directorio de plantillas - Colección completa de plantillas y macros Jinja2
💌 Plantillas de correo hermosas - Estilos y temas HTML enriquecidos para correos
🏷️ Tarjetas de etiquetas de Gmail - Visualización interactiva de etiquetas con chips
📅 Panel de calendario - Vistas de cronograma de eventos y programación
📄 Plantillas de documentos - Formato estructurado de documentos
🗂️ Descubrimiento de recursos
GoogleUnlimited proporciona un potente sistema de recursos MCP que permite un acceso a datos ultrarrápido sin llamadas a la API mediante patrones de URI inteligentes.

🎯 Patrones de URI de recursos
Patrón | Propósito | Ejemplo | Devuelve |
| Estado de autenticación del usuario |
| Perfil + estado de autenticación |
| Listas de servicios disponibles |
| [filtros, etiquetas] |
| Todos los elementos de la lista |
| Todas las etiquetas de Gmail |
| Detalles de un elemento específico |
| Detalles de la etiqueta INBOX |
| Elementos recientes |
| Archivos recientes de Drive |
| Búsqueda semántica |
| Respuestas relevantes |
🏗️ Archivos de recursos clave
resources/user_resources.py: Autenticación, perfiles, gestión de sesiones (1.812 líneas)resources/service_list_resources.py: Descubrimiento de servicios mediante TagBasedResourceMiddleware (446 líneas)middleware/qdrant_core/resources.py: Búsqueda y análisis impulsados por IA (319 líneas)
⚡ Acceso ultrarrápido
# Instant Gmail labels (no API call needed)
labels = await access_resource("service://gmail/labels")
# Current user info from session
user = await access_resource("user://current/email")
# Semantic search across all tool responses
results = await access_resource("qdrant://search/gmail errors today")
# Recent calendar events
events = await access_resource("recent://calendar")📚 Documentación del sistema de recursos:
🗂️ Recursos de usuario - Autenticación, perfiles y gestión de sesiones (1.812 líneas)
🏷️ Recursos de listas de servicios - Descubrimiento de servicios mediante TagBasedResourceMiddleware (446 líneas)
🧠 Recursos principales de Qdrant - Búsqueda y análisis impulsados por IA (319 líneas)
📋 Guía de patrones de recursos - Referencia completa de patrones de URI y ejemplos de uso
🧪 Marco de pruebas
GoogleUnlimited incluye pruebas exhaustivas con pruebas de cliente que validan el uso de MCP exactamente como lo experimentaría un LLM, además de suites de pruebas adicionales. 559 pruebas superadas con una tasa de éxito del 100 %.
🎯 Enfoque de pruebas de cliente

Las pruebas de cliente son el componente más importante: proporcionan pruebas deterministas de las operaciones MCP mediante integración de recursos reales y patrones estandarizados en las más de 92 herramientas y 9 servicios de Google. Estas pruebas validan tanto la autenticación explícita por correo electrónico como los patrones de inyección de middleware.
🚀 Comandos rápidos de prueba
# 🧪 Run all client tests (primary test suite)
uv run pytest tests/client/ -v
# 📧 Test specific service
uv run pytest tests/client/ -k "gmail" -v
# 🔐 Authentication required tests
uv run pytest tests/client/ -m "auth_required" -v🔬 Integración de ID de recursos reales
El marco de pruebas obtiene IDs reales de los recursos de servicios para realizar pruebas realistas:
# Available fixtures for real resource testing
real_gmail_message_id # From service://gmail/messages
real_drive_document_id # From service://drive/items
real_calendar_event_id # From service://calendar/events
real_photos_album_id # From service://photos/albums
real_forms_form_id # From service://forms/forms
real_chat_space_id # From service://chat/spaces🔄 Canal de CI/CD
Pruebas y publicación automatizadas mediante GitHub Actions:
Flujo de trabajo de CI: Se ejecuta en cada PR y push a main
Pruebas en matriz de Python 3.11 y 3.12
Linting con
ruff checky formato conruff formatEjecución completa de la suite de pruebas
Publicación en TestPyPI: Publicación automatizada de paquetes para pruebas
📚 Recursos de pruebas:
📋 Guía del marco de pruebas de cliente - Documentación y patrones completos de pruebas de cliente
🧪 Directorio de pruebas de cliente - Pruebas de integración de recursos reales para validación determinista de MCP
🤖 Integración de cliente MCP - Aprende más sobre patrones y uso de clientes MCP
🔐 Patrones de autenticación - Pruebas de validación de correo electrónico frente a inyección de middleware
🔒 Seguridad y autenticación
GoogleUnlimited implementa seguridad de nivel empresarial con OAuth 2.1 + PKCE, gestión avanzada de sesiones y capacidades de auditoría exhaustivas.

🛡️ Flujos de autenticación
🌐 OAuth de MCP Inspector: Cumple con la especificación MCP con registro dinámico de clientes
🖥️ OAuth directo del servidor: Autenticación basada en web para acceso directo
🔧 JWT de desarrollo: Modo de prueba con tokens generados
📁 Credenciales de archivo mejoradas: Almacenamiento persistente con opciones de cifrado
🔑 Clientes OAuth personalizados: Usa tus propias credenciales OAuth con respaldo automático
🪪 Claves de API por usuario: Claves individuales generadas al completar OAuth con aislamiento de credenciales
✨ Características de seguridad
🔐 OAuth 2.1 + PKCE: Autenticación moderna con intercambio de clave de prueba (compatible con clientes públicos)
🔑 Claves de API por usuario: Claves únicas y revocables por usuario con almacenamiento solo de hash y búsqueda segura en tiempo
🛡️ Aislamiento de credenciales: Control de acceso basado en procedencia de autenticación que evita la herencia de credenciales entre usuarios
🔗 Vinculación de cuentas: Vinculación bidireccional de cuentas para acceso multi-cuenta con clave por usuario
🔒 Cifrado criptográfico: Claves de cifrado derivadas de HKDF-SHA256 vinculadas a
MCP_API_KEY🔒 Aislamiento de sesiones: Soporte multi-tenant que evita fugas de datos
🏷️ Más de 27 ámbitos de API: Gestión granular de permisos en todos los servicios
📊 Registro de auditoría: Seguimiento completo de eventos de seguridad con procedencia de autenticación
🔐 Cifrado AES-256: Almacenamiento de credenciales con soporte de migración de claves heredadas
🔄 Respaldo de tres niveles: Persistencia robusta de credenciales entre reinicios del servidor (State Map → UnifiedSession → Context Storage)
🧹 Eliminación de datos sensibles: Los metadatos de autenticación se eliminan de los embeddings de Qdrant antes del almacenamiento
⚙️ Configuración de seguridad
# 🔒 Security settings in .env
CREDENTIAL_STORAGE_MODE=FILE_ENCRYPTED
SESSION_SECRET_KEY=your-secret-key
SESSION_TIMEOUT_MINUTES=30
ENABLE_AUDIT_LOGGING=true
GMAIL_ALLOW_LIST=trusted@example.com📚 Recursos de documentación de seguridad:
🛡️ Arquitectura unificada de OAuth - Arquitectura de seguridad completa y diseño de autenticación
🔐 Implementación de OAuth 2.1 + PKCE - Autenticación moderna con intercambio de clave de prueba
🏠 Guía de gestión de sesiones - Soporte multi-tenant y aislamiento de sesiones
🔒 Cifrado y almacenamiento - Cifrado de credenciales AES-256 y claves específicas de la máquina
📊 Sistema de registro de auditoría - Seguimiento y monitoreo completos de eventos de seguridad
🚀 ¿Listo para revolucionar tu integración con Google Workspace?
📚 Documentación • 🔧 Configuración • 🎯 Referencia de API • 🧪 Pruebas
Maintenance
Related MCP Servers
- Apache 2.0
- AlicenseBqualityAmaintenanceMCP server integrating multiple Google Workspace services including Gmail, Calendar, Drive, Sheets, Docs, Tasks, People, Forms, and Slides, enabling users to manage emails, events, files, documents, and more through natural language.15MIT
- AlicenseBqualityCmaintenanceComprehensive Google Workspace MCP server with Gmail, Drive, Calendar, and Contacts integration.2612MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes 17 Google Workspace APIs (e.g., Gmail, Drive, Calendar) as auto-generated tools for AI assistants, enabling natural language control of Google services.
Related MCP Connectors
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
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/dipseth/google_workspace_fastmcp2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server