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

MCP do Google Workspace

Configure os servidores MCP remotos do Google Workspace para Gmail, Drive, Calendar, People e Chat no LibreChat.

O Google fornece servidores remotos de Model Context Protocol (MCP) para produtos do Google Workspace. No LibreChat, cada produto do Google Workspace é configurado como seu próprio servidor MCP remoto habilitado para OAuth.

Visualização do Desenvolvedor

O Google marca os servidores MCP do Workspace como parte do Google Workspace Developer Preview Program. Revise a documentação atual do Google antes de implantar isso amplamente, pois os produtos, escopos e requisitos de verificação disponíveis podem mudar.

O que você irá configurar

O MCP do Google Workspace não é um servidor combinado único. Configure apenas os produtos que você deseja expor aos usuários:

ProdutoURL do 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 usuário conecta cada servidor a partir da interface do LibreChat. O LibreChat armazena tokens OAuth por usuário, portanto, o acesso ao Gmail, Drive, Calendar, People e Chat segue a conta do Google que autorizou a conexão.

Pré-requisitos

  • Um projeto do Google Cloud.
  • Permissão para habilitar APIs e criar clientes OAuth nesse projeto.
  • gcloud instalado e autenticado, ou acesso ao console do Google Cloud.
  • Uma instância do LibreChat em execução com o librechat.yaml montado ou carregado de outra forma.
  • A URL base pública que os usuários utilizam para abrir o LibreChat, por exemplo http://localhost:3080 para desenvolvimento local ou https://chat.example.com para produção.

Caminho de retorno do OAuth

O caminho de callback OAuth do MCP do LibreChat é BASE_URL/api/mcp/SERVER_NAME/oauth/callback. SERVER_NAME é a chave sob mcpServers no librechat.yaml, como gmail ou drive.

Configuração

Habilitar as APIs do Google Workspace

Substitua PROJECT_ID pelo ID do seu projeto no 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 os serviços MCP do Google Workspace

Habilite os serviços MCP para os produtos que você planeja configurar:

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

Configure o Google Chat, se necessário

O servidor MCP do Google Chat requer um Chat app no mesmo projeto do Google Cloud.

No console do Google Cloud, abra Google Chat API > Manage > Configuration e crie um aplicativo de Chat:

  • Nome do aplicativo: Chat MCP
  • URL do Avatar: https://developers.google.com/chat/images/quickstart-app-avatar.png
  • Descrição: Chat MCP server
  • Funcionalidade: desative Enable interactive features
  • Logs: selecione Log errors to Logging

Clique em Save.

Conta de Workspace necessária para o Chat

A configuração do aplicativo Google Chat pode não estar disponível para contas Google pessoais (consumidor). Se o console informar que a API do Google Chat está disponível apenas para usuários do Google Workspace, omita o servidor MCP chat ou utilize um projeto/conta vinculado ao Workspace.

Configure a Google Auth Platform

No console do Google Cloud, vá para Google Auth Platform.

Se a Google Auth Platform ainda não estiver configurada, clique em Get Started e forneça:

  • Nome do aplicativo: use um nome claro, como LibreChat Google Workspace MCP.
  • E-mail de suporte ao usuário: seu e-mail de suporte ou grupo do Google.
  • Público: escolha Interno para uma organização do Google Workspace, ou Externo se os usuários estiverem fora da sua organização ou se você estiver usando uma conta pessoal do Google.
  • Informações de contato do desenvolvedor: um e-mail onde o Google pode notificá-lo sobre o projeto.

Se você escolher External e mantiver o aplicativo em modo de teste, adicione a si mesmo e a quaisquer outros usuários permitidos em Audience > Test users.

Adicionar escopos de acesso a dados

Abra Data Access > Add or Remove Scopes. Em Manually add scopes, cole os escopos para os servidores que você deseja usar.

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

Clique em Add to Table, Update, e depois em Save.

Escopos sensíveis e restritos

Os escopos Gmail, Drive, Chat, Contacts e Directory podem acionar a revisão de escopo sensível ou restrito do Google. Para uso pessoal ou de desenvolvimento limitado, os usuários podem ver um aviso de aplicativo não verificado e um limite de 100 usuários. Para uso público ou em toda a organização, conclua o processo de verificação OAuth do Google e qualquer revisão de escopo restrito necessária.

Criar um cliente OAuth de aplicação Web

Em Google Auth Platform > Clients, crie um cliente OAuth:

  • Tipo de aplicação: Web application
  • Nome: use um nome descritivo, como LibreChat Google Workspace MCP

