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:
| Product | MCP server URL |
|---|---|
| Gmail | https://gmailmcp.googleapis.com/mcp/v1 |
| Google Drive | https://drivemcp.googleapis.com/mcp/v1 |
| Google Calendar | https://calendarmcp.googleapis.com/mcp/v1 |
| People API | https://people.googleapis.com/mcp/v1 |
| Google Chat | https://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.
gcloudgeïnstalleerd en geauthenticeerd, of toegang tot de Google Cloud console.- Een draaiende LibreChat-instantie met
librechat.yamlgekoppeld of op een andere manier geladen. - De publieke basis-URL die gebruikers gebruiken om LibreChat te openen, bijvoorbeeld
http://localhost:3080voor lokale ontwikkeling ofhttps://chat.example.comvoor 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_IDSchakel 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_IDConfigureer 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.readonlyKlik 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/callbackVervang voor productie http://localhost:3080 door jouw LibreChat URL:
https://chat.example.com/api/mcp/gmail/oauth/callbackKlik 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-secretJe 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.
| Deployment | Command |
|---|---|
| Docker | docker compose up -d |
| Lokaal | Stop 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 MCPVerbind 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:
- Klik op Connect.
- Voltooi de Google OAuth-flow in de browser.
- Controleer de gevraagde scopes.
- 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:
| Server | Prompt |
|---|---|
| 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
| Symptoom | Wat te controleren |
|---|---|
Google geeft redirect_uri_mismatch | De 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 tools | Verbind 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 app | Dit 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 later | Externe 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 uitgeschakeld | Gebruik een project/account ondersteund door Google Workspace voor Chat, of laat de chat server weg. |
| MCP-verzoeken worden geblokkeerd door het LibreChat domeinbeleid | Als 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.
Gerelateerde pagina's
Hoe is deze gids?