MultiMail

E-mail para agentes de IA. Envie e receba como markdown com supervisão humana.

Documentação

@multimail/mcp-server

Seu agente ainda não tem e-mail porque ninguém confia nele para usar e-mail. O MultiMail resolve isso. Um endereço de e-mail real com uma escada de confiança que vai de somente leitura até totalmente autônomo, identidade criptográfica em cada mensagem e controles de envio por destinatário.

Início rápido

{
  "mcpServers": {
    "multimail": {
      "type": "url",
      "url": "https://mcp.multimail.dev/mcp"
    }
  }
}

Servidor remoto. Sem instalação. Autentica via OAuth na primeira conexão.

Funciona com Claude.ai, Claude Desktop, Claude Code, Cursor, Windsurf, Copilot (VS Code), ChatGPT Desktop e qualquer cliente MCP que suporte servidores remotos.

Alternativa: servidor stdio local

{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_...",
        "MULTIMAIL_MAILBOX_ID": "01KJ1NHN8J..."
      }
    }
  }
}

Obtenha uma chave em multimail.dev. Ou execute sem uma para criar uma conta interativamente.

Locais dos arquivos de configuração

ClienteArquivo de configuração
Claude Code~/.claude/.mcp.json
Claude Desktopclaude_desktop_config.json
Cursor.cursor/mcp.json no seu projeto
Windsurf~/.codeium/windsurf/mcp_config.json
Copilot (VS Code).vscode/mcp.json no seu projeto
OpenCodemcp.json no seu projeto
ChatGPT DesktopConfigurações > Servidores MCP

Escada de confiança

Toda caixa de entrada tem um modo de supervisão. Comece restritivo e evolua conforme o agente ganha confiança.

ModoComportamento
read_onlyO agente lê e-mails. Todos os envios são bloqueados.
gated_allToda ação exige aprovação humana.
gated_sendEnvios retidos para aprovação. Recebimentos imediatos. (padrão)
monitoredO agente envia livremente. Cópias vão para o endereço de supervisão.
autonomousEnvio/recebimento completo. Sem barreiras.

Os agentes solicitam upgrades via API. O operador aprova com um código de uso único. Rebaixamentos não precisam de aprovação. O agente sempre pode se restringir.

O fluxo de aprovação com barreiras é formalmente verificado em Lean 4. Nenhum e-mail chega à entrega sem passar pela aprovação do operador, para todos os caminhos de código possíveis.

Lista de permissões por destinatário

No modo gated_send, destinatários na lista de permissões ignoram a fila de aprovação. Adicione endereços exatos (vendor@example.com) ou curingas de domínio (*@example.com). Toda adição exige aprovação por e-mail do operador. O agente não pode autoaprovar alterações na lista de permissões.

O meio-termo prático: correspondência rotineira com contatos conhecidos vai imediatamente; novos destinatários ainda exigem supervisão.

Identidade criptográfica

Todo e-mail enviado carrega um cabeçalho X-MultiMail-Identity assinado (ECDSA P-256). O payload inclui nome do operador, modo de supervisão, capacidades e status de verificação. Os destinatários verificam contra a chave pública em GET /.well-known/multimail-signing-key.

Um cabeçalho X-MultiMail-Reputation separado vincula a dados de reputação que preservam privacidade: taxas de rejeição, taxas de reclamação, idade da conta. Nenhum endereço bruto é exposto.

Sem identidade verificada, os destinatários não conseguem distinguir seu agente de um spammer. Com ela, eles podem verificar o operador, o nível de supervisão e o histórico de envios antes de ler uma palavra.

Relay DID do agente (opcional). Se seu agente vinculou um did:key à conta MultiMail, passe um parâmetro opcional ucan para send_email / reply_email. O MultiMail retransmite o UCAN autoassinado do seu agente literalmente em um cabeçalho X-Agent-Identity separado (did="…"; ucan="…") — ele não assina nem garante o conteúdo; as ferramentas do destinatário verificam a delegação de forma independente. Inerte a menos que um DID esteja vinculado.

Autorregistro do agente (auth.md)

Os agentes podem se registrar sem navegador. O protocolo usa verificação de identidade por e-mail confirmado, seguindo a convenção auth.md inspirada no WorkOS AuthKit:

POST /agent/auth -> claim_token + OTP sent to operator email
POST /agent/auth/claim/complete -> API key + tenant_id + granted scopes

A descoberta segue o RFC 9728:

  • GET /.well-known/oauth-protected-resource (metadados do recurso)
  • GET /.well-known/oauth-authorization-server (metadados de autorização com extensão agent_auth)
  • GET /auth.md (guia de registro legível por humanos/agentes)

O cabeçalho WWW-Authenticate em respostas 401 aponta os agentes para esses endpoints automaticamente. Um agente que recebe um 401 pode seguir o link, ler o protocolo de registro e se integrar sozinho.

Verificação de conteúdo

Todo e-mail enviado é verificado antes da entrega. Os e-mails entram no status pending_scan e depois passam para entrega ou pending_send_approval (em modos com barreiras). E-mails recebidos passam pelo mesmo pipeline. Padrões de phishing, malware e injeção de prompt são sinalizados antes de chegar à caixa de entrada do agente.

Como funciona

  • Os corpos dos e-mails são markdown na entrada, HTML formatado na saída. HTML recebido chega como markdown limpo (15x menos tokens que MIME bruto).
  • O encadeamento é automático. Responda a um e-mail e os cabeçalhos são definidos corretamente.
  • Os envios retornam pending_scan enquanto são verificados. Caixas de entrada com barreiras passam então para pending_send_approval para revisão humana. Não tente novamente.
  • Todo e-mail enviado carrega um cabeçalho X-MultiMail-Identity criptograficamente assinado.
  • Dados de reputação via cabeçalho X-MultiMail-Reputation: taxas de rejeição, taxas de reclamação, idade da conta. Preservam privacidade, atualizados diariamente.

