Mailtrap
oficialIntegra-se com Mailtrap Email API.
O que você pode fazer com Mailtrap MCP?
- Enviar e-mails transacionais — Peça ao seu assistente para enviar um e-mail transacional com conteúdo inline ou um template via
send-email. - Testar e-mails em sandbox — Envie e-mails de teste para uma caixa de entrada sandbox e inspecione o conteúdo, pontuações de spam e análise de HTML.
- Monitorar logs de entrega — Pesquise logs de e-mail e inspecione o histórico de eventos para depurar problemas de entrega com
list-email-logs. - Gerenciar templates de e-mail — Crie, liste, atualize ou exclua templates usando comandos em linguagem natural.
- Analisar estatísticas de envio — Obtenha taxas de entrega, rejeição, abertura e clique para qualquer intervalo de datas com
get-sending-stats. - Gerenciar domínios de envio — Liste, crie e configure domínios de envio com verificação de DNS e rastreamento de cliques.
Documentação
Servidor MCP Oficial do Mailtrap
O servidor MCP oficial para o Mailtrap — a plataforma de entrega de e-mails. Ele conecta sua conta Mailtrap ao Claude, Cursor, VS Code e outros assistentes de IA compatíveis com MCP.
Envie e-mails transacionais e em massa, teste mensagens com segurança no Email Sandbox, gerencie modelos, contatos, domínios de envio e webhooks, inspecione logs de e-mail e estatísticas de entrega, solucione problemas de entregabilidade e gerencie recursos da conta — tudo usando prompts em linguagem natural.
Recursos
- Email API e SMTP — Envie e-mails transacionais e em massa, incluindo mensagens em lote e baseadas em modelos.
- Teste de e-mail — Teste mensagens no Email Sandbox e inspecione conteúdo, cabeçalhos, anexos, pontuações de spam e compatibilidade com clientes HTML.
- Monitoramento de entrega — Pesquise logs de e-mail, inspecione o histórico de eventos e analise taxas de entrega, rejeição, abertura, clique e spam.
- Infraestrutura de e-mail — Gerencie domínios de envio, verificação de DNS, webhooks e supressões.
- Contatos — Gerencie contatos, listas, campos personalizados e eventos, com importações e exportações.
- Gerenciamento de conta — Revise o uso de cobrança e gerencie acesso, permissões, tokens de API e subcontas.
Clientes MCP Suportados
Funciona com Claude Desktop, Claude Code, Cursor, VS Code e qualquer outro cliente compatível com MCP. As instruções de configuração para cada um estão abaixo.
Pré-requisitos
Antes de usar este servidor MCP, você precisa:
- Criar uma conta Mailtrap
- Verificar seu domínio
- Obter seu token de API nas configurações de API do Mailtrap
- Obter seu ID de conta no gerenciamento de conta do Mailtrap
Variáveis de ambiente obrigatórias:
MAILTRAP_API_TOKEN- Obrigatório para todas as funcionalidadesMAILTRAP_ACCOUNT_ID- Obrigatório para modelos, estatísticas, logs de e-mail, listagem/exibição de sandbox, domínios de envio e supressões. Opcional apenas para as ferramentas de envio (send-email, send-sandbox-email e as ferramentas batch-send-*), as ferramentas de campanha de e-mail, as ferramentas de informações da empresa e as ferramentas de exclusão de rastreamento.
Opcional (pode ser passado como parâmetros de ferramenta):
DEFAULT_FROM_EMAIL- E-mail de remetente padrão quandofromnão é fornecido para send-email, send-sandbox-email ou as ferramentas batch-send-* (onde preenchebase.from). Permite alternar o remetente por chamada via o parâmetrofrom.MAILTRAP_SANDBOX_ID- ID de sandbox padrão para ferramentas de sandbox quandosandbox_idnão é fornecido. Permite alternar entre sandboxes por chamada via o parâmetrosandbox_id.MAILTRAP_TEST_INBOX_ID- ID de caixa de entrada de teste padrão para ferramentas de sandbox quandotest_inbox_idnão é fornecido. Permite alternar entre caixas de entrada por chamada via o parâmetrotest_inbox_id. Alias legado paraMAILTRAP_SANDBOX_ID, ainda respeitado como fallback.MAILTRAP_ORGANIZATION_ID- Obrigatório para ferramentas de organização (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Token de API com escopo de organização. Obrigatório para ferramentas de organização (separado deMAILTRAP_API_TOKEN).
Instalação Rápida
CLI Smithery
Smithery é um instalador e gerenciador de registro para servidores MCP que funciona com todos os clientes de IA.
npx @smithery/cli install mailtrap
O Smithery lida automaticamente com a configuração do cliente e fornece um processo de configuração interativo. É a maneira mais fácil de começar com servidores MCP localmente.
Configuração
Claude Desktop
Use o MCPB para instalar o servidor Mailtrap. Você pode encontrar esses arquivos em Releases.
Baixe o arquivo .MCPB e abra-o. Se você tiver o Claude Desktop - ele abrirá e sugerirá a configuração.
Claude Desktop ou Cursor
Adicione a seguinte configuração:
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Se você estiver usando asdf para gerenciar o Node.js, deve usar o caminho absoluto para o executável (exemplo para Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Localização do arquivo de configuração do Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Localização do arquivo de configuração do Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
Alterando a configuração manualmente
Execute na Paleta de Comandos: Preferences: Open User Settings (JSON)
Em seguida, no arquivo de configurações, adicione a seguinte configuração:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] Não se esqueça de reiniciar seu servidor MCP após alterar a seção "env".
Pacote MCP (MCPB)
Para instalação fácil em hosts que suportam Pacotes MCP, você pode distribuir um arquivo de pacote .mcpb.
# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack
# Inspect bundle metadata
npm run mcpb:info
# Sign the bundle for distribution (optional)
npm run mcpb:sign
Isso cria mailtrap-mcp.mcpb usando o repositório manifest.json e artefatos compilados em dist/.
Uso
Uma vez configurado, você pode pedir ao agente para enviar e-mails e gerenciar modelos, por exemplo:
Operações de envio de e-mail:
- "Envie um e-mail para john.doe@example.com com o assunto 'Reunião Amanhã' e um lembrete amigável sobre nossa próxima reunião."
- "Envie um e-mail para sarah@example.com sobre a atualização do projeto e copie a equipe em team@example.com"
- "Envie o modelo de boas-vindas (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) para new@example.com com as variáveis{ name: 'Alex' }" - "Envie um e-mail de sandbox para test@example.com com o assunto 'Modelo de Teste' para visualizar como nosso e-mail de boas-vindas fica"
Logs de e-mail (depuração de entrega):
- "Liste meus logs de e-mail enviados recentemente"
- "Mostre logs de e-mail para e-mails enviados para user@example.com"
- "Obtenha a mensagem do log de e-mail para o ID abc-123-uuid para verificar o status da entrega"
Estatísticas de envio:
- "Obtenha estatísticas de envio para janeiro de 2025"
- "Mostre as taxas de entrega divididas por domínio no último mês"
- "Quais são minhas estatísticas de e-mail por categoria de 2025-01-01 a 2025-01-31?"
Operações de sandbox:
- "Obtenha todas as mensagens da minha caixa de entrada de sandbox"
- "Mostre-me a primeira página de mensagens de sandbox"
- "Pesquise mensagens contendo 'teste' na minha caixa de entrada de sandbox"
- "Mostre-me os detalhes da mensagem de sandbox com ID 5159037506"
Operações de modelo:
- "Liste todos os modelos de e-mail na minha conta Mailtrap"
- "Crie um novo modelo de e-mail chamado 'E-mail de Boas-Vindas' com o assunto 'Bem-vindo à nossa plataforma!'"
- "Atualize o modelo com ID 12345 para alterar o assunto para 'Mensagem de Boas-Vindas Atualizada'"
- "Exclua o modelo com ID 67890"
Domínios de envio:
- "Liste meus domínios de envio"
- "Obtenha o domínio de envio com ID 3938"
- "Crie um domínio de envio para example.com"
- "Ative o rastreamento de cliques para o domínio de envio 3938"
- "Exclua o domínio de envio 3938"
- "Obtenha o domínio de envio 3938 com instruções de configuração de DNS"
- "Mostre as informações da empresa para o domínio de envio 3938"
- "Defina as informações da empresa para o domínio 3938 como Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Altere a cidade das informações da empresa para o domínio 3938 para Nova York"
Supressões:
- "Liste supressões para bounced@example.com"
- "Suprima bounced@example.com no fluxo transacional do domínio 3938"
- "Mostre-me todos os endereços de e-mail suprimidos"
- "Por que user@example.com não está recebendo meus e-mails?"
- "Remova user@example.com da lista de supressão"
Exclusões de rastreamento:
- "Pare de rastrear aberturas e cliques para privacy@example.com no domínio 3938"
- "Liste todos que optaram por sair do rastreamento"
Contatos e listas:
- "Adicione john.doe@example.com à minha lista de contatos do boletim informativo"
- "Mostre-me todas as minhas listas de contatos"
- "Crie um campo de contato chamado 'signup_source' para rastrear de onde os contatos vieram"
- "Atualize o contato john.doe@example.com para definir o plano como 'pro'"
- "Importe contatos deste CSV para minha lista de integração"
- "Exporte todos os contatos da minha lista do boletim informativo"
- "Registre um evento 'trial_started' para o contato john.doe@example.com"
Webhooks:
- "Liste todos os webhooks configurados na minha conta"
- "Crie um webhook apontando para https://example.com/hooks/mailtrap para eventos de rejeição e spam"
- "Atualize o webhook 4821 para também enviar eventos de entrega"
- "Exclua o webhook 4821"
Conta e cobrança:
- "Qual é meu uso de cobrança atual neste mês?"
- "Quantos e-mails ainda tenho no meu plano?"
- "Liste todos que têm acesso a esta conta Mailtrap"
- "Mostre-me os recursos de permissão disponíveis na minha conta"
Tokens de API:
- "Liste todos os tokens de API na minha conta"
- "Crie um novo token de API para o ambiente de staging"
- "Redefina o token de API com ID 1234"
- "Exclua o token de API não utilizado 1234"
Organização e subcontas:
- "Liste todas as subcontas na minha organização"
- "Crie uma nova subconta para o projeto do cliente 'Acme Corp'"
Ferramentas Disponíveis
send-email
Envia um e-mail transacional através do Mailtrap. Suporta dois modos mutuamente exclusivos — conteúdo inline (subject + text/html) ou baseado em modelo (template_uuid).
Parâmetros:
from(opcional): Remetente como{ email, name? }(uma string de e-mail simples também é aceita em tempo de execução). Se não for fornecido,DEFAULT_FROM_EMAILé usado.to(opcional): Matriz de destinatários como objetos{ email, name? }(strings de e-mail simples, ou um único endereço não-matriz, também são aceitos em tempo de execução). Opcional seccoubccfor fornecido; pelo menos um deto/cc/bccdeve conter um destinatário.cc(opcional): Matriz de destinatários CC como objetos{ email, name? }(strings de e-mail simples também são aceitas em tempo de execução).bcc(opcional): Matriz de destinatários CCO como objetos{ email, name? }(strings de e-mail simples também são aceitas em tempo de execução).subject(condicional): Linha de assunto do e-mail. Obrigatório para envios inline; deve ser omitido quandotemplate_uuidestiver definido.text(condicional): Texto do corpo do e-mail. Obrigatório (junto com ou em vez dehtml) para envios inline; deve ser omitido quandotemplate_uuidestiver definido.html(condicional): Versão HTML do corpo do e-mail. Obrigatório (junto com ou em vez detext) para envios inline; deve ser omitido quandotemplate_uuidestiver definido.category(opcional): Categoria do e-mail para rastreamento e análise. Deve ser omitido quandotemplate_uuidestiver definido.template_uuid(opcional): Use um modelo de e-mail Mailtrap em vez de conteúdo inline. Quando definido,subject/text/html/categorydevem ser omitidos (de acordo com a API Mailtrap).template_variables(opcional): Objeto de variáveis substituídas no modelo referenciado portemplate_uuid. Permitido apenas junto comtemplate_uuid.
batch-send-transactional-email
Envia um lote de e-mails transacionais em uma única chamada de API Mailtrap (fluxo de envio padrão). Campos compartilhados vão em base; substituições por destinatário vão em requests[]. Cada solicitação deve incluir pelo menos um destinatário via to, cc ou bcc. Mesma exclusão mútua inline-vs-modelo que send-email — verificada após mesclar a base com cada solicitação.
Parâmetros:
base(opcional): Objeto com campos compartilhados em todo o lote.from(opcional): Remetente como{ email, name? }(uma string de e-mail simples também é aceita em tempo de execução). UsaDEFAULT_FROM_EMAILcomo fallback.reply_to(opcional): Endereço de resposta (reply-to).subject/text/html/category(opcional, modo inline): Conteúdo padrão para cada solicitação.template_uuid/template_variables(opcional, modo template): Template padrão + variáveis. Mutuamente exclusivo com os campos inline.custom_variables(opcional): Variáveis personalizadas padrão (com valores de string).headers(opcional): Cabeçalhos personalizados padrão.
requests(obrigatório): Matriz não vazia de mensagens por destinatário. Cada entrada contém:to(opcional): Matriz de destinatários como objetos{ email, name? }(strings de e-mail simples, ou um único endereço não-matriz, também são aceitos em tempo de execução). Opcional seccoubccfor fornecido; pelo menos um deto/cc/bccdeve conter um destinatário.cc,bcc,reply_to(opcional).- Substituições inline (
subject/text/html/category) ou template (template_uuid/template_variables); qualquer campo omitido usa o valor correspondente debasecomo fallback. custom_variables,headers(opcional).
batch-send-bulk-email
Envia um lote de e-mails em massa pela API de stream em massa do Mailtrap. Mesma estrutura de base + requests[], validação e regras de inline-vs-template que batch-send-transactional-email — a única diferença é que esta ferramenta roteia a chamada pelo endpoint em massa em vez do transacional. Consulte os parâmetros acima.
list-email-logs
Lista logs de e-mails enviados (histórico de entrega) com paginação e filtros opcionais. Use para depurar problemas de entrega diretamente da IDE.
Parâmetros:
search_after(opcional): Cursor de paginação da resposta anterior emnext_page_cursorsent_after(opcional): Data/hora ISO 8601; apenas logs enviados após este horáriosent_before(opcional): Data/hora ISO 8601; apenas logs enviados antes deste horáriofrom_email(opcional): Filtrar por e-mail do remetente; use comfrom_operator(padrão: ci_equal)to_email(opcional): Filtrar por e-mail do destinatário; use comto_operator(padrão: ci_equal)status(opcional): Filtrar por status de entrega: delivered, not_delivered, enqueued, opted_out; use comstatus_operator(padrão: equal)subject(opcional): Filtrar por assunto do e-mail; use comsubject_operator(padrão: ci_contain). Usesubject_operator: empty/not_empty para filtrar pela presença de assunto.sending_domain_id(opcional): Filtrar por ID do domínio de envio (número); use comsending_domain_id_operator(padrão: equal)sending_stream(opcional): Filtrar por stream: transactional ou bulk; use comsending_stream_operator(padrão: equal)events(opcional): Filtrar por tipo(s) de evento: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; use comevents_operator(include_event / not_include_event)clicks_count/opens_count(opcional): Filtrar por contagem de cliques/aberturas; use com*_operator: equal, greater_than, less_thanclient_ip/sending_ip(opcional): Filtrar por IP; use com*_operator: equal, not_equal, contain, not_containemail_service_provider_response(opcional): Filtrar por texto de resposta do provedor; use com*_operator(ci_contain, etc.)email_service_provider(opcional): Filtrar por provedor (exato); use com*_operator: equal, not_equalrecipient_mx(opcional): Filtrar por MX do destinatário; use comrecipient_mx_operator(ci_contain, etc.)category(opcional): Filtrar por categoria do e-mail; use comcategory_operator: equal, not_equal
Todos os parâmetros são opcionais.
get-email-log-message
Obtém uma única mensagem de log de e-mail por ID (UUID): um resumo legível (de, para, assunto, horário de envio, status, categoria, stream, engajamento, contexto de entrega) e, em seguida, o histórico detalhado de eventos. Opcionalmente, com include_content: true, você também pode carregar e exibir o corpo da mensagem (HTML e texto simples) quando o Mailtrap expõe uma URL de mensagem bruta.
Parâmetros:
message_id(obrigatório): UUID da mensagem de log de e-mail (da resposta de envio ou de list-email-logs). Uselist-email-logspara encontrar IDs de mensagens.include_content(opcional): Quandotrue, busca o EML bruto (seraw_message_urlestiver disponível) e anexa seções analisadas do corpo em HTML e texto simples, semelhante a show-sandbox-email-message.
get-sending-stats
Obtenha estatísticas de envio de e-mails (taxas de entrega, bounce, abertura, clique e spam) para um intervalo de datas. Opcionalmente, divida por domínio, categoria, provedor de serviço de e-mail ou data. Verifique as taxas de entrega sem sair do editor.
Parâmetros:
start_date(obrigatório): Data inicial para o intervalo de estatísticas (AAAA-MM-DD)end_date(obrigatório): Data final para o intervalo de estatísticas (AAAA-MM-DD)breakdown(opcional): Como dividir as estatísticas:aggregated(padrão),by_domain,by_category,by_email_service_providerouby_datesending_domain_ids(opcional): Limitar resultados a estes IDs de domínio de envio (matriz de inteiros)sending_streams(opcional): Limitar atransactionale/oubulk(matriz de strings)categories(opcional): Limitar a estas categorias de e-mail (matriz de strings)email_service_providers(opcional): Limitar a estes provedores, ex.: Google, Yahoo, Outlook (matriz de strings)
create-template
Cria um novo template de e-mail na sua conta Mailtrap.
Parâmetros:
name(obrigatório): Nome do templatesubject(obrigatório): Linha de assunto do e-mailhtml(outexté obrigatório): Conteúdo HTML do templatetext(ouhtmlé obrigatório): Versão em texto simples do templatecategory(opcional): Categoria do template (padrão: "General")
list-templates
Lista todos os templates de e-mail na sua conta Mailtrap.
Parâmetros:
- Nenhum parâmetro necessário
get-template
Obtém um único template de e-mail por ID, incluindo assunto, categoria e corpo em HTML/texto.
Parâmetros:
template_id(obrigatório): ID do template a buscar
update-template
Atualiza um template de e-mail existente.
Parâmetros:
template_id(obrigatório): ID do template a atualizarname(opcional): Novo nome para o templatesubject(opcional): Nova linha de assunto do e-mailhtml(opcional): Novo conteúdo HTML do templatetext(opcional): Nova versão em texto simples do templatecategory(opcional): Nova categoria para o template
[!NOTE] Pelo menos um campo atualizável (nome, assunto, html, texto ou categoria) deve ser fornecido ao chamar update-template para realizar uma atualização.
delete-template
Exclui um template de e-mail existente.
Parâmetros:
template_id(obrigatório): ID do template a excluir
send-sandbox-email
Envia um e-mail para sua caixa de entrada de teste do Mailtrap para fins de desenvolvimento e teste. Isso é perfeito para testar templates de e-mail sem enviar mensagens para destinatários reais. Suporta os mesmos dois modos que send-email — conteúdo inline ou baseado em template (template_uuid).
Parâmetros:
test_inbox_id(opcional): ID da caixa de entrada de teste do Mailtrap. Obrigatório a menos queMAILTRAP_TEST_INBOX_IDesteja definido; passe por chamada para direcionar uma caixa de entrada específica.from(opcional): Remetente como{ email, name? }(uma string de e-mail simples também é aceita em tempo de execução). Se não for fornecido,DEFAULT_FROM_EMAILé usado.to(opcional): Matriz de destinatários como objetos{ email, name? }(strings de e-mail simples na matriz, ou uma string separada por vírgulas de e-mails simples, também são aceitas em tempo de execução). Opcional seccoubccfor fornecido; pelo menos um deto/cc/bccdeve conter um destinatário.cc(opcional): Matriz de destinatários CC como objetos{ email, name? }(strings de e-mail simples também são aceitas em tempo de execução).bcc(opcional): Matriz de destinatários BCC como objetos{ email, name? }(strings de e-mail simples também são aceitas em tempo de execução).subject(condicional): Linha de assunto do e-mail. Obrigatório para envios inline; deve ser omitido quandotemplate_uuidestiver definido.text(condicional): Texto do corpo do e-mail. Obrigatório (junto com ou em vez dehtml) para envios inline; deve ser omitido quandotemplate_uuidestiver definido.html(condicional): Versão HTML do corpo do e-mail. Obrigatório (junto com ou em vez detext) para envios inline; deve ser omitido quandotemplate_uuidestiver definido.category(opcional): Categoria do e-mail para rastreamento. Deve ser omitido quandotemplate_uuidestiver definido.template_uuid(opcional): Use um template de e-mail do Mailtrap em vez de conteúdo inline. Quando definido,subject/text/html/categorydevem ser omitidos.template_variables(opcional): Objeto de variáveis substituídas no template referenciado portemplate_uuid. Permitido apenas junto comtemplate_uuid.
batch-send-sandbox-email
Envia um lote de e-mails para sua caixa de entrada de teste do Mailtrap em uma única chamada de API, sem entregar a destinatários reais. Mesma estrutura de base + requests[], validação e regras de inline-vs-template que batch-send-transactional-email — a diferença é que esta ferramenta roteia a chamada pelo endpoint sandbox para uma única caixa de entrada de teste.
Parâmetros:
sandbox_id(opcional): ID do sandbox do Mailtrap (caixa de entrada de teste). Obrigatório a menos queMAILTRAP_SANDBOX_IDesteja definido; passe por chamada para direcionar um sandbox específico.base(opcional),requests(obrigatório): Consultebatch-send-transactional-emailacima.
[!NOTE] Para ferramentas de sandbox, forneça
test_inbox_idna chamada da ferramenta ou defina a variável de ambienteMAILTRAP_TEST_INBOX_ID. Você pode alternar entre caixas de entrada por chamada passandotest_inbox_id. Ferramentas que usamsandbox_idusamMAILTRAP_SANDBOX_IDprimeiro.
get-sandbox-messages
Recupera uma lista de mensagens da sua caixa de entrada de teste do Mailtrap. Útil para verificar quais e-mails foram recebidos no seu sandbox durante os testes.
Parâmetros:
page(opcional): Número da página para paginação (mínimo: 1)last_id(opcional): Paginação usando o ID da última mensagem. Retorna mensagens após o ID de mensagem especificado (mínimo: 1)search(opcional): Consulta de busca para filtrar mensagens
[!NOTE] Todos os parâmetros são opcionais. Se nenhum for fornecido, a primeira página de mensagens da caixa de entrada será retornada. Use page para paginação tradicional, last_id para paginação baseada em cursor, ou search para filtrar mensagens por conteúdo.
show-sandbox-email-message
Mostra informações detalhadas e o conteúdo de uma mensagem de e-mail específica da sua caixa de entrada de teste do Mailtrap, incluindo o corpo em HTML e texto.
Parâmetros:
message_id(obrigatório): ID da mensagem de e-mail do sandbox a recuperar
[!NOTE] Use
get-sandbox-messagesprimeiro para obter a lista de mensagens e seus IDs, depois use esta ferramenta para visualizar o conteúdo completo de uma mensagem específica.
get-sandbox-project
Obtém um projeto sandbox por ID, incluindo suas caixas de entrada e contagens de e-mails.
Parâmetros:
project_id(obrigatório): ID do projeto a buscar
update-sandbox-project
Renomeia um projeto sandbox existente.
Parâmetros:
project_id(obrigatório): ID do projeto a atualizarname(obrigatório): Novo nome para o projeto (2–100 caracteres)
list-sandboxes
Lista todos os sandboxes acessíveis ao token da API em todos os projetos.
Parâmetros:
- Nenhum parâmetro necessário
mark-sandbox-as-read
Marca todas as mensagens em um sandbox como lidas.
Parâmetros:
sandbox_id(obrigatório): ID do sandbox a ser processado
reset-sandbox-credentials
Reset as credenciais SMTP de um sandbox. Retorna o novo nome de usuário/senha.
Parâmetros:
sandbox_id(obrigatório): ID do sandbox no qual atuar
enable-sandbox-email-address
Ativa o endereço de recebimento por e-mail de um sandbox (ativa o endereço Mailtrap que entrega mensagens ao sandbox via SMTP).
Parâmetros:
sandbox_id(obrigatório): ID do sandbox no qual atuar
reset-sandbox-email-address
Gera um novo endereço de recebimento por e-mail para um sandbox.
Parâmetros:
sandbox_id(obrigatório): ID do sandbox no qual atuar
forward-sandbox-message
Encaminha uma mensagem do sandbox para um endereço de e-mail externo. Isso conta contra sua cota mensal de encaminhamento.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox a ser encaminhadaemail(obrigatório): Endereço de e-mail para o qual encaminhar a mensagem
update-sandbox-message
Marca uma mensagem do sandbox como lida ou não lida.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox a ser atualizadais_read(obrigatório):truemarca como lida,falsemarca como não lida
delete-sandbox-message
Exclui uma única mensagem do sandbox.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox a ser excluída
get-sandbox-message-spam-score
Obtém o relatório de spam do SpamAssassin para uma mensagem do sandbox (pontuação, regras, relatório completo). Alternativa independente a include_spam_report: true em show-sandbox-email-message.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-html-analysis
Obtém o relatório de análise de HTML para uma mensagem do sandbox (pontuações de compatibilidade com clientes, elementos problemáticos). Alternativa independente a include_html_analysis: true em show-sandbox-email-message.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-headers
Obtém os cabeçalhos de e-mail analisados de uma mensagem do sandbox.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-html
Obtém o corpo HTML renderizado de uma mensagem do sandbox.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-text
Obtém o corpo em texto simples de uma mensagem do sandbox.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-raw
Obtém a mensagem bruta formatada em MIME (cabeçalhos + corpo) de uma mensagem do sandbox.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-eml
Obtém a mensagem renderizada como um payload de arquivo EML (adequado para anexar a um ticket ou importar para outro cliente de e-mail).
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-message-html-source
Obtém o código-fonte HTML não renderizado de uma mensagem do sandbox (HTML antes de quaisquer transformações do lado do Mailtrap, como reescritas de links CID).
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
list-sandbox-attachments
Lista todos os anexos de uma mensagem do sandbox (nome do arquivo, tipo de conteúdo, tamanho, caminho de download).
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox
get-sandbox-attachment
Obtém metadados e URL de download de um único anexo.
Parâmetros:
sandbox_id(opcional): ID do sandbox. UsaMAILTRAP_SANDBOX_IDcomo padrão.message_id(obrigatório): ID da mensagem do sandbox que contém o anexoattachment_id(obrigatório): ID do anexo a ser buscado
list-sending-domains
Lista os domínios de envio e seu status de verificação de DNS.
Parâmetros:
- Nenhum parâmetro obrigatório
get-sending-domain
Obtém um domínio de envio por ID e seu status de verificação (incluindo registros DNS). Opcionalmente, inclua instruções de configuração de DNS definindo include_setup_instructions como true.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envioinclude_setup_instructions(opcional): Setrue, anexe instruções de configuração de DNS à resposta. Padrão:false
create-sending-domain
Cria um novo domínio de envio. Após a criação, adicione registros DNS para verificar o domínio (use get-sending-domain com include_setup_instructions: true para ver os registros).
Parâmetros:
domain_name(obrigatório): Nome do domínio (ex.: example.com)
update-sending-domain
Atualiza as configurações de rastreamento e recebimento de um domínio de envio.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envioopen_tracking_enabled(opcional): Rastrear aberturas de e-mails enviados deste domínioclick_tracking_enabled(opcional): Rastrear cliques em links de e-mails enviados deste domíniotracking_opt_out_enabled(opcional): Adicionar o link de exclusão de rastreamento a e-mails rastreados. Requer rastreamento de abertura ou cliqueauto_unsubscribe_link_enabled(opcional): Adicionar automaticamente um link de cancelamento de inscrição aos e-mailsinbound_enabled(opcional): Permitir que o domínio seja anexado a uma caixa de entrada de recebimento como catch-all
Pelo menos uma configuração além de sending_domain_id deve ser fornecida.
delete-sending-domain
Exclui um domínio de envio.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envio a ser excluído
send-sending-domain-setup-instructions
Envia por e-mail as instruções de configuração de DNS de um domínio de envio para um endereço específico. Útil para encaminhar registros DNS a um colega de DevOps.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envioemail(obrigatório): Endereço de e-mail para o qual enviar as instruções de configuração de DNS
get-company-info
Obtém as informações da empresa de um domínio de envio, usadas para verificação de conformidade do domínio.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envio
create-company-info
Define as informações da empresa de um domínio de envio, obrigatórias para a verificação de conformidade do domínio.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envioname(obrigatório): Nome da empresa ou pessoa físicaaddress(obrigatório): Endereço (rua)city(obrigatório): Cidadecountry(obrigatório): Paíszip_code(obrigatório): CEP ou código postalwebsite_url(obrigatório): URL do site da empresaphone(opcional): Número de telefoneprivacy_policy_url(opcional): URL da página de política de privacidadeterms_of_service_url(opcional): URL da página de termos de serviçoinfo_level(opcional):businessouindividual
update-company-info
Atualiza as informações da empresa de um domínio de envio.
Parâmetros:
sending_domain_id(obrigatório): ID do domínio de envio- Todos os campos de create-company-info, todos opcionais. Pelo menos um deve ser fornecido; campos omitidos permanecem inalterados.
list-suppressions
Lista ou pesquisa supressões (rejeições permanentes, reclamações de spam, cancelamentos de inscrição, importações manuais). Retorna até 1000 resultados por chamada.
Parâmetros:
email(opcional): Filtro de e-mail. Retorna apenas supressões que correspondem a este endereço.
create-suppression
Adiciona um endereço de e-mail à lista de supressão da conta, para que o Mailtrap pare de entregar mensagens a ele.
Parâmetros:
email(obrigatório): Endereço de e-mail a ser suprimidodomain_id(obrigatório): ID do domínio de envio ao qual a supressão se aplicasending_stream(obrigatório):transactionaloubulktype(opcional):hard bounce,spam complaint,unsubscriptionoumanual import. Padrão:manual import
delete-suppression
Exclui uma supressão por ID. O Mailtrap retomará a entrega para este e-mail, a menos que ele seja suprimido novamente.
Parâmetros:
suppression_id(obrigatório): ID da supressão a ser excluída
list-tracking-opt-outs
Lista endereços de e-mail excluídos do rastreamento de abertura e clique. Retorna até 1000 registros por chamada.
Parâmetros:
email(opcional): Filtro de e-mail. Retorna apenas exclusões que correspondem a este endereçostart_time(opcional): Apenas exclusões criadas neste horário ou depois (ISO 8601)end_time(opcional): Apenas exclusões criadas neste horário ou antes (ISO 8601)last_id(opcional): Cursor de paginação — olast_idda resposta anterior
create-tracking-opt-out
Exclui um endereço de e-mail do rastreamento de abertura e clique para um domínio de envio.
Parâmetros:
email(obrigatório): Endereço de e-mail a ser excluído do rastreamentodomain_id(obrigatório): ID do domínio de envio ao qual a exclusão se aplica
delete-tracking-opt-out
Remove um endereço de e-mail da lista de exclusão de rastreamento, para que o rastreamento de abertura e clique volte a se aplicar a ele.
Parâmetros:
tracking_opt_out_id(obrigatório): ID da exclusão de rastreamento a ser excluída
list-webhooks
Lista todos os webhooks configurados para a conta. Retorna os registros completos dos webhooks como JSON.
Parâmetros:
- Nenhum parâmetro obrigatório
get-webhook
Obtém um único webhook por ID. Retorna o registro completo do webhook como JSON. Observação: signing_secret não é retornado aqui — ele está disponível apenas na resposta de create-webhook.
Parâmetros:
webhook_id(obrigatório): ID do webhook a ser buscado
create-webhook
Cria um webhook. A resposta inclui um signing_secret para verificar assinaturas de payload do webhook — este segredo é retornado apenas na criação, então armazene-o agora. Se você o perder, recrie o webhook.
Parâmetros:
url(obrigatório): URL para a qual o Mailtrap fará POST dos eventos do webhookwebhook_type(obrigatório):"email_sending","audit_log"ou"inbound_receiving"active(opcional, booleano): padrão étruepayload_format(opcional):"json"ou"jsonlines". Padrão:"json"sending_stream(opcional, apenasemail_sending):"transactional"ou"bulk"event_types(opcional, apenasemail_sending): array dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(opcional, apenasemail_sending): ID do domínio de envio para escopar este webhookinbound_inbox_id(opcional, apenasinbound_receiving): ID da caixa de entrada de recebimento à qual o webhook está vinculado; omita para aplicar a todas as caixas de entrada da conta
update-webhook
Atualiza os campos mutáveis de um webhook. webhook_type, sending_stream e domain_id não podem ser alterados após a criação — recrie o webhook se precisar alterá-los.
Parâmetros:
webhook_id(obrigatório): ID do webhook a ser atualizadourl(opcional): Nova URL do webhookactive(opcional, booleano): Ativar ou desativar o webhookpayload_format(opcional):"json"ou"jsonlines"event_types(opcional, apenasemail_sending): array dedelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(opcional, apenasinbound_receiving): ID da caixa de entrada de recebimento à qual o webhook está vinculado
delete-webhook
Exclui permanentemente um webhook por ID. Retorna o registro do webhook excluído.
Parâmetros:
webhook_id(obrigatório): ID do webhook a ser excluído
get-contact
Obtém um contato por ID ou e-mail. Retorna o registro completo do contato (associações a listas, status, campos personalizados).
Parâmetros:
contact_identifier(obrigatório): ID do contato ou endereço de e-mail
create-contact
Cria um novo contato.
Parâmetros:
email(obrigatório): Endereço de e-mailfields(opcional): Valores de campos personalizados identificados pela tag de mesclagem (ex.:first_name). Valores string, número ou booleanoslist_ids(opcional): IDs das listas de contatos para assinar este contatounsubscribed(opcional, booleano): Criar o contato no statusunsubscribed
update-contact
Atualiza um contato existente identificado por ID ou e-mail. list_ids substitui o conjunto completo de associações do contato; list_ids_included/list_ids_excluded adicionam/removem sem alterar o restante.
Parâmetros:
contact_identifier(obrigatório): ID do contato ou e-mailemail(opcional): Novo endereço de e-mailfields(opcional): Valores de campos personalizados identificados pela tag de mesclagemlist_ids(opcional): Substituir o conjunto de associações por esta lista exatalist_ids_included(opcional): IDs de listas para adicionar (aditivo)list_ids_excluded(opcional): IDs de listas para removerunsubscribed(opcional, booleano): Definir comounsubscribed(verdadeiro) ousubscribed(falso)
delete-contact
Exclui permanentemente um contato por ID ou e-mail. Retorna o registro do contato excluído quando a API responde com um; caso contrário, retorna um payload de confirmação.
Parâmetros:
contact_identifier(obrigatório): ID do contato ou e-mail
create-contact-event
Registra um evento de contato associado a um contato (por ID ou e-mail). Usado para acionar automações de listas de contatos.
Parâmetros:
contact_identifier(obrigatório): ID do contato ou e-mailname(obrigatório): Nome do evento (corresponde aos gatilhos de automação)params(obrigatório): Objeto de pares chave/valor arbitrários. Os valores podem ser string, número, booleano ou nulo
list-contact-lists
Lista todas as listas de contatos da conta.
Parâmetros:
search(opcional): Filtrar listas de contatos por nome (correspondência sem diferenciar maiúsculas/minúsculas), ex.:news
get-contact-list
Obtém uma lista de contatos por ID.
Parâmetros:
list_id(obrigatório): ID da lista de contatos a buscar
create-contact-list
Cria uma nova lista de contatos.
Parâmetros:
name(obrigatório): Nome para a nova lista
update-contact-list
Renomeia uma lista de contatos existente.
Parâmetros:
list_id(obrigatório): ID da lista de contatosname(obrigatório): Novo nome para a lista
delete-contact-list
Exclui permanentemente uma lista de contatos por ID.
Parâmetros:
list_id(obrigatório): ID da lista de contatos a excluir
list-contact-fields
Lista todas as definições de campos de contato da conta.
Parâmetros:
- Nenhum parâmetro obrigatório
get-contact-field
Obtém uma definição de campo de contato por ID.
Parâmetros:
field_id(obrigatório): ID do campo de contato
create-contact-field
Cria uma nova definição de campo de contato. merge_tag deve ser único na conta e é usado como nome do placeholder em variáveis de template.
Parâmetros:
name(obrigatório): Nome de exibição (ex.: "Nome")merge_tag(obrigatório): Nome do placeholder único (ex.:first_name)data_type(obrigatório): Um detext,number,boolean,date
update-contact-field
Atualiza uma definição de campo de contato. Qualquer combinação de name, merge_tag e data_type pode ser alterada.
Parâmetros:
field_id(obrigatório): ID do campo de contatoname(opcional): Novo nome de exibiçãomerge_tag(opcional): Nova tag de mesclagem (deve permanecer única)data_type(opcional): Um detext,number,boolean,date
delete-contact-field
Exclui permanentemente uma definição de campo de contato por ID.
Parâmetros:
field_id(obrigatório): ID do campo de contato a excluir
create-contact-import
Importa contatos em massa. Retorna um registro de trabalho de importação; consulte o status com get-contact-import.
Parâmetros:
contacts(obrigatório): Matriz de entradas de contato. Cada entrada precisa de:email(obrigatório): Endereço de e-mail do contatofields(opcional): Valores de campos personalizados identificados pela tag de mesclagem (valores string ou número)list_ids_included(opcional): IDs de listas para adicionar o contatolist_ids_excluded(opcional): IDs de listas para remover o contato
get-contact-import
Obtém o status de um trabalho de importação de contatos (criado/iniciado/concluído/falhou) com contagens de criados/atualizados/acima do limite.
Parâmetros:
import_id(obrigatório): ID do trabalho de importação de contatos
create-contact-export
Exporta contatos que correspondem a um conjunto de filtros combinados com E. Retorna um registro de trabalho de exportação; consulte o status com get-contact-export para recuperar a URL de download quando status for finished.
Parâmetros:
filters(obrigatório): Matriz de objetos de filtro. Cada um tem:name(obrigatório): Campo para filtrar (list_id,subscription_status,email, etc.)operator(obrigatório): Um deequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(obrigatório): Valor de comparação (string, número, booleano ou matriz)
get-contact-export
Obtém o status de um trabalho de exportação de contatos. Quando status for finished, o campo url contém o link de download do CSV.
Parâmetros:
export_id(obrigatório): ID do trabalho de exportação de contatos
list-email-campaigns
Lista as campanhas de e-mail da conta, das mais recentes para as mais antigas, com paginação por token de página. Opcionalmente, filtre por nome com search.
Parâmetros:
token(opcional): Número da página a recuperar (paginação por token de página). Padrão:1per_page(opcional): Número de campanhas por página. Padrão:50, máximo:100search(opcional): Filtrar campanhas por nome (correspondência parcial sem diferenciar maiúsculas/minúsculas)
get-email-campaign
Obtém uma campanha de e-mail por ID.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail
create-email-campaign
Cria uma nova campanha de e-mail. A campanha é sempre criada no estado draft; agendamento e início são ferramentas separadas (schedule-email-campaign, start-email-campaign).
Parâmetros:
name(obrigatório): Nome da campanhadomain_id(obrigatório): ID do domínio de envio verificado usado para a campanha, conforme retornado pelos endpoints de Domínios de Enviofrom_local_part(obrigatório): Parte local (antes do @) do endereço Detemplate_attributes(obrigatório): Template de e-mail inline. Tem:subject(obrigatório): Linha de assunto do e-mail (máx. 255 caracteres). Suporta tags de mesclagem, ex.:Hi {{first_name}}body_html(opcional): Corpo em HTML (o design). Obrigatório antes que a campanha possa ser agendada ou iniciada. Inclua um link de cancelamento de inscrição via uma âncora cujohrefcontenha o placeholder__unsubscribe_url__body_text(opcional): Alternativa em texto simples do corpo do e-mailmerge_tags(opcional): Nomes simples das tags de mesclagem referenciadas no assunto/corpo, ex.:["first_name"]
from_display_name(opcional): Nome de exibição mostrado no cabeçalho Dereply_to(opcional): Partes do endereço Responder-Para (display_name,local_part,domain)delivery_mode(opcional):rapid(enviar o mais rápido possível) ougradual(limitar adelivery_options.emails_per_hour)delivery_options(opcional): Opções de limitação de entrega (emails_per_hour)contact_list_ids(opcional): IDs das listas de contatos para envio (tratadas como o conjunto completo de listas incluídas)contact_segment_ids(opcional): IDs dos segmentos de contatos para envio (tratados como o conjunto completo de segmentos incluídos)
update-email-campaign
Atualiza uma campanha de e-mail draft. Apenas os campos fornecidos são alterados; o template é editado no local. Campanhas em qualquer outro estado não podem ser atualizadas.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a atualizar- Todos os outros parâmetros são opcionais e idênticos aos de
create-email-campaign(name,domain_id,from_local_part,from_display_name,reply_to,template_attributes,delivery_mode,delivery_options,contact_list_ids,contact_segment_ids)
delete-email-campaign
Exclui uma campanha de e-mail por ID. Apenas uma campanha no estado draft pode ser excluída.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a excluir
start-email-campaign
Inicia o envio de uma campanha de e-mail draft imediatamente. Apenas campanhas draft podem ser iniciadas; o template deve ter um design body_html e o público e o domínio de envio verificado devem estar definidos.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a iniciar
schedule-email-campaign
Agenda uma campanha de e-mail draft para começar a enviar em um momento futuro. Apenas campanhas draft podem ser agendadas.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a agendardatetime(obrigatório): Quando enviar a campanha (ISO 8601). Deve estar no futuro e no máximo 1 mês à frente
cancel-email-campaign
Cancela uma campanha de e-mail scheduled, retornando-a para draft. Apenas campanhas scheduled podem ser canceladas.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a cancelar
terminate-email-campaign
Encerra uma campanha de e-mail que está atualmente enviando (started, queued ou paused), abortando o envio em andamento.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a encerrar
reset-email-campaign
Redefine uma campanha de e-mail scheduled de volta para draft. Apenas campanhas scheduled podem ser redefinidas.
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mail a redefinir
get-email-campaign-stats
Obtém estatísticas de desempenho agregadas para uma campanha de e-mail (contagens e taxas de entregas, aberturas, cliques, rejeições, reclamações de spam e cancelamentos de inscrição).
Parâmetros:
email_campaign_id(obrigatório): ID da campanha de e-mailstart_date(opcional): Início da janela de agregação (inclusivo),YYYY-MM-DD. Padrão: o dia em que a campanha foi iniciada pela última vezend_date(opcional): Fim da janela de agregação (inclusivo),YYYY-MM-DD. Padrão: a data atual
list-accounts
Lista as contas Mailtrap que o token de API atual pode acessar, com os níveis de acesso de cada conta.
Parâmetros:
- Nenhum parâmetro obrigatório
get-billing-usage
Obtém o uso do ciclo de cobrança atual da conta: planos de envio e teste, limites e contagens atuais.
Parâmetros:
- Nenhum parâmetro obrigatório
list-account-accesses
Lista os acessos à conta (usuários, convites, tokens de API) da conta. Filtros opcionais restringem o resultado a recursos específicos. Requer permissões de administrador/proprietário da conta.
Parâmetros:
domain_uuids(opcional): Filtrar por UUIDs de domínios de envio (matriz de strings)inbox_ids(opcional): Filtrar por IDs de caixas de entrada de sandbox (matriz de strings)project_ids(opcional): Filtrar por IDs de projetos de sandbox (matriz de strings)
remove-account-access
Remove um acesso à conta por ID. Para especificadores User, isso revoga suas permissões; para especificadores Invite ou ApiToken, remove o especificador inteiramente. Requer administrador/proprietário.
Parâmetros:
account_access_id(obrigatório): ID do registro de acesso a remover
get-permission-resources
Obtém todos os recursos (caixas de entrada, projetos, domínios, cobrança, conta) aos quais o token de API tem acesso de administrador, aninhados por hierarquia.
Parâmetros:
- Nenhum parâmetro obrigatório
bulk-update-permissions
Cria, atualiza ou remove permissões em massa para um único acesso de conta. Pares (resource_type, resource_id) existentes são atualizados; novos são criados. Defina destroy: true em uma entrada para removê-la.
Parâmetros:
account_access_id(obrigatório): ID do acesso de conta de destinopermissions(obrigatório): Matriz de entradas de permissão. Cada uma possui:resource_id(obrigatório): ID do recurso (número ou string)resource_type(obrigatório): Um deaccount,project,inbox,domain,billingaccess_level(opcional):admin/100ouviewer/10destroy(opcional, booleano): Quando verdadeiro, remove esta permissão em vez de criá-la/atualizá-la
list-api-tokens
Lista todos os tokens de API da conta.
Parâmetros:
- Nenhum parâmetro necessário
create-api-token
Cria um novo token de API. A resposta inclui o valor secreto token — esta é a única vez que o token completo é retornado, então armazene-o imediatamente. Se você o perder, recrie o token.
Parâmetros:
name(obrigatório): Nome de exibição do tokenexpires_at(opcional): Expiração do token como data-hora ISO 8601. Omita para o padrão do servidor (1 ano); passe umnullexplícito para um token que nunca expira. Valores passados ou valores com mais de 5 anos à frente são rejeitadosresources(opcional): Matriz de permissões de recurso para escopar o token. Cada entrada possui:resource_type(obrigatório): Um deaccount,project,inbox,domain,billingresource_id(obrigatório): ID do recursoaccess_level(obrigatório):100(admin) ou10(visualizador)
get-api-token
Obtém um token de API por ID. Retorna apenas metadados — o valor secreto do token não é retornado aqui (apenas de create-api-token / reset-api-token).
Parâmetros:
api_token_id(obrigatório): ID do token de API
reset-api-token
Redefine (rotaciona) um token de API por ID. A resposta inclui o novo valor secreto token — retornado apenas nesta chamada, então armazene-o imediatamente. O token anterior é invalidado.
Parâmetros:
api_token_id(obrigatório): ID do token de API a ser redefinidoexpires_at(opcional): Expiração do novo token como data-hora ISO 8601. Omita para o padrão do servidor (1 ano); passe umnullexplícito para um token que nunca expira. Valores passados ou valores com mais de 5 anos à frente são rejeitados
delete-api-token
Exclui permanentemente um token de API por ID. O token não pode mais autenticar após a exclusão.
Parâmetros:
api_token_id(obrigatório): ID do token de API a ser excluído
list-sub-accounts
Lista subcontas na organização. Requer a variável de ambiente MAILTRAP_ORGANIZATION_ID e permissões de gerenciamento de subcontas.
Parâmetros:
- Nenhum parâmetro necessário
create-sub-account
Cria uma nova subconta sob a organização. Requer a variável de ambiente MAILTRAP_ORGANIZATION_ID e permissões de gerenciamento de subcontas.
Parâmetros:
name(obrigatório): Nome de exibição da nova subconta
list-inbound-folders
Lista todas as pastas de entrada na conta. Retorna um resumo formatado.
Parâmetros:
- Nenhum parâmetro necessário
get-inbound-folder
Obtém uma única pasta de entrada por ID. Retorna o registro completo da pasta como JSON.
Parâmetros:
folder_id(obrigatório): ID da pasta de entrada
create-inbound-folder
Cria uma nova pasta de entrada.
Parâmetros:
name(obrigatório): O nome da pasta
update-inbound-folder
Renomeia uma pasta de entrada.
Parâmetros:
folder_id(obrigatório): ID da pasta de entradaname(obrigatório): O novo nome da pasta
delete-inbound-folder
Exclui permanentemente uma pasta de entrada junto com todas as suas caixas de entrada.
Parâmetros:
folder_id(obrigatório): ID da pasta de entrada
list-inbound-inboxes
Lista todas as caixas de entrada em uma pasta de entrada. Retorna um resumo formatado.
Parâmetros:
folder_id(obrigatório): ID da pasta de entrada
get-inbound-inbox
Obtém uma única caixa de entrada por ID. Retorna o registro completo da caixa de entrada como JSON.
Parâmetros:
folder_id(obrigatório): ID da pasta de entradainbox_id(obrigatório): ID da caixa de entrada
create-inbound-inbox
Cria uma nova caixa de entrada em uma pasta.
Parâmetros:
folder_id(obrigatório): ID da pasta de entradaname(obrigatório): O nome da caixa de entradadomain_id(opcional): Anexar a um domínio de envio personalizado (caixa de entrada catch-all). Omita para uma caixa de entrada hospedada pela Mailtrap
update-inbound-inbox
Renomeia uma caixa de entrada.
Parâmetros:
folder_id(obrigatório): ID da pasta de entradainbox_id(obrigatório): ID da caixa de entradaname(obrigatório): O novo nome da caixa de entrada
delete-inbound-inbox
Exclui permanentemente uma caixa de entrada.
Parâmetros:
folder_id(obrigatório): ID da pasta de entradainbox_id(obrigatório): ID da caixa de entrada
list-inbound-messages
Lista mensagens recebidas em uma caixa de entrada (paginação por cursor). Retorna um resumo formatado com uma dica de próxima página quando houver mais resultados.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradalast_id(opcional): Cursor de paginação dolast_idde uma resposta anterior
get-inbound-message
Obtém uma única mensagem de entrada com seu corpo completo e URLs de download de anexos. Retorna o registro completo da mensagem como JSON.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradamessage_id(obrigatório): ID da mensagem
delete-inbound-message
Exclui permanentemente uma mensagem de entrada.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradamessage_id(obrigatório): ID da mensagem
reply-to-inbound-message
Responde a uma mensagem de entrada (envia para o remetente original). Envia um e-mail real. Endereços aceitam uma string de e-mail simples ou { email, name? }.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradamessage_id(obrigatório): ID da mensagem a ser respondidatext/html(pelo menos um recomendado): Corpo da respostafrom(opcional): Remetente. Rejeitado para caixas de entrada hospedadas pela Mailtrap; obrigatório para caixas de entrada com domínio personalizadocc/bcc/reply_to(opcional): Endereços adicionaiscategory(opcional): Categoria da mensagemattachments(opcional): Matriz de{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(opcional): Objetos de valores de string
reply-all-to-inbound-message
Responde a uma mensagem de entrada e copia os outros destinatários do original. Envia um e-mail real. Mesmos parâmetros de reply-to-inbound-message.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradamessage_id(obrigatório): ID da mensagem a ser respondida- Além dos mesmos campos opcionais de envio de
reply-to-inbound-message
forward-inbound-message
Encaminha uma mensagem de entrada para novos destinatários. Envia um e-mail real.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradamessage_id(obrigatório): ID da mensagem a ser encaminhadato(obrigatório): Pelo menos um destinatário (string de e-mail simples ou{ email, name? }, ou uma matriz)- Além dos mesmos campos opcionais de envio de
reply-to-inbound-message
list-inbound-threads
Lista threads de conversa em uma caixa de entrada (paginação por cursor). Retorna um resumo formatado com uma dica de próxima página quando houver mais resultados.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradalast_id(opcional): Cursor de paginação dolast_idde uma resposta anterior
get-inbound-thread
Obtém uma única thread de entrada com suas mensagens incorporadas (mais antigas primeiro). Retorna o registro completo da thread como JSON.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradathread_id(obrigatório): ID da thread
delete-inbound-thread
Exclui permanentemente uma thread de entrada.
Parâmetros:
inbox_id(obrigatório): ID da caixa de entradathread_id(obrigatório): ID da thread
Desenvolvimento
- Clone o repositório:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Instale as dependências:
npm install
Configuração com Claude Desktop ou Cursor
[!TIP] Veja a localização do arquivo de configuração na seção Setup.
Adicione a seguinte configuração:
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Se você estiver usando asdf para gerenciar Node.js, use o caminho absoluto para o executável:
(exemplo para Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] Veja a localização do arquivo de configuração na seção Setup.
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Testes
Executando ferramentas contra a Mailtrap real
Há duas maneiras de exercitar uma ferramenta de ponta a ponta contra uma conta Mailtrap real: a interface do navegador MCP Inspector para exploração interativa, ou seu modo CLI para chamadas únicas a partir do shell.
Ambas exigem que o bundle seja construído primeiro:
npm run build
e MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID exportados no seu shell (o script mcp:cli encaminha ambos para o servidor gerado).
Interface do navegador
npm run dev
O Inspector imprime uma URL como http://localhost:6274. Abra-a, mude para a aba Tools, escolha uma ferramenta (ex.: get-template), preencha os parâmetros como JSON e clique em Run. A resposta da Mailtrap aparece no painel abaixo.
CLI
Para chamadas únicas sem a interface, use npm run mcp:cli. Passe os flags CLI do Inspector após -- para que o npm os encaminhe literalmente:
# List all tools
npm run mcp:cli -- --method tools/list
# Call a tool — flags after the `--`
npm run mcp:cli -- \
--method tools/call \
--tool-name get-template \
--tool-arg template_id=12345
# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
--method tools/call \
--tool-name send-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg email=devops@example.com
Executando o Servidor MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Para desenvolvimento com o MCP Inspector:
npm run dev:mcpb
Tratamento de Erros
Este servidor usa tratamento de erros estruturado alinhado às convenções do MCP:
VALIDATION_ERROR: Falhas de validação de entradaCONFIGURATION_ERROR: Configuração ausente ou inválidaEXECUTION_ERROR: Erros de execução em tempo de execuçãoTIMEOUT: Tempo limite da operação (padrão de 30 segundos)
Erros incluem mensagens acionáveis e são registrados em formato estruturado.
Segurança
- Entrada validada via esquemas Zod
- Variáveis de ambiente tratadas com segurança
- Proteção de tempo limite em operações (30 segundos)
- Detalhes sensíveis sanitizados na saída de erros
Registro de Logs
Logs JSON estruturados com níveis: INFO, WARN, ERROR, DEBUG.
Ative o registro de depuração definindo DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Importante: O servidor escreve logs em stderr para que stdout permaneça reservado para quadros JSON-RPC. Isso evita que hosts encontrem erros de análise JSON devido a logs intercalados.
Exemplo de análise de logs usando jq:
# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'
# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'
Solução de Problemas
Problemas comuns:
- Token de API ausente: certifique-se de que
MAILTRAP_API_TOKENesteja definido - Sandbox não funcionando: forneça
test_inbox_idna chamada da ferramenta ou defina a envMAILTRAP_TEST_INBOX_ID - Erros de tempo limite: verifique a conectividade de rede e o status da API Mailtrap
- Erros de validação: certifique-se de que todos os campos obrigatórios sejam fornecidos
Contribuindo
Relatórios de bugs e pull requests são bem-vindos no GitHub. Este projeto pretende ser um espaço seguro e acolhedor para colaboração, e espera-se que os contribuidores sigam o código de conduta.
Licença
O pacote está disponível como código aberto sob os termos da Licença MIT.
Código de Conduta
Espera-se que todos que interagem nos codebases, rastreadores de problemas, salas de chat e listas de e-mail do projeto Mailtrap sigam o código de conduta.