UNPKG

agenda-mcp-google-workspace

Version:

MCP Server para integração com Google Workspace (Gmail, Calendar, Meet)

243 lines (194 loc) 6.16 kB
# Documentação do Servidor MCP Google Workspace ## Visão Geral Este é um servidor MCP (Model Context Protocol) que fornece integração com serviços do Google Workspace, incluindo: - Gmail - Google Calendar - Google Meet ## Pré-requisitos 1. Node.js (versão 14 ou superior) 2. Conta Google Workspace 3. Projeto configurado no Google Cloud Console 4. Credenciais OAuth2.0 configuradas ## Configuração Inicial ### 1. Configuração do Google Cloud Console 1. Acesse [Google Cloud Console](https://console.cloud.google.com) 2. Crie um novo projeto ou selecione um existente 3. Habilite as seguintes APIs: - Gmail API - Google Calendar API - Google Meet API 4. Configure as credenciais OAuth: - Vá em "APIs & Services" > "Credentials" - Clique em "Create Credentials" > "OAuth client ID" - Escolha "Web application" - Configure as URIs de redirecionamento autorizadas - Anote o Client ID e Client Secret ### 2. Configuração do Ambiente #### Estrutura de Arquivos ``` agenda-mcp/ ├── src/ │ └── index.ts ├── .env ├── package.json ├── tsconfig.json ├── Dockerfile ├── docker-compose.yml └── .dockerignore ``` #### Configuração das Variáveis de Ambiente Crie um arquivo `.env` na raiz do projeto: ```env GOOGLE_CLIENT_ID=seu_client_id GOOGLE_CLIENT_SECRET=seu_client_secret GOOGLE_REFRESH_TOKEN=seu_refresh_token ``` ## Instalação e Execução ### Método 1: Execução Local ```bash # Instalar dependências npm install # Compilar o projeto npm run build # Rodar o servidor npm start ``` ### Método 2: Execução com Docker ```bash # Construir a imagem docker-compose build # Iniciar o container docker-compose up -d # Verificar logs docker-compose logs -f # Parar o container docker-compose down ``` ## Ferramentas Disponíveis ### Gmail 1. `list_emails` - Lista e-mails recentes da caixa de entrada - Parâmetros: - `maxResults`: Número máximo de e-mails (padrão: 10) - `query`: Filtro de busca (opcional) 2. `search_emails` - Pesquisa avançada de e-mails - Parâmetros: - `query`: Consulta de pesquisa (obrigatório) - `maxResults`: Número máximo de resultados (padrão: 10) - Exemplos de consultas: - `"from:alice@example.com"` - `"subject:Meeting Update"` - `"has:attachment filename:pdf"` - `"is:unread"` 3. `send_email` - Envia um novo e-mail - Parâmetros: - `to`: Destinatário (obrigatório) - `subject`: Assunto (obrigatório) - `body`: Corpo do e-mail (obrigatório) - `cc`: Cópia (opcional) - `bcc`: Cópia oculta (opcional) 4. `modify_email` - Modifica rótulos de e-mail - Parâmetros: - `id`: ID do e-mail (obrigatório) - `addLabels`: Rótulos para adicionar - `removeLabels`: Rótulos para remover ### Google Calendar 1. `list_events` - Lista eventos do calendário - Parâmetros: - `maxResults`: Número máximo de eventos (padrão: 10) - `timeMin`: Data inicial (ISO format) - `timeMax`: Data final (ISO format) 2. `create_event` - Cria novo evento - Parâmetros: - `summary`: Título (obrigatório) - `start`: Data/hora início (obrigatório) - `end`: Data/hora fim (obrigatório) - `location`: Local (opcional) - `description`: Descrição (opcional) - `attendees`: Lista de participantes (opcional) 3. `update_event` - Atualiza evento existente - Parâmetros: - `eventId`: ID do evento (obrigatório) - Outros parâmetros são opcionais 4. `delete_event` - Remove evento - Parâmetros: - `eventId`: ID do evento (obrigatório) ### Google Meet 1. `list_meetings` - Lista reuniões agendadas - Parâmetros: - `max_results`: Número máximo de resultados (padrão: 10) - `time_min`: Data inicial (ISO format) - `time_max`: Data final (ISO format) 2. `get_meeting` - Obtém detalhes de uma reunião - Parâmetros: - `meeting_id`: ID da reunião (obrigatório) 3. `create_meeting` - Cria nova reunião - Parâmetros: - `summary`: Título (obrigatório) - `start_time`: Início (obrigatório) - `end_time`: Fim (obrigatório) - `description`: Descrição (opcional) - `attendees`: Participantes (opcional) 4. `update_meeting` - Atualiza reunião existente - Parâmetros: - `meeting_id`: ID da reunião (obrigatório) - Outros parâmetros são opcionais 5. `delete_meeting` - Remove reunião - Parâmetros: - `meeting_id`: ID da reunião (obrigatório) ## Ferramentas de Desenvolvimento ### MCP Inspector Para testar as ferramentas: ```bash npm run inspector ``` ### Modo Watch Para desenvolvimento com recompilação automática: ```bash npm run watch ``` ## Escopos OAuth Necessários - `https://www.googleapis.com/auth/calendar` - `https://www.googleapis.com/auth/calendar.events` - `https://www.googleapis.com/auth/meetings.space.created` - `https://www.googleapis.com/auth/gmail.modify` - `https://www.googleapis.com/auth/gmail.send` ## Troubleshooting ### Problemas Comuns 1. **Erro de Credenciais** - Verifique se o arquivo `.env` está presente - Confirme se as credenciais estão corretas - Verifique se o token de atualização é válido 2. **Erro de Permissão** - Verifique se todos os escopos OAuth necessários foram concedidos - Tente gerar um novo token de atualização 3. **Erro de Compilação** - Execute `npm run build` novamente - Verifique se há erros no TypeScript ### Comandos Úteis ```bash # Verificar logs do Docker docker-compose logs -f # Reiniciar o container docker-compose restart # Limpar e reconstruir docker-compose down docker-compose build --no-cache docker-compose up -d ``` ## Suporte Para problemas ou dúvidas, abra uma issue no repositório do projeto. ## Licença Este projeto está licenciado sob a MIT License.