Ferramentas (50)

FerramentaDescrição
E-mail principal
send_emailEnvia e-mail como markdown. Suporta anexos, idempotency_key, entrega agendada via send_at.
check_inboxLista e-mails com filtros: status, remetente, assunto, intervalo de datas, direção, anexos, paginação.
read_emailConteúdo completo do e-mail. Metadados confiáveis e corpo não confiável retornados como blocos de conteúdo separados.
reply_emailResponde no mesmo encadeamento. Cabeçalhos de encadeamento definidos automaticamente.
get_threadTodos os e-mails em uma conversa com participantes e metadados.
download_attachmentBaixa anexo como base64 com tipo de conteúdo.
cancel_messageCancela um e-mail pendente ou agendado.
edit_scheduled_emailEdita e-mail agendado antes do envio.
wait_for_emailBloqueia até chegar um e-mail correspondente ou expirar o tempo limite (máx. 120s).
get_tagsObtém todas as tags de um e-mail. Memória persistente de chave-valor do agente entre sessões.
set_tagsDefine tags em um e-mail. Mescla com tags existentes.
delete_tagExclui uma chave de tag específica de um e-mail.
Supervisão
list_pendingE-mails aguardando decisão de supervisão (exige escopo de supervisão).
decide_emailAprova ou rejeita um e-mail pendente (exige escopo de supervisão).
manage_upgradeSolicita ou aplica upgrade de modo de supervisão (ação: solicitar|aplicar).
Lista de permissões de envio
list_allowlistLista entradas da lista de permissões de envio.
add_allowlist_entryAdiciona um destinatário à lista de permissões de envio. Aprovação do operador exigida.
remove_allowlist_entryRemove uma entrada da lista de permissões.
Gerenciamento de caixa de entrada
list_mailboxesTodas as caixas de entrada com ID, endereço, modo de supervisão, nome de exibição.
configure_mailboxConfiguração inicial: modo de supervisão, nome de exibição, CC/CCO, agendamento, assinatura.
update_mailboxAtualiza configurações (nome de exibição, modo de supervisão, assinatura, webhooks).
create_mailboxCria caixa de entrada (escopo de administrador + aprovação do operador).
delete_mailboxExclui permanentemente uma caixa de entrada (escopo de administrador).
Conta e cobrança
get_accountStatus da conta, plano, cota, envio habilitado, nível de aplicação.
update_accountAtualiza nome da organização, e-mail de supervisão, endereço físico.
delete_accountExclui permanentemente a conta e todos os dados (escopo de administrador).
get_usageEstatísticas de cota e uso do período de cobrança.
upgrade_planUpgrade para plano pago (Builder $9/mês, Pro $29/mês, Scale $99/mês).
cancel_subscriptionCancela assinatura paga, volta ao plano inicial no fim do período.
get_billing_portalURL do portal Stripe para cobrança self-service.
Cadastro (sem necessidade de chave de API)
request_challengeDesafio de prova de trabalho ALTCHA para criação de conta.
create_accountCria conta com desafio PoW resolvido.
resend_confirmationReenvia e-mail de ativação com novo código.
activate_accountAtiva conta usando código de confirmação.
setup_multimailOnboarding guiado no endpoint público /onboard.
Chaves de API e auditoria
list_api_keysLista todas as chaves de API (escopo de administrador).
create_api_keyCria chave de API com escopos (administrador + aprovação do operador). send+oversight rejeitados para evitar autoaprovação.
revoke_api_keyRevoga uma chave de API (escopo de administrador).
get_audit_logLog de auditoria da conta (escopo de administrador).
Contatos e spam
search_contactsBusca contatos por nome ou e-mail.
add_contactAdiciona um contato.
delete_contactExclui um contato.
manage_spam_statusReporta spam ou limpa status de spam (ação: reportar|limpar).
list_spamE-mails sinalizados como spam e em quarentena.
list_suppressionLista destinatários suprimidos com paginação.
remove_suppressionRemove um destinatário da lista de supressão.
Webhooks
create_webhookCria webhook para notificações de eventos de e-mail em tempo real.
list_webhooksLista todos os webhooks.
delete_webhookExclui um webhook.
Meta
report_issueReporta um bug, problema no site ou solicitação de recurso.

Exemplos de prompts

Find the most recent email from alice@example.com, summarize what she's asking,
then draft a reply saying I'll review this week. Don't send until I approve.
Check my inbox and summarize the last 5 unread emails.
For each: sender, subject, time, and whether it needs action today.
Review the pending approval queue. For each pending email: who it goes to,
the subject, risk factors, and whether to approve or reject.
Show my current sending allowlist. Then add *@acme.com so emails to Acme skip approval.

Variáveis de ambiente

VariávelObrigatóriaDescrição
MULTIMAIL_API_KEYPara modo stdioSua chave de API (mm_live_...). Não é necessária para servidor remoto (usa OAuth).
MULTIMAIL_MAILBOX_IDNãoID padrão da caixa de entrada. Se não definido, passe mailbox_id por ferramenta ou chame list_mailboxes.
MULTIMAIL_API_URLNãoURL base da API. Padrão: https://api.multimail.dev.

Também disponível

Desenvolvimento

npm install
npm run dev   # Run with tsx
npm run build # Compile TypeScript
npm start     # Run compiled version

Licença

MIT

Ao usar o MultiMail, você concorda com os Termos de Serviço e a Política de Uso Aceitável.