Gmail MCP
Uma interface padronizada para gerenciar, enviar e recuperar e-mails através da API do Gmail.
Documentação
Uma implementação de servidor Model Context Protocol (MCP) para a API do Gmail, fornecendo uma interface padronizada para gerenciamento, envio e recuperação de e-mails.
Recursos
- Cobertura completa da API do Gmail, incluindo mensagens, conversas, rótulos, rascunhos e configurações
- Suporte para envio, criação de rascunhos e gerenciamento de e-mails
- Gerenciamento de rótulos com cores personalizáveis e configurações de visibilidade
- Operações de conversas para gerenciamento de conversas
- Gerenciamento de configurações, incluindo respondedor de férias, IMAP/POP e configurações de idioma
- Rastreamento de histórico para alterações na caixa de entrada
- Autenticação segura OAuth2 usando credenciais do Google Cloud
Pré-requisitos
Dependências
Para a instalação mais simples, instale o Node.js 18+. Se você quiser compilar localmente, também precisará instalar o pnpm.
Configuração do Google Workspace
Para executar este servidor MCP, você precisará configurar um Cliente da API do Google para sua organização, com cada usuário executando um script para obter seu próprio token de atualização OAuth.
Configuração do Cliente da API do Google (uma vez por organização)
- Acesse o Google Cloud Console.
- Crie um novo projeto ou selecione um existente.
- Ative a API do Gmail para o seu projeto.
- Vá para Credenciais e crie um ID de Cliente OAuth 2.0. Escolha "Aplicativo para desktop" como tipo de cliente.
- Baixe e salve o JSON das chaves OAuth como
~/.gmail-mcp/gcp-oauth.keys.json. ⚠️ OBSERVAÇÃO: para criar~/.gmail-mcp/pelo aplicativo Finder do MacOS, você precisa ativar arquivos ocultos primeiro. - (Opcional) Para instalação em servidor remoto (ex.: usando a CLI do Smithery), anote o
CLIENT_IDe oCLIENT_SECRETdeste arquivo.
OAuth do Cliente (uma vez por usuário)
- Peça ao usuário para copiar
~/.gmail-mcp/gcp-oauth.keys.jsonpara o computador dele no mesmo caminho. - Execute
npx @shinzolabs/gmail-mcp auth. - Uma janela do navegador será aberta, onde o usuário pode selecionar um perfil, revisar os escopos solicitados e aprovar.
- (Opcional) Para instalação em servidor remoto, anote o caminho do arquivo mencionado na mensagem de sucesso (
~/.gmail-mcp/credentials.jsonpor padrão). OREFRESH_TOKENdo usuário será encontrado aqui.
Configuração do Cliente
Existem várias opções para configurar seu cliente MCP com o servidor. Para configuração hospedada/remota, use a CLI do Smithery com uma Chave de API do Smithery. Para instalação local, use npx ou compile a partir do código-fonte. Cada uma dessas opções é explicada abaixo.
Servidor Remoto Smithery (Recomendado)
Para adicionar um servidor remoto ao seu cliente MCP config.json, execute o seguinte comando na CLI do Smithery:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp
Digite seu CLIENT_ID, CLIENT_SECRET e REFRESH_TOKEN quando solicitado.
Smithery SDK
Se você está desenvolvendo sua própria aplicação de agente, pode usar o código boilerplate aqui.
Instalação Local via NPX
Para instalar o servidor localmente com npx, adicione o seguinte ao seu cliente MCP config.json:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@shinzolabs/gmail-mcp"
]
}
}
}
Compilar a partir do Código-Fonte
- Baixe o repositório:
git clone https://github.com/shinzo-labs/gmail-mcp.git
- Instale os pacotes e compile com
pnpm(dentro do repositório clonado):
pnpm i && pnpm build
- Adicione o seguinte ao seu cliente MCP
config.json:
{
"mcpServers": {
"gmail": {
"command": "node",
"args": [
"/path/to/gmail-mcp/dist/index.js"
]
}
}
}
Variáveis de Configuração
| Variável | Descrição | Obrigatório? | Padrão |
|---|---|---|---|
AUTH_SERVER_PORT | Porta para o servidor temporário de autenticação OAuth | Não | 3000 |
CLIENT_ID | ID do cliente da API do Google (encontrado em GMAIL_OAUTH_PATH) | Sim, se houver conexão com servidor remoto | '' |
CLIENT_SECRET | Segredo do cliente da API do Google (encontrado em GMAIL_OAUTH_PATH) | Sim, se houver conexão com servidor remoto | '' |
GMAIL_CREDENTIALS_PATH | Caminho para o arquivo de credenciais do usuário | Não | MCP_CONFIG_DIR/credentials.json |
GMAIL_OAUTH_PATH | Caminho para o arquivo do Cliente da API do Google | Não | MCP_CONFIG_DIR/gcp-oauth.keys.json |
MCP_CONFIG_DIR | Diretório para armazenar arquivos de configuração | Não | ~/.gmail-mcp |
REFRESH_TOKEN | Token de atualização OAuth (encontrado em GMAIL_CREDENTIALS_PATH) | Sim, se houver conexão com servidor remoto | '' |
PORT | Porta para o método de transporte HTTP Streamable | Não | 3000 |
TELEMETRY_ENABLED | Ativar telemetria | Não | true |
Endpoints Suportados
Gerenciamento de Usuário
get_profile: Obter o perfil Gmail do usuário atualstop_mail_watch: Parar de receber notificações pushwatch_mailbox: Configurar notificações push para alterações na caixa de entrada
Gerenciamento de Mensagens
Gerenciando Mensagens
list_messages: Listar mensagens com filtragem opcionalget_message: Obter uma mensagem específicaget_attachment: Obter um anexo de mensagemmodify_message: Modificar rótulos de mensagemsend_message: Enviar uma mensagem de e-mail para destinatários especificadosdelete_message: Excluir permanentemente uma mensagemtrash_message: Mover mensagem para a lixeirauntrash_message: Remover mensagem da lixeirabatch_modify_messages: Modificar várias mensagensbatch_delete_messages: Excluir várias mensagens
Gerenciamento de Rótulos
list_labels: Listar todos os rótulosget_label: Obter um rótulo específicocreate_label: Criar um novo rótuloupdate_label: Atualizar um rótulopatch_label: Atualização parcial de um rótulodelete_label: Excluir um rótulo
Gerenciamento de Conversas
list_threads: Listar conversas de e-mailget_thread: Obter uma conversa específicamodify_thread: Modificar rótulos de conversatrash_thread: Mover conversa para a lixeirauntrash_thread: Remover conversa da lixeiradelete_thread: Excluir uma conversa
Gerenciamento de Rascunhos
list_drafts: Listar rascunhos na caixa de entrada do usuárioget_draft: Obter um rascunho específico por IDcreate_draft: Criar um rascunho de e-mail no Gmailupdate_draft: Substituir o conteúdo de um rascunhodelete_draft: Excluir um rascunhosend_draft: Enviar um rascunho existente
Gerenciamento de Configurações
Encaminhamento Automático
get_auto_forwarding: Obter configurações de encaminhamento automáticoupdate_auto_forwarding: Atualizar configurações de encaminhamento automático
Configurações de IMAP
get_imap: Obter configurações de IMAPupdate_imap: Atualizar configurações de IMAP
Configurações de POP
get_pop: Obter configurações de POPupdate_pop: Atualizar configurações de POP
Respondedor de Férias
get_vacation: Obter configurações do respondedor de fériasupdate_vacation: Atualizar o respondedor de férias
Configurações de Idioma
get_language: Obter configurações de idiomaupdate_language: Atualizar configurações de idioma
Delegados
list_delegates: Listar delegados da contaget_delegate: Obter um delegado específicoadd_delegate: Adicionar um delegadoremove_delegate: Remover um delegado
Filtros
list_filters: Listar filtros de e-mailget_filter: Obter um filtro específicocreate_filter: Criar um novo filtrodelete_filter: Excluir um filtro
Endereços de Encaminhamento
list_forwarding_addresses: Listar endereços de encaminhamentoget_forwarding_address: Obter um endereço de encaminhamento específicocreate_forwarding_address: Criar um endereço de encaminhamentodelete_forwarding_address: Excluir um endereço de encaminhamento
Configurações de Send-As
list_send_as: Listar aliases send-asget_send_as: Obter um alias send-as específicocreate_send_as: Criar um alias send-asupdate_send_as: Atualizar um alias send-aspatch_send_as: Atualização parcial de um alias send-asverify_send_as: Enviar e-mail de verificaçãodelete_send_as: Excluir um alias send-as
Configurações de S/MIME
list_smime_info: Listar configurações de S/MIMEget_smime_info: Obter uma configuração de S/MIME específicainsert_smime_info: Enviar uma nova configuração de S/MIMEset_default_smime_info: Definir configuração padrão de S/MIMEdelete_smime_info: Excluir uma configuração de S/MIME
Contribuição
Contribuições são bem-vindas e incentivadas! Leia o CONTRIBUTING.md para obter diretrizes sobre problemas, contribuições e informações de contato.
Coleta de Dados e Privacidade
A Shinzo Labs coleta telemetria anônima limitada deste servidor para ajudar a melhorar nossos produtos e serviços. Nenhuma informação pessoalmente identificável é coletada como parte desse processo. Consulte a Política de Privacidade para obter mais detalhes sobre os tipos de dados coletados e como optar por não participar dessa telemetria.
Licença
MIT