Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

MCP de Google Workspace

Configure los servidores MCP de Google Workspace remotos para Gmail, Drive, Calendar, People y Chat en LibreChat.

Google proporciona servidores remotos de Model Context Protocol (MCP) para los productos de Google Workspace. En LibreChat, cada producto de Google Workspace se configura como su propio servidor MCP remoto habilitado para OAuth.

Vista previa para desarrolladores

Google marca los servidores MCP de Workspace como parte del Google Workspace Developer Preview Program. Revise la documentación actual de Google antes de implementar esto de forma generalizada, ya que los productos, alcances y requisitos de verificación disponibles pueden cambiar.

Lo que configurarás

Google Workspace MCP no es un servidor combinado. Configure solo los productos que desee exponer a los usuarios:

ProductoURL del servidor MCP
Gmailhttps://gmailmcp.googleapis.com/mcp/v1
Google Drivehttps://drivemcp.googleapis.com/mcp/v1
Google Calendarhttps://calendarmcp.googleapis.com/mcp/v1
People APIhttps://people.googleapis.com/mcp/v1
Google Chathttps://chatmcp.googleapis.com/mcp/v1

Cada usuario conecta cada servidor desde la interfaz de usuario de LibreChat. LibreChat almacena los tokens OAuth por usuario, por lo que el acceso a Gmail, Drive, Calendar, People y Chat sigue la cuenta de Google que autorizó la conexión.

Requisitos previos

  • Un proyecto de Google Cloud.
  • Permiso para habilitar APIs y crear clientes OAuth en ese proyecto.
  • gcloud instalado y autenticado, o acceso a la consola de Google Cloud.
  • Una instancia de LibreChat en ejecución con librechat.yaml montado o cargado de otra manera.
  • La URL base pública que los usuarios utilizan para abrir LibreChat, por ejemplo http://localhost:3080 para desarrollo local o https://chat.example.com para producción.

Ruta de callback de OAuth

La ruta de callback OAuth de MCP de LibreChat es BASE_URL/api/mcp/SERVER_NAME/oauth/callback. SERVER_NAME es la clave bajo mcpServers en librechat.yaml, tal como gmail o drive.

Configuración

Habilitar las APIs de Google Workspace

Reemplace PROJECT_ID con su ID de proyecto de Google Cloud:

gcloud services enable gmail.googleapis.com \
  drive.googleapis.com \
  calendar-json.googleapis.com \
  chat.googleapis.com \
  people.googleapis.com \
  --project=PROJECT_ID

Habilitar los servicios MCP de Google Workspace

Habilite los servicios MCP para los productos que planea configurar:

gcloud services enable gmailmcp.googleapis.com \
  drivemcp.googleapis.com \
  calendarmcp.googleapis.com \
  chatmcp.googleapis.com \
  people.googleapis.com \
  --project=PROJECT_ID

Configurar Google Chat, si es necesario

El servidor MCP de Google Chat requiere una aplicación de Chat en el mismo proyecto de Google Cloud.

En la consola de Google Cloud, abre Google Chat API > Manage > Configuration y crea una aplicación de Chat:

  • Nombre de la aplicación: Chat MCP
  • URL del avatar: https://developers.google.com/chat/images/quickstart-app-avatar.png
  • Descripción: Chat MCP server
  • Funcionalidad: desactiva Enable interactive features
  • Registros: seleccione Registrar errores en Logging

Haz clic en Save.

Se requiere una cuenta de Workspace para el Chat

La configuración de la aplicación Google Chat puede no estar disponible para cuentas personales de Google. Si la consola indica que la Google Chat API solo está disponible para usuarios de Google Workspace, omita el servidor MCP chat o utilice un proyecto/cuenta respaldado por Workspace.

Configurar la plataforma de autenticación de Google

En la consola de Google Cloud, ve a Google Auth Platform.

Si la Google Auth Platform aún no está configurada, haz clic en Get Started y proporciona:

  • Nombre de la aplicación: utilice un nombre claro, como LibreChat Google Workspace MCP.
  • Correo electrónico de soporte al usuario: su correo electrónico de soporte o grupo de Google.
  • Audiencia: elija Internal para una organización de Google Workspace, o External si los usuarios están fuera de su organización o si está utilizando una cuenta personal de Google.
  • Información de contacto del desarrollador: un correo electrónico donde Google puede notificarte sobre el proyecto.

