Google Workspace MCP Server

Interaja com serviços do Google Workspace como Gmail e Google Calendar.

Documentação

smithery badge

Google Workspace MCP Server

Um servidor Model Context Protocol (MCP) que fornece ferramentas para interagir com as APIs do Gmail e do Google Calendar. Este servidor permite gerenciar seus e-mails e eventos de calendário programaticamente por meio da interface MCP.

Recursos

Ferramentas do Gmail

  • list_emails: Listar e-mails recentes da sua caixa de entrada com filtragem opcional
  • search_emails: Pesquisa avançada de e-mails com sintaxe de consulta do Gmail
  • send_email: Enviar novos e-mails com suporte para CC e CCO
  • modify_email: Modificar rótulos de e-mail (arquivar, excluir, marcar como lido/não lido)

Ferramentas do Calendário

  • list_events: Listar próximos eventos do calendário com filtro por intervalo de datas
  • create_event: Criar novos eventos do calendário com participantes
  • Os eventos abaixo foram removidos deste servidor por medidas de segurança, pois a API do Google Cloud Calendar não possui um escopo que permita a criação, mas impeça a exclusão ou atualizações.
  • update_event: Atualizar eventos existentes do calendário
  • delete_event: Excluir eventos do calendário

Pré-requisitos

  1. Node.js: Instale o Node.js versão 14 ou superior
  2. Configuração do Google Cloud Console:
    • Acesse o Google Cloud Console
    • Crie um novo projeto ou selecione um existente
    • Ative a API do Gmail e a API do Google Calendar:
      1. Vá para "APIs & Services" > "Library"
      2. Pesquise e ative a "Gmail API"
      3. Pesquise e ative a "Google Calendar API"
    • Configure as credenciais OAuth 2.0:
      1. Vá para "APIs & Services" > "Credentials"
      2. Clique em "Create Credentials" > "OAuth client ID"
      3. Escolha "Web application"
      4. Defina "Authorized redirect URIs" para incluir: http://localhost:4100/code
      5. Anote o Client ID e o Client Secret

Instruções de Configuração

Instalação via Smithery

Para instalar o Google Workspace Server - No Calendar Deletion for Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @erickva/google-workspace-mcp-server-no-calendar-deletetion --client claude

Instalação Manual

  1. Clone e Instale:

    git clone https://github.com/epaproditus/google-workspace-mcp-server.git
    cd google-workspace-mcp-server
    npm install
    
  2. Crie as Credenciais OAuth: Crie um arquivo credentials.json no diretório raiz:

    {
        "web": {
            "client_id": "YOUR_CLIENT_ID",
            "client_secret": "YOUR_CLIENT_SECRET",
            "redirect_uris": ["http://localhost:4100/code"],
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://oauth2.googleapis.com/token"
        }
    }
    
  3. Obtenha o Refresh Token:

    node get-refresh-token.js
    

    Isso irá:

    • Abrir seu navegador para autenticação OAuth do Google
    • Solicitar as seguintes permissões:
      • https://www.googleapis.com/auth/gmail.modify
      • https://www.googleapis.com/auth/calendar
      • https://www.googleapis.com/auth/gmail.send
    • Salvar as credenciais em token.json
    • Exibir o refresh token no console
  4. Configure as Configurações do MCP: Adicione a configuração do servidor ao seu arquivo de configurações do MCP:

    • Para a extensão Claude do VSCode: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Para o aplicativo de desktop Claude: ~/Library/Application Support/Claude/claude_desktop_config.json

    Adicione isso ao objeto mcpServers:

    {
      "mcpServers": {
        "google-workspace": {
          "command": "node",
          "args": ["/path/to/google-workspace-server/build/index.js"],
          "env": {
            "GOOGLE_CLIENT_ID": "your_client_id",
            "GOOGLE_CLIENT_SECRET": "your_client_secret",
            "GOOGLE_REFRESH_TOKEN": "your_refresh_token"
          }
        }
      }
    }
    
  5. Compile e Execute:

    npm run build
    

Exemplos de Uso

Operações do Gmail

  1. Listar E-mails Recentes:

    {
      "maxResults": 5,
      "query": "is:unread"
    }
    
  2. Pesquisar E-mails:

    {
      "query": "from:example@gmail.com has:attachment",
      "maxResults": 10
    }
    
  3. Enviar E-mail:

    {
      "to": "recipient@example.com",
      "subject": "Hello",
      "body": "Message content",
      "cc": "cc@example.com",
      "bcc": "bcc@example.com"
    }
    
  4. Modificar E-mail:

    {
      "id": "message_id",
      "addLabels": ["UNREAD"],
      "removeLabels": ["INBOX"]
    }
    

Operações do Calendário

  1. Listar Eventos:

    {
      "maxResults": 10,
      "timeMin": "2024-01-01T00:00:00Z",
      "timeMax": "2024-12-31T23:59:59Z"
    }
    
  2. Criar Evento:

    {
      "summary": "Team Meeting",
      "location": "Conference Room",
      "description": "Weekly sync-up",
      "start": "2024-01-24T10:00:00Z",
      "end": "2024-01-24T11:00:00Z",
      "attendees": ["colleague@example.com"]
    }
    

3. Atualizar Evento:

{
  "eventId": "event_id",
  "summary": "Updated Meeting Title",
  "location": "Virtual",
  "start": "2024-01-24T11:00:00Z",
  "end": "2024-01-24T12:00:00Z"
}

4. Excluir Evento:

{
  "eventId": "event_id"
}

Solução de Problemas

  1. Problemas de Autenticação:

    • Garanta que todos os escopos OAuth necessários sejam concedidos
    • Verifique se o client ID e o secret estão corretos
    • Verifique se o refresh token é válido
  2. Erros de API:

    • Verifique o Google Cloud Console para cotas e limites da API
    • Garanta que as APIs estejam ativadas para o seu projeto
    • Verifique se os parâmetros da solicitação correspondem ao formato exigido

Licença

Este projeto é licenciado sob a Licença MIT.