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

Google Workspace MCP

Configureer Google's externe Workspace MCP-servers voor Gmail, Drive, Calendar, People en Chat in LibreChat.

Google biedt externe Model Context Protocol (MCP) servers voor Google Workspace-producten. In LibreChat wordt elk Google Workspace-product geconfigureerd als zijn eigen OAuth-geschakelde externe MCP-server.

Ontwikkelaarsvoorbeeld

Google markeert de Workspace MCP servers als onderdeel van het Google Workspace Developer Preview Program. Bekijk de huidige documentatie van Google voordat je dit op grote schaal implementeert, aangezien beschikbare producten, scopes en verificatievereisten kunnen veranderen.

Wat je gaat configureren

Google Workspace MCP is geen gecombineerde server. Configureer alleen de producten die je aan gebruikers wilt blootstellen:

ProductMCP server URL
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

Elke gebruiker verbindt elke server vanuit de LibreChat UI. LibreChat slaat OAuth-tokens per gebruiker op, dus toegang tot Gmail, Drive, Calendar, People en Chat volgt het Google-account dat de verbinding heeft geautoriseerd.

Vereisten

  • Een Google Cloud-project.
  • Toestemming om API's in te schakelen en OAuth-clients aan te maken in dat project.
  • gcloud geïnstalleerd en geauthenticeerd, of toegang tot de Google Cloud console.
  • Een draaiende LibreChat-instantie met librechat.yaml gekoppeld of op een andere manier geladen.
  • De publieke basis-URL die gebruikers gebruiken om LibreChat te openen, bijvoorbeeld http://localhost:3080 voor lokale ontwikkeling of https://chat.example.com voor productie.

OAuth callback-pad

Het MCP OAuth callback-pad van LibreChat is BASE_URL/api/mcp/SERVER_NAME/oauth/callback. SERVER_NAME is de sleutel onder mcpServers in librechat.yaml, zoals gmail of drive.

Setup

Schakel de Google Workspace API's in

Vervang PROJECT_ID door je Google Cloud project ID:

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

Schakel de Google Workspace MCP-services in

Schakel de MCP-services in voor de producten die u van plan bent te configureren:

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

Configureer Google Chat, indien nodig

De Google Chat MCP server vereist een Chat-app in hetzelfde Google Cloud-project.

Open in de Google Cloud console Google Chat API > Manage > Configuration en maak een Chat-app aan:

  • App-naam: Chat MCP
  • Avatar URL: https://developers.google.com/chat/images/quickstart-app-avatar.png
  • Beschrijving: Chat MCP server
  • Functionaliteit: schakel Enable interactive features uit
  • Logs: selecteer Log errors to Logging

Klik op Save.

Workspace-account vereist voor Chat

De configuratie van de Google Chat-app is mogelijk niet beschikbaar voor consumentenaccounts van Google. Als de console aangeeft dat de Google Chat API alleen beschikbaar is voor Google Workspace-gebruikers, laat dan de chat MCP-server weg of gebruik een project/account dat wordt ondersteund door Workspace.

Configureer het Google Auth Platform

Ga in de Google Cloud console naar Google Auth Platform.

Als het Google Auth Platform nog niet is geconfigureerd, klik dan op Get Started en geef het volgende op:

  • App name: gebruik een duidelijke naam, zoals LibreChat Google Workspace MCP.
  • E-mailadres voor gebruikersondersteuning: uw e-mailadres voor ondersteuning of Google-groep.
  • Doelgroep: kies Intern voor een Google Workspace-organisatie, of Extern als gebruikers zich buiten uw organisatie bevinden of als u een persoonlijk Google-account gebruikt.
  • Contactgegevens voor ontwikkelaars: een e-mailadres waar Google je op de hoogte kan stellen over het project.

Als je External kiest en de app in de testmodus houdt, voeg jezelf en alle andere toegestane gebruikers toe onder Audience > Test users.

Gegevens-toegangsbereiken toevoegen

Open Data Access > Add or Remove Scopes. Plak onder Manually add scopes de scopes voor de servers die je wilt gebruiken.

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

Klik op Add to Table, Update en vervolgens op Save.

Gevoelige en beperkte scopes

Gmail, Drive, Chat, Contacts en Directory scopes kunnen de beoordeling van gevoelige of beperkte scopes door Google activeren. Voor persoonlijk of beperkt ontwikkelingsgebruik kunnen gebruikers een waarschuwing voor een niet-geverifieerde app en een limiet van 100 gebruikers zien. Voor openbaar of organisatiebreed gebruik moet het OAuth-verificatieproces van Google en elke vereiste beoordeling van beperkte scopes worden voltooid.

Een Webapplicatie OAuth-client aanmaken

In Google Auth Platform > Clients, maak een OAuth-client aan:

  • Applicatietype: Web application
  • Naam: gebruik een beschrijvende naam, zoals LibreChat Google Workspace MCP