Si eliges External y mantienes la aplicación en modo de prueba, agrégate a ti mismo y a cualquier otro usuario permitido en Audience > Test users.

Agregar ámbitos de acceso a datos

Abre Data Access > Add or Remove Scopes. Debajo de Manually add scopes, pega los scopes para los servidores que deseas utilizar.

https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/calendar.calendarlist.readonly
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.events.readonly
https://www.googleapis.com/auth/directory.readonly
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/contacts.readonly
https://www.googleapis.com/auth/chat.spaces.readonly
https://www.googleapis.com/auth/chat.memberships.readonly
https://www.googleapis.com/auth/chat.messages.readonly
https://www.googleapis.com/auth/chat.messages.create
https://www.googleapis.com/auth/chat.users.readstate.readonly

Haz clic en Add to Table, Update, y luego en Save.

Ámbitos sensibles y restringidos

Los alcances (scopes) de Gmail, Drive, Chat, Contacts y Directory pueden activar la revisión de alcances sensibles o restringidos de Google. Para uso personal o de desarrollo limitado, los usuarios pueden ver una advertencia de aplicación no verificada y un límite de 100 usuarios. Para uso público o en toda la organización, complete el proceso de verificación de OAuth de Google y cualquier revisión de alcance restringido requerida.

Crear un cliente OAuth de aplicación web

En Google Auth Platform > Clients, crea un cliente OAuth:

  • Tipo de aplicación: Web application
  • Name: use un nombre descriptivo, como LibreChat Google Workspace MCP

Agregue una URI de redireccionamiento autorizada para cada servidor que configure. Para el desarrollo local:

http://localhost:3080/api/mcp/gmail/oauth/callback
http://localhost:3080/api/mcp/drive/oauth/callback
http://localhost:3080/api/mcp/calendar/oauth/callback
http://localhost:3080/api/mcp/people/oauth/callback
http://localhost:3080/api/mcp/chat/oauth/callback

Para producción, reemplace http://localhost:3080 con su URL de LibreChat:

https://chat.example.com/api/mcp/gmail/oauth/callback

Haz clic en Create, luego copia el Client ID y el Client secret.

Agregar credenciales OAuth a .env

Agregue los valores del cliente OAuth a su archivo .env de LibreChat:

GOOGLE_WORKSPACE_MCP_CLIENT_ID=your-oauth-client-id
GOOGLE_WORKSPACE_MCP_CLIENT_SECRET=your-oauth-client-secret

Puedes usar diferentes nombres de variables de entorno si también actualizas las referencias en librechat.yaml.

Agregar los servidores MCP a librechat.yaml

Agregue los servidores que desee bajo mcpServers. Este ejemplo utiliza todos los servidores MCP de Google Workspace documentados actualmente:

mcpServers:
  gmail:
    type: streamable-http
    url: 'https://gmailmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.compose'
      redirect_uri: 'http://localhost:3080/api/mcp/gmail/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']
 
  drive:
    type: streamable-http
    url: 'https://drivemcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.file'
      redirect_uri: 'http://localhost:3080/api/mcp/drive/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']
 
  calendar:
    type: streamable-http
    url: 'https://calendarmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/calendar.calendarlist.readonly https://www.googleapis.com/auth/calendar.events.freebusy https://www.googleapis.com/auth/calendar.events.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/calendar/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']
 
  people:
    type: streamable-http
    url: 'https://people.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/contacts.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/people/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']
 
  chat:
    type: streamable-http
    url: 'https://chatmcp.googleapis.com/mcp/v1'
    timeout: 60000
    initTimeout: 150000
    requiresOAuth: true
    startup: false
    oauth:
      authorization_url: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent'
      token_url: 'https://oauth2.googleapis.com/token'
      client_id: '${GOOGLE_WORKSPACE_MCP_CLIENT_ID}'
      client_secret: '${GOOGLE_WORKSPACE_MCP_CLIENT_SECRET}'
      scope: 'https://www.googleapis.com/auth/chat.spaces.readonly https://www.googleapis.com/auth/chat.memberships.readonly https://www.googleapis.com/auth/chat.messages.readonly https://www.googleapis.com/auth/chat.messages.create https://www.googleapis.com/auth/chat.users.readstate.readonly'
      redirect_uri: 'http://localhost:3080/api/mcp/chat/oauth/callback'
      token_exchange_method: default_post
      token_endpoint_auth_methods_supported: ['client_secret_post']

