Gmail AutoAuth MCP Server
Permite que assistentes de IA gerenciem o Gmail por meio de interações em linguagem natural.
Documentação
Servidor MCP Gmail AutoAuth
Um servidor Model Context Protocol (MCP) para integração com Gmail no Claude Desktop com suporte a autenticação automática. Este servidor permite que assistentes de IA gerenciem o Gmail por meio de interações em linguagem natural.
Recursos
- Envio de e-mails com assunto, conteúdo, anexos e destinatários
- Suporte completo para caracteres internacionais em linhas de assunto e conteúdo de e-mail
- Leitura de mensagens de e-mail por ID com tratamento avançado de estrutura MIME
- Visualização de informações de anexos de e-mail (nomes de arquivo, tipos, tamanhos)
- Pesquisa de e-mails com vários critérios (assunto, remetente, intervalo de datas)
- Gerenciamento abrangente de rótulos com capacidade de criar, atualizar, excluir e listar rótulos
- Listagem de todos os rótulos disponíveis do Gmail (do sistema e definidos pelo usuário)
- Listagem de e-mails na caixa de entrada, enviados ou rótulos personalizados
- Marcação de e-mails como lidos/não lidos
- Movimentação de e-mails para diferentes rótulos/pastas
- Exclusão de e-mails
- Operações em lote para processar eficientemente vários e-mails de uma vez
- Integração completa com a API do Gmail
- Fluxo de autenticação OAuth2 simples com abertura automática do navegador
- Suporte para credenciais de aplicativos Desktop e Web
- Armazenamento global de credenciais para conveniência
Instalação e Autenticação
Instalação via Smithery
Para instalar o Gmail AutoAuth para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @raghavared/gmail-mcp --client claude
Instalação Manual
-
Crie um projeto no Google Cloud e obtenha as credenciais:
a. Crie um projeto no Google Cloud:
- Acesse o Console do Google Cloud
- Crie um novo projeto ou selecione um existente
- Ative a API do Gmail para o seu projeto
b. Crie as Credenciais OAuth 2.0:
- Acesse "APIs e Serviços" > "Credenciais"
- Clique em "Criar Credenciais" > "ID do cliente OAuth"
- Escolha "Aplicativo para desktop" ou "Aplicativo web" como tipo de aplicativo
- Dê um nome e clique em "Criar"
- Para aplicativo web, adicione
http://localhost:3000/v2/auth/google/callbackaos URIs de redirecionamento autorizados - Baixe o arquivo JSON das chaves OAuth do seu cliente
- Renomeie o arquivo de chave para
token.json
-
Execute a Autenticação:
Você pode autenticar de duas maneiras:
a. Autenticação Global (Recomendada):
# First time: Place token.json in your home directory's .gmail-mcp folder mkdir -p ~/.gmail-mcp mv token.json ~/.gmail-mcp/ # Run authentication from anywhere npx @raghavared/gmail-mcp authb. Autenticação Local:
# Place token.json in your current directory # The file will be automatically copied to global config npx @raghavared/gmail-mcp authO processo de autenticação irá:
- Procurar por
token.jsonno diretório atual ou em~/.gmail-mcp/ - Se encontrado no diretório atual, copiá-lo para
~/.gmail-mcp/ - Abrir seu navegador padrão para autenticação do Google
- Salvar as credenciais como
~/.gmail-mcp/credentials.json
Nota:
- Após a autenticação bem-sucedida, as credenciais são armazenadas globalmente em
~/.gmail-mcp/e podem ser usadas de qualquer diretório - Credenciais de aplicativos Desktop e Web são suportadas
- Para credenciais de aplicativo web, certifique-se de adicionar
http://localhost:3000/v2/auth/google/callbackaos seus URIs de redirecionamento autorizados
- Procurar por
-
Configure no Claude Desktop:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@raghavared/gmail-mcp"
]
}
}
}
Suporte a Docker
Se você preferir usar Docker:
- Autenticação:
docker run -i --rm \
--mount type=bind,source=/path/to/token.json,target=/token.json \
-v gmail-mcp:/gmail-server \
-e GMAIL_OAUTH_PATH=/token.json \
-e "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json" \
-p 3000:3000 \
mcp/gmail auth
- Uso:
{
"mcpServers": {
"gmail": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"mcp-gmail:/gmail-server",
"-e",
"GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json",
"gmail-mcp"
]
}
}
}
Autenticação em Servidor na Nuvem
Para ambientes de servidor na nuvem (como n8n), você pode especificar uma URL de callback personalizada durante a autenticação:
npx @raghavared/gmail-mcp auth {domain}/v2/auth/google/callback
Instruções de Configuração para Ambiente na Nuvem
-
Configure o Proxy Reverso:
- Configure seu contêiner n8n para expor uma porta para autenticação
- Configure um proxy reverso para encaminhar o tráfego do seu domínio (ex.:
domain.com) para esta porta
-
Configuração de DNS:
- Adicione um registro A nas configurações de DNS para resolver seu domínio para o endereço IP do seu servidor na nuvem
-
Configuração do Google Cloud Platform:
- No Console do Google Cloud, adicione a URL de callback do seu domínio personalizado (ex.:
https://domain.com/v2/auth/google/callback) à lista de URIs de redirecionamento autorizados
- No Console do Google Cloud, adicione a URL de callback do seu domínio personalizado (ex.:
-
Execute a Autenticação:
npx @raghavared/gmail-mcp auth https://domain.com/v2/auth/google/callback -
Configure no seu aplicativo:
{ "mcpServers": { "gmail": { "command": "npx", "args": [ "@raghavared/gmail-mcp" ] } } }
Essa abordagem permite que os fluxos de autenticação funcionem corretamente em ambientes onde o localhost não é acessível, como aplicativos em contêineres ou servidores na nuvem.
Ferramentas Disponíveis
O servidor fornece as seguintes ferramentas que podem ser usadas através do Claude Desktop:
1. Enviar E-mail (send_email)
Envia um novo e-mail imediatamente.
{
"to": ["recipient@example.com"],
"subject": "Meeting Tomorrow",
"body": "Hi,\n\nJust a reminder about our meeting tomorrow at 10 AM.\n\nBest regards",
"cc": ["cc@example.com"],
"bcc": ["bcc@example.com"]
}
2. Rascunho de E-mail (draft_email)
Cria um rascunho de e-mail sem enviá-lo.
{
"to": ["recipient@example.com"],
"subject": "Draft Report",
"body": "Here's the draft report for your review.",
"cc": ["manager@example.com"]
}
3. Ler E-mail (read_email)
Recupera o conteúdo de um e-mail específico pelo seu ID.
{
"messageId": "182ab45cd67ef"
}
4. Pesquisar E-mails (search_emails)
Pesquisa e-mails usando a sintaxe de pesquisa do Gmail.
{
"query": "from:sender@example.com after:2024/01/01 has:attachment",
"maxResults": 10
}
5. Modificar E-mail (modify_email)
Adiciona ou remove rótulos de e-mails (mover para diferentes pastas, arquivar, etc.).
{
"messageId": "182ab45cd67ef",
"addLabelIds": ["IMPORTANT"],
"removeLabelIds": ["INBOX"]
}
6. Excluir E-mail (delete_email)
Exclui permanentemente um e-mail.
{
"messageId": "182ab45cd67ef"
}
7. Listar Rótulos de E-mail (list_email_labels)
Recupera todos os rótulos disponíveis do Gmail.
{}
8. Criar Rótulo (create_label)
Cria um novo rótulo no Gmail.
{
"name": "Important Projects",
"messageListVisibility": "show",
"labelListVisibility": "labelShow"
}
9. Atualizar Rótulo (update_label)
Atualiza um rótulo existente do Gmail.
{
"id": "Label_1234567890",
"name": "Urgent Projects",
"messageListVisibility": "show",
"labelListVisibility": "labelShow"
}
10. Excluir Rótulo (delete_label)
Exclui um rótulo do Gmail.
{
"id": "Label_1234567890"
}
11. Obter ou Criar Rótulo (get_or_create_label)
Obtém um rótulo existente pelo nome ou o cria se não existir.
{
"name": "Project XYZ",
"messageListVisibility": "show",
"labelListVisibility": "labelShow"
}
12. Modificar E-mails em Lote (batch_modify_emails)
Modifica rótulos de vários e-mails em lotes eficientes.
{
"messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"],
"addLabelIds": ["IMPORTANT"],
"removeLabelIds": ["INBOX"],
"batchSize": 50
}
13. Excluir E-mails em Lote (batch_delete_emails)
Exclui permanentemente vários e-mails em lotes eficientes.
{
"messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"],
"batchSize": 50
}
Sintaxe Avançada de Pesquisa
A ferramenta search_emails suporta os poderosos operadores de pesquisa do Gmail:
| Operador | Exemplo | Descrição |
|---|---|---|
from: | from:john@example.com | E-mails de um remetente específico |
to: | to:mary@example.com | E-mails enviados para um destinatário específico |
subject: | subject:"meeting notes" | E-mails com texto específico no assunto |
has:attachment | has:attachment | E-mails com anexos |
after: | after:2024/01/01 | E-mails recebidos após uma data |
before: | before:2024/02/01 | E-mails recebidos antes de uma data |
is: | is:unread | E-mails com um estado específico |
label: | label:work | E-mails com um rótulo específico |
Você pode combinar vários operadores: from:john@example.com after:2024/01/01 has:attachment
Recursos Avançados
Extração de Conteúdo de E-mail
O servidor extrai inteligentemente o conteúdo de e-mail de estruturas MIME complexas:
- Prioriza conteúdo em texto simples quando disponível
- Recorre ao conteúdo HTML se o texto simples não estiver disponível
- Lida com mensagens MIME de múltiplas partes com partes aninhadas
- Processa informações de anexos (nome do arquivo, tipo, tamanho)
- Preserva os cabeçalhos originais do e-mail (De, Para, Assunto, Data)
Suporte a Caracteres Internacionais
O servidor suporta totalmente caracteres não-ASCII em assuntos e conteúdos de e-mail, incluindo:
- Alfabetos turco, chinês, japonês, coreano e outros não latinos
- Caracteres especiais e símbolos
- Codificação adequada garante exibição correta nos clientes de e-mail
Gerenciamento Abrangente de Rótulos
O servidor fornece um conjunto completo de ferramentas para gerenciar rótulos do Gmail:
- Criar Rótulos: Crie novos rótulos com configurações de visibilidade personalizáveis
- Atualizar Rótulos: Renomeie rótulos ou altere suas configurações de visibilidade
- Excluir Rótulos: Remova rótulos criados pelo usuário (rótulos do sistema são protegidos)
- Encontrar ou Criar: Obtenha um rótulo pelo nome ou crie-o automaticamente se não for encontrado
- Listar Todos os Rótulos: Veja todos os rótulos do sistema e do usuário com informações detalhadas
- Opções de Visibilidade de Rótulos: Controle como os rótulos aparecem nas listas de mensagens e rótulos
As configurações de visibilidade de rótulos incluem:
messageListVisibility: Controla se o rótulo aparece na lista de mensagens (showouhide)labelListVisibility: Controla como o rótulo aparece na lista de rótulos (labelShow,labelShowIfUnreadoulabelHide)
Esses recursos de gerenciamento de rótulos permitem uma organização sofisticada de e-mails diretamente pelo Claude, sem precisar alternar para a interface do Gmail.
Operações em Lote
O servidor inclui capacidades eficientes de processamento em lote:
- Processa até 50 e-mails por vez (tamanho de lote configurável)
- Divisão automática de grandes conjuntos de e-mails para evitar limites da API
- Relatórios detalhados de sucesso/falha para cada operação
- Tratamento gracioso de erros com novas tentativas individuais
- Perfeito para gerenciamento em massa da caixa de entrada e tarefas de organização
Notas de Segurança
- As credenciais OAuth são armazenadas com segurança no seu ambiente local (
~/.gmail-mcp/) - O servidor usa acesso offline para manter autenticação persistente
- Nunca compartilhe ou envie suas credenciais para controle de versão
- Revise e revogue regularmente acessos não utilizados nas configurações da sua conta Google
- As credenciais são armazenadas globalmente, mas são acessíveis apenas pelo usuário atual
Solução de Problemas
-
Chaves OAuth Não Encontradas
- Certifique-se de que
token.jsonesteja no seu diretório atual ou em~/.gmail-mcp/ - Verifique as permissões do arquivo
- Certifique-se de que
-
Formato de Credenciais Inválido
- Certifique-se de que seu arquivo de chaves OAuth contenha credenciais
webouinstalled - Para aplicativos web, verifique se o URI de redirecionamento está configurado corretamente
- Certifique-se de que seu arquivo de chaves OAuth contenha credenciais
-
Porta Já em Uso
- Se a porta 3000 já estiver em uso, libere-a antes de executar a autenticação
- Você pode encontrar e interromper o processo que usa essa porta
-
Falhas em Operações em Lote
- Se as operações em lote falharem, elas tentam automaticamente itens individuais novamente
- Verifique as mensagens de erro detalhadas para falhas específicas
- Considere reduzir o tamanho do lote se encontrar limitação de taxa
Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Licença
MIT
Suporte
Se você encontrar problemas ou tiver dúvidas, por favor, abra uma issue no repositório do GitHub.