Voeg een geautoriseerde redirect URI toe voor elke server die je configureert. Voor lokale ontwikkeling:

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

Vervang voor productie http://localhost:3080 door jouw LibreChat URL:

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

Klik op Create en kopieer vervolgens de Client ID en Client secret.

OAuth-referenties toevoegen aan .env

Voeg de OAuth client-waarden toe aan je LibreChat .env bestand:

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

Je kunt andere omgevingsvariabelen gebruiken als je ook de verwijzingen in librechat.yaml bijwerkt.

Voeg de MCP servers toe aan librechat.yaml

Voeg de servers die je wilt gebruiken toe onder mcpServers. Dit voorbeeld gebruikt alle momenteel gedocumenteerde Google Workspace MCP servers:

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']

Als LibreChat op een publieke URL is geïmplementeerd, werk dan elke redirect_uri bij zodat deze exact overeenkomt met de redirect URI die is geregistreerd in Google Cloud.

Strikte MCP-domein-toegestane lijsten

Als je librechat.yaml ook mcpSettings.allowedDomains configureert, voeg dan de Google MCP-hosts toe die je gebruikt, zoals gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.com en people.googleapis.com.

LibreChat herstarten

Herstart LibreChat zodat het .env en librechat.yaml opnieuw laadt.

DeploymentCommand
Dockerdocker compose up -d
LokaalStop de server en start deze opnieuw

Om te bevestigen dat de servers in Docker zijn geladen, controleer je de API-logs:

docker logs LibreChat --tail 200 | grep MCP

Verbind elke server in LibreChat

Open LibreChat en open vervolgens MCP Settings of het MCP Servers-keuzemenu in het chat-invoerveld.

Voor elke Google Workspace-server:

  1. Klik op Connect.
  2. Voltooi de Google OAuth-flow in de browser.
  3. Controleer de gevraagde scopes.
  4. Klik op Allow.

Nadat OAuth is geslaagd, worden de tools van de server beschikbaar in de chat en in de Agent Builder.

Testen

Probeer prompts die zich op één server tegelijk richten:

ServerPrompt
People"Volgens mijn Google-profiel, wat is mijn naam?"
Drive"Zoek een bestand genaamd Marketing Plan en vat het samen."
Gmail"Zoek mijn laatste e-mail over het marketingplan."
Gmail"Stel een e-mail op naar [email protected] waarin ik zeg dat ik het marketingplan goedkeur."
Calendar"Wanneer is mijn volgende vergadering met Ariel?"
Chat"Doorzoek recente Google Chat-berichten over het marketingplan."

Probleemoplossing

SymptoomWat te controleren
Google geeft redirect_uri_mismatchDe Google OAuth client redirect URI moet exact overeenkomen met de redirect_uri in librechat.yaml, inclusief protocol, hostnaam, poort, servernaam en pad.
LibreChat toont de server maar geen toolsVerbind de server vanuit de LibreChat UI. Op afstand bediende servers met OAuth-functionaliteit stellen tools beschikbaar nadat de gebruiker is geauthenticeerd.
Google toont een waarschuwing voor een niet-geverifieerde appDit is te verwachten bij niet-geverifieerde apps die gevoelige of beperkte scopes aanvragen. Voor persoonlijk of beperkt ontwikkelingsgebruik kunnen gebruikers doorgaan na de waarschuwing totdat het project de limiet voor niet-geverifieerde gebruikers van Google bereikt.
OAuth werkt tijdens het testen maar verloopt laterExterne apps in de testmodus kunnen refresh tokens ontvangen die na 7 dagen verlopen. Publiceer de app naar productie voor refresh tokens met een langere levensduur, of authenticeer opnieuw tijdens de ontwikkeling.
Google Chat-configuratie is uitgeschakeldGebruik een project/account ondersteund door Google Workspace voor Chat, of laat de chat server weg.
MCP-verzoeken worden geblokkeerd door het LibreChat domeinbeleidAls mcpSettings.allowedDomains is geconfigureerd, voeg dan de hostnamen van de Google MCP-servers toe die je gebruikt.

Beveiligingsnotities

  • Verbind Google Workspace MCP-servers alleen met LibreChat-instanties die u vertrouwt.
  • Vraag alleen de producten en scopes aan die gebruikers daadwerkelijk nodig hebben.
  • Controleer door de assistent voorgestelde acties voordat je e-mails verstuurt, Chat-berichten plaatst, bestanden uploadt of agenda-afspraken wijzigt.
  • Behandel e-mailberichten, documenten en chatberichten als niet-vertrouwde invoer. Deze kunnen indirecte prompt injection-pogingen bevatten die proberen de assistent te beïnvloeden.
  • Voor publieke of organisatiebrede implementaties moet je de Google OAuth-verificatie voltooien en de toegangscontroles voor apps van derden van je organisatie volgen.

Hoe is deze gids?