imap-mail-mcp
imap-mail-mcp
Servidor MCP que conecta o Claude (Desktop, Code ou qualquer cliente MCP) a qualquer conta de e-mail IMAP/SMTP — Zimbra, Exchange, Dovecot/Postfix, cPanel, hospedagens, Gmail/Outlook com senha de app.
Fala IMAP4rev1 e SMTP direto com o seu servidor; nada passa por terceiros.
Única dependência externa: SDK
mcp. Protocolo e MIME vêm da stdlib do Python.Todas as operações por UID; pastas com acento em UTF-7; busca não-ASCII com
CHARSET UTF-8.
Instalação
Claude Desktop — um clique (.mcpb)
Baixe o imap-mail-mcp-X.Y.Z.mcpb em Releases, abra Claude Desktop → Configurações → Extensões e arraste o arquivo. O Claude pede host, usuário e senha num formulário (a senha vai para o keychain do sistema).
Claude Code / qualquer cliente MCP (PyPI)
claude mcp add imap-mail \
-e IMAP_HOST=mail.empresa.com.br -e SMTP_HOST=mail.empresa.com.br \
-e MAIL_USER=voce@empresa.com.br -e MAIL_PASS='***' \
-- uvx imap-mail-mcpOu no claude_desktop_config.json / .mcp.json:
{
"mcpServers": {
"imap-mail": {
"command": "uvx",
"args": ["imap-mail-mcp"],
"env": { "IMAP_HOST": "...", "SMTP_HOST": "...", "MAIL_USER": "...", "MAIL_PASS": "..." }
}
}
}A partir do código
git clone https://github.com/SEU-USUARIO/imap-mail-mcp && cd imap-mail-mcp
uv sync && uv run imap-mail-mcp # ou: pip install -e . && imap-mail-mcpConfiguração (variáveis de ambiente)
Variável | Padrão | Descrição |
| — | obrigatório |
|
| 993 SSL ou 143 STARTTLS |
|
|
|
| — | obrigatório |
|
| 587 / 465 / 25 |
|
|
|
| — | obrigatórios |
|
|
|
| auto | detecta |
|
| destino dos anexos |
|
|
|
|
| limite do corpo em |
Ferramentas
Tool | O que faz |
| Config ativa, capacidades IMAP, pasta Enviados detectada |
| Lista pastas, opcionalmente com total/não lidos |
|
|
| Cabeçalhos + corpo (texto ou HTML) + lista de anexos |
| Fonte RFC822 completa |
| Salva um ou todos os anexos |
| To/Cc/Bcc, texto ou HTML, anexos, Reply-To; cópia em Enviados |
| Responde (ou a todos) com In-Reply-To/References; marca |
| Encaminha com anexos originais |
|
|
| MOVE, ou COPY+DELETE+EXPUNGE se o servidor não suportar |
|
|
| Pastas |
Desenvolvimento
uv sync --group dev
uv run pytest -q
npx -y @anthropic-ai/mcpb validate manifest.json
npx -y @anthropic-ai/mcpb pack . dist/imap-mail-mcp.mcpb # bundle localTeste de integração ponta a ponta pode ser feito contra o GreenMail standalone (-Dgreenmail.setup.test.all), portas 3143/3025.
Publicação
Substitua
SEU-USUARIOempyproject.toml,manifest.json,server.jsone neste README.No PyPI, crie o projeto
imap-mail-mcpe habilite Trusted Publishing apontando para este repositório / workflowrelease.yml.git tag v0.1.0 && git push --tags— o workflow publica no PyPI, gera o.mcpbe cria o Release.(Opcional) Registro MCP:
mcp-publisher login github && mcp-publisher publishusando oserver.json.
Notas de protocolo
Busca com termo acentuado: um termo por chamada (limitação do
imaplib, um literal por comando). Para mais, useraw_criteria.read_emailmarca como lido por padrão (mark_as_read=falseusaBODY.PEEK).Cópia em Enviados via IMAP
APPEND; se o SMTP já grava (Exchange), usesave_to_sent=false.Gmail / Microsoft 365 exigem senha de aplicativo; OAuth2 não está coberto.
MIT © Julio