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

MCP Google Workspace

Configurez les serveurs MCP distants de Google Workspace pour Gmail, Drive, Calendar, People et Chat dans LibreChat.

Google fournit des serveurs distants Model Context Protocol (MCP) pour les produits Google Workspace. Dans LibreChat, chaque produit Google Workspace est configuré comme son propre serveur MCP distant compatible OAuth.

Aperçu développeur

Google marque les serveurs MCP de Google Workspace comme faisant partie du programme Google Workspace Developer Preview. Consultez la documentation actuelle de Google avant de déployer cela à grande échelle, car les produits disponibles, les portées (scopes) et les exigences de vérification peuvent changer.

Ce que vous allez configurer

Google Workspace MCP n'est pas un serveur combiné unique. Configurez uniquement les produits que vous souhaitez exposer aux utilisateurs :

ProduitURL du serveur 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

Chaque utilisateur se connecte à chaque serveur depuis l'interface utilisateur de LibreChat. LibreChat stocke les jetons OAuth par utilisateur, ainsi l'accès à Gmail, Drive, Calendar, People et Chat suit le compte Google qui a autorisé la connexion.

Prérequis

  • Un projet Google Cloud.
  • Autorisation d'activer des API et de créer des clients OAuth dans ce projet.
  • gcloud installé et authentifié, ou accès à la console Google Cloud.
  • Une instance LibreChat en cours d'exécution avec librechat.yaml monté ou chargé d'une autre manière.
  • L'URL de base publique que les utilisateurs utilisent pour ouvrir LibreChat, par exemple http://localhost:3080 pour le développement local ou https://chat.example.com pour la production.

Chemin de rappel OAuth

Le chemin de rappel OAuth MCP de LibreChat est BASE_URL/api/mcp/SERVER_NAME/oauth/callback. SERVER_NAME est la clé sous mcpServers dans librechat.yaml, telle que gmail ou drive.

Configuration

Activer les API Google Workspace

Remplacez PROJECT_ID par votre identifiant de projet Google Cloud :

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

Activer les services MCP de Google Workspace

Activez les services MCP pour les produits que vous prévoyez de configurer :

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

Configurez Google Chat, si nécessaire

Le serveur MCP Google Chat nécessite une application Chat dans le même projet Google Cloud.

Dans la console Google Cloud, ouvrez Google Chat API > Manage > Configuration et créez une application Chat :

  • Nom de l'application : Chat MCP
  • URL de l'avatar : https://developers.google.com/chat/images/quickstart-app-avatar.png
  • Description : Chat MCP server
  • Fonctionnalité : désactivez Enable interactive features
  • Journaux : sélectionnez Enregistrer les erreurs dans la journalisation

Cliquez sur Save.

Compte Workspace requis pour le Chat

La configuration de l'application Google Chat peut être indisponible pour les comptes Google grand public. Si la console indique que l'API Google Chat est uniquement disponible pour les utilisateurs de Google Workspace, omettez le serveur MCP chat ou utilisez un projet/compte pris en charge par Workspace.

Configurer la plateforme Google Auth

Dans la console Google Cloud, accédez à Google Auth Platform.

Si la Google Auth Platform n'est pas encore configurée, cliquez sur Get Started et fournissez :

  • Nom de l'application : utilisez un nom clair, tel que LibreChat Google Workspace MCP.
  • E-mail de support utilisateur : votre e-mail de support ou groupe Google.
  • Audience : choisissez Internal pour une organisation Google Workspace, ou External si les utilisateurs sont en dehors de votre organisation ou si vous utilisez un compte Google personnel.
  • Coordonnées du développeur : une adresse e-mail où Google peut vous contacter au sujet du projet.

Si vous choisissez External et maintenez l'application en mode test, ajoutez-vous ainsi que tout autre utilisateur autorisé sous Audience > Test users.

Ajouter des étendues d'accès aux données (Data Access scopes)

Ouvrez Data Access > Add or Remove Scopes. Sous Manually add scopes, collez les scopes pour les serveurs que vous souhaitez utiliser.

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

Cliquez sur Add to Table, Update, puis Save.

Portées sensibles et restreintes

Les portées Gmail, Drive, Chat, Contacts et Directory peuvent déclencher l'examen des portées sensibles ou restreintes de Google. Pour un usage personnel ou un développement limité, les utilisateurs peuvent voir apparaître un avertissement d'application non vérifiée et une limite de 100 utilisateurs. Pour un usage public ou à l'échelle de l'organisation, terminez le processus de vérification OAuth de Google ainsi que tout examen requis pour les portées restreintes.

Créer un client OAuth pour application Web

Dans Google Auth Platform > Clients, créez un client OAuth :

  • Type d'application : Web application
  • Nom : utilisez un nom descriptif, tel que LibreChat Google Workspace MCP