Adicione um URI de redirecionamento autorizado para cada servidor que você configurar. Para desenvolvimento 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 produção, substitua http://localhost:3080 pela sua URL do LibreChat:

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

Clique em Create, depois copie o Client ID e o Client secret.

Adicionar credenciais OAuth ao .env

Adicione os valores do cliente OAuth ao seu arquivo .env do LibreChat:

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

Você pode usar nomes de variáveis de ambiente diferentes se também atualizar as referências no librechat.yaml.

Adicione os servidores MCP ao librechat.yaml

Adicione os servidores que você deseja em mcpServers. Este exemplo utiliza todos os servidores MCP do Google Workspace documentados atualmente:

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

Se o LibreChat estiver implantado em uma URL pública, atualize cada redirect_uri para corresponder exatamente ao URI de redirecionamento registrado no Google Cloud.

Listas de permissão de domínio MCP estritas

Se o seu librechat.yaml também configurar mcpSettings.allowedDomains, adicione os hosts MCP do Google que você utiliza, como gmailmcp.googleapis.com, drivemcp.googleapis.com, calendarmcp.googleapis.com, chatmcp.googleapis.com e people.googleapis.com.

Reiniciar o LibreChat

Reinicie o LibreChat para que ele recarregue o .env e o librechat.yaml.

DeploymentCommand
Dockerdocker compose up -d
LocalPare o servidor e inicie-o novamente

Para confirmar que os servidores foram carregados no Docker, verifique os logs da API:

docker logs LibreChat --tail 200 | grep MCP

Conecte cada servidor no LibreChat

Abra o LibreChat, depois abra as MCP Settings ou o menu suspenso MCP Servers na entrada de chat.

Para cada servidor Google Workspace:

  1. Clique em Connect.
  2. Conclua o fluxo de OAuth do Google no navegador.
  3. Revise os escopos solicitados.
  4. Clique em Allow.

Após o sucesso do OAuth, as ferramentas do servidor tornam-se disponíveis no chat e no Agent Builder.

Testando

Tente prompts que visem um servidor de cada vez:

ServidorPrompt
People"De acordo com meu perfil do Google, qual é o meu nome?"
Drive"Encontre um arquivo chamado Marketing Plan e faça um resumo dele."
Gmail"Encontre meu e-mail mais recente sobre o plano de marketing."
Gmail"Redija um e-mail para [email protected] dizendo que aprovo o plano de marketing."
Calendar"Quando é minha próxima reunião com Ariel?"
Chat"Pesquise mensagens recentes do Google Chat sobre o plano de marketing."

Solução de problemas

SintomaO que verificar
Google diz redirect_uri_mismatchO URI de redirecionamento do cliente OAuth do Google deve corresponder exatamente ao redirect_uri no librechat.yaml, incluindo protocolo, nome do host, porta, nome do servidor e caminho.
LibreChat mostra o servidor, mas não as ferramentasConecte o servidor a partir da interface do LibreChat. Servidores remotos com OAuth habilitado expõem ferramentas após o usuário ter se autenticado.
Google mostra um aviso de aplicativo não verificadoIsso é esperado para aplicativos não verificados que solicitam escopos sensíveis ou restritos. Para uso pessoal ou desenvolvimento limitado, os usuários podem prosseguir através do aviso até que o projeto atinja o limite de usuários não verificados do Google.
OAuth funciona em testes, mas expira depoisAplicativos externos em modo de teste podem receber tokens de atualização que expiram após 7 dias. Publique o aplicativo em produção para tokens de atualização de longa duração ou reautentique durante o desenvolvimento.
A configuração do Google Chat está desabilitadaUse um projeto/conta com suporte do Google Workspace para o Chat ou omita o servidor chat.
Solicitações MCP são bloqueadas pela política de domínio do LibreChatSe mcpSettings.allowedDomains estiver configurado, adicione os nomes de host do servidor MCP do Google que você utiliza.

Notas de Segurança

  • Conecte servidores MCP do Google Workspace apenas a instâncias do LibreChat em que você confia.
  • Solicite apenas os produtos e escopos que os usuários realmente precisam.
  • Revise as ações sugeridas pelo assistente antes de enviar e-mails, publicar mensagens no Chat, fazer upload de arquivos ou alterar eventos do calendário.
  • Trate mensagens de e-mail, documentos e mensagens de chat como entrada não confiável. Eles podem conter tentativas de injeção de prompt indireta que tentam influenciar o assistente.
  • Para implantações públicas ou em toda a organização, conclua a verificação do Google OAuth e siga os controles de acesso a aplicativos de terceiros da sua organização.

Como está este guia?