Si LibreChat se despliega en una URL pública, actualice cada redirect_uri para que coincida exactamente con la URI de redireccionamiento registrada en Google Cloud.

Listas de permitidos de dominios MCP estrictas

Si tu librechat.yaml también configura mcpSettings.allowedDomains, añade los hosts de Google MCP que utilices, tales como gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.com y people.googleapis.com.

Reiniciar LibreChat

Reinicia LibreChat para que recargue .env y librechat.yaml.

DespliegueComando
Dockerdocker compose up -d
LocalDetenga el servidor y luego inícielo de nuevo

Para confirmar que los servidores se cargaron en Docker, revisa los registros de la API:

docker logs LibreChat --tail 200 | grep MCP

Conectar cada servidor en LibreChat

Abra LibreChat, luego abra MCP Settings o el menú desplegable MCP Servers en la entrada del chat.

Para cada servidor de Google Workspace:

  1. Haz clic en Connect.
  2. Completa el flujo de Google OAuth en el navegador.
  3. Revise los alcances solicitados.
  4. Haz clic en Allow.

Después de que OAuth tenga éxito, las herramientas del servidor estarán disponibles en el chat y en el Agent Builder.

Pruebas

Prueba prompts que se dirijan a un servidor a la vez:

ServidorPrompt
People"Según mi perfil de Google, ¿cuál es mi nombre?"
Drive"Busca un archivo llamado Marketing Plan y haz un resumen."
Gmail"Busca mi correo más reciente sobre el plan de marketing."
Gmail"Redacta un correo para [email protected] diciendo que apruebo el plan de marketing."
Calendar"¿Cuándo es mi próxima reunión con Ariel?"
Chat"Busca mensajes recientes de Google Chat sobre el plan de marketing."

Solución de problemas

SíntomaQué verificar
Google dice redirect_uri_mismatchEl URI de redirección del cliente OAuth de Google debe coincidir exactamente con el redirect_uri en librechat.yaml, incluyendo el protocolo, nombre de host, puerto, nombre del servidor y la ruta.
LibreChat muestra el servidor pero no las herramientasConecta el servidor desde la interfaz de usuario de LibreChat. Los servidores remotos habilitados para OAuth exponen herramientas después de que el usuario se haya autenticado.
Google muestra una advertencia de aplicación no verificadaEsto es esperado para aplicaciones no verificadas que solicitan alcances sensibles o restringidos. Para uso personal o de desarrollo limitado, los usuarios pueden continuar a través de la advertencia hasta que el proyecto alcance el límite de usuarios no verificados de Google.
OAuth funciona en pruebas pero luego expiraLas aplicaciones externas en modo de prueba pueden recibir tokens de actualización que expiran después de 7 días. Publica la aplicación en producción para obtener tokens de actualización de mayor duración, o vuelve a autenticarte durante el desarrollo.
La configuración de Google Chat está deshabilitadaUsa un proyecto/cuenta respaldado por Google Workspace para Chat, u omite el servidor chat.
Las solicitudes MCP son bloqueadas por la política de dominio de LibreChatSi mcpSettings.allowedDomains está configurado, añade los nombres de host del servidor MCP de Google que utilizas.

Notas de seguridad

  • Conecte los servidores MCP de Google Workspace solo a instancias de LibreChat en las que confíe.
  • Solicite solo los productos y alcances que los usuarios realmente necesitan.
  • Revise las acciones sugeridas por el asistente antes de enviar correos electrónicos, publicar mensajes en Chat, subir archivos o cambiar eventos del calendario.
  • Trate los mensajes de correo electrónico, documentos y mensajes de chat como entradas no confiables. Estos pueden contener intentos de inyección de prompts indirecta que buscan influir en el asistente.
  • Para implementaciones públicas o a nivel de toda la organización, complete la verificación de Google OAuth y siga los controles de acceso a aplicaciones de terceros de su organización.

¿Qué te parece esta guía?