Ajoutez un URI de redirection autorisé pour chaque serveur que vous configurez. Pour le développement 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

Pour la production, remplacez http://localhost:3080 par votre URL LibreChat :

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

Cliquez sur Create, puis copiez le Client ID et le Client secret.

Ajouter les identifiants OAuth à .env

Ajoutez les valeurs du client OAuth à votre fichier .env de LibreChat :

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

Vous pouvez utiliser des noms de variables d'environnement différents si vous mettez également à jour les références dans librechat.yaml.

Ajouter les serveurs MCP à librechat.yaml

Ajoutez les serveurs que vous souhaitez sous mcpServers. Cet exemple utilise tous les serveurs MCP Google Workspace actuellement documentés :

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 est déployé sur une URL publique, mettez à jour chaque redirect_uri pour qu'elle corresponde exactement à l'URI de redirection enregistrée dans Google Cloud.

Listes d'autorisation strictes de domaines MCP

Si votre librechat.yaml configure également mcpSettings.allowedDomains, ajoutez les hôtes MCP Google que vous utilisez, tels que gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.com et people.googleapis.com.

Redémarrer LibreChat

Redémarrez LibreChat pour qu'il recharge .env et librechat.yaml.

DéploiementCommande
Dockerdocker compose up -d
LocalArrêtez le serveur, puis redémarrez-le

Pour confirmer que les serveurs sont chargés dans Docker, vérifiez les journaux de l'API :

docker logs LibreChat --tail 200 | grep MCP

Connectez chaque serveur dans LibreChat

Ouvrez LibreChat, puis ouvrez MCP Settings ou le menu déroulant MCP Servers dans la zone de saisie du chat.

Pour chaque serveur Google Workspace :

  1. Cliquez sur Connect.
  2. Terminez le flux Google OAuth dans le navigateur.
  3. Examinez les portées demandées.
  4. Cliquez sur Allow.

Une fois l'authentification OAuth réussie, les outils du serveur deviennent disponibles dans le chat et dans l'Agent Builder.

Test

Essayez des prompts qui ciblent un serveur à la fois :

ServeurInvite (Prompt)
People"Selon mon profil Google, quel est mon nom ?"
Drive"Trouve un fichier nommé Marketing Plan et résume-le."
Gmail"Trouve mon dernier e-mail concernant le marketing plan."
Gmail"Rédige un e-mail à [email protected] pour dire que j'approuve le marketing plan."
Calendar"Quand est ma prochaine réunion avec Ariel ?"
Chat"Recherche les messages Google Chat récents concernant le marketing plan."

Dépannage

SymptômeÀ vérifier
Google affiche redirect_uri_mismatchL'URI de redirection du client OAuth Google doit correspondre exactement au redirect_uri dans librechat.yaml, y compris le protocole, le nom d'hôte, le port, le nom du serveur et le chemin.
LibreChat affiche le serveur mais aucun outilConnectez le serveur depuis l'interface utilisateur de LibreChat. Les serveurs distants activés pour OAuth exposent les outils une fois que l'utilisateur s'est authentifié.
Google affiche un avertissement d'application non vérifiéeCeci est attendu pour les applications non vérifiées demandant des accès sensibles ou restreints. Pour un usage personnel ou un développement limité, les utilisateurs peuvent ignorer l'avertissement jusqu'à ce que le projet atteigne la limite d'utilisateurs non vérifiés de Google.
OAuth fonctionne en test mais expire plus tardLes applications externes en mode test peuvent recevoir des jetons d'actualisation qui expirent après 7 jours. Publiez l'application en production pour obtenir des jetons d'actualisation à plus longue durée de vie, ou ré-authentifiez-vous pendant le développement.
La configuration de Google Chat est désactivéeUtilisez un projet/compte Google Workspace pour Chat, ou omettez le serveur chat.
Les requêtes MCP sont bloquées par la politique de domaine de LibreChatSi mcpSettings.allowedDomains est configuré, ajoutez les noms d'hôte des serveurs MCP Google que vous utilisez.

Notes sur la sécurité

  • Connectez les serveurs MCP de Google Workspace uniquement aux instances de LibreChat en lesquelles vous avez confiance.
  • Ne demandez que les produits et les portées dont les utilisateurs ont réellement besoin.
  • Examinez les actions suggérées par l'assistant avant d'envoyer des e-mails, de publier des messages de chat, de télécharger des fichiers ou de modifier des événements de calendrier.
  • Considérez les messages électroniques, les documents et les messages de chat comme des entrées non fiables. Ils peuvent contenir des tentatives d'injection de prompt indirectes visant à influencer l'assistant.
  • Pour les déploiements publics ou à l'échelle de l'organisation, terminez la vérification Google OAuth et suivez les contrôles d'accès aux applications tierces de votre organisation.

Que pensez-vous de ce guide ?