Mailinator MCP Server

E-mail descartável gratuito para IA—verifique qualquer caixa de entrada @mailinator.com, recupere mensagens em múltiplos formatos e extraia códigos de verificação para fluxos de trabalho automatizados.

Documentação

Mailinator-CLI (e servidor MCP)

Uma ferramenta CLI em Node.js e servidor MCP (Model Context Protocol) para interagir com o serviço de e-mail descartável Mailinator. Liste e-mails em qualquer caixa de entrada e recupere mensagens individuais em vários formatos, seja pela linha de comando ou por assistentes de IA como o Claude Desktop.

Recursos

Recursos da CLI

  • 📬 Liste e-mails em qualquer caixa de entrada do Mailinator com tabela numerada e legível
  • 📧 Recupere e-mails individuais por ID da mensagem ou número da listagem
  • 🔒 Suporte para domínios públicos e privados
  • 🎨 Múltiplos formatos de saída (texto, HTML, cabeçalhos, links, JSON, etc.)
  • ⚡ Cache rápido de caixa de entrada para recuperação rápida de e-mails
  • 🔑 Configuração flexível de token de API (variável de ambiente ou arquivo de configuração)
  • 🌐 Pesquisas de caixa de entrada com curinga (com token de API)

Recursos do servidor MCP

  • 🤖 Modo servidor MCP para integração com assistentes de IA (Claude Desktop, etc.)
  • 🛠️ Ferramentas: list_inbox e get_email para operações ativas de e-mail
  • 📚 Recursos: Acesso somente leitura via URIs mailinator:// para contexto passivo
  • 🔌 Servidor baseado em HTTP com host/porta configuráveis
  • 🔄 Mesma funcionalidade da CLI, mas acessível via protocolo MCP

Instalação

Instalação Global (Recomendado)

npm install -g mailinator-cli

NPX (Sem Instalação Necessária)

npx mailinator-cli inbox test public

Desenvolvimento Local

git clone <repository-url>
cd mailinator-cli
npm install
npm link

Configuração

Token de API (Opcional para Domínio Público)

O Mailinator permite acesso público ao domínio "public" sem autenticação. Para acessar domínios privados ou usar recursos avançados (logs SMTP, curingas, etc.), você precisará de um token de API.

Obtenha seu token de API em: Configurações de API do Mailinator

Opção 1: Variável de Ambiente

export MAILINATOR_API_KEY=your_api_token_here

Ou crie um arquivo .env:

MAILINATOR_API_KEY=your_api_token_here

Ao executar mailinator-cli, o .env é carregado automaticamente do seu diretório de trabalho atual.

Opção 2: Arquivo de Configuração

Crie ~/.config/mailinator/config.json:

{
  "apiKey": "your_api_token_here"
}

Prioridade: Variável de ambiente > Arquivo de configuração > Nenhum (somente domínio público)

Uso da CLI

Opções Globais

Estas opções podem ser usadas com qualquer comando:

  • -v, --verbose - Mostra informações detalhadas de requisição/resposta HTTP
  • -V, --version - Exibe o número da versão
  • -h, --help - Exibe ajuda para o comando
  • --start-mcp-server - Inicia o modo servidor MCP em vez da CLI
  • --host <address> - Host do servidor MCP (somente com --start-mcp-server), padrão: 127.0.0.1
  • --port <number> - Porta do servidor MCP (somente com --start-mcp-server), padrão: 8080

Modo Verboso:

Ative o modo verboso para ver todas as chamadas HTTP com URLs e respostas JSON. Útil para depuração ou compreensão das interações com a API.

# Show detailed HTTP information
mailinator-cli --verbose inbox testuser public
mailinator-cli -v email 1 summary

Comando Inbox

Lista todos os e-mails em uma caixa de entrada.

mailinator-cli [options] inbox <inbox_name> [domain]

Argumentos:

  • inbox_name (obrigatório): A caixa de entrada/e-mail a consultar
  • domain (opcional): Domínio a usar. Padrão:
    • "private" se o token de API estiver configurado
    • "public" se não houver token de API

Exemplos:

# List emails in the public domain (no token required)
mailinator-cli inbox testuser public

# List emails in private domain (requires API token)
mailinator-cli inbox myinbox private

# Auto-detect domain based on token configuration
mailinator-cli inbox myinbox

# Use custom domain
mailinator-cli inbox support mycustomdomain.com

# Wildcard search (requires API token and private domain)
mailinator-cli inbox test* private

# Show verbose HTTP information
mailinator-cli --verbose inbox testuser public

Saída:

Inbox: testuser@public

┌─────┬────────────────────────────────┬──────────────────────────────────────────────────┬────────────────────┐
│ #   │ From                           │ Subject                                          │ Time               │
├─────┼────────────────────────────────┼──────────────────────────────────────────────────┼────────────────────┤
│ 1   │ noreply@example.com            │ Welcome to our service                           │ 21 mins ago        │
│ 2   │ notifications@github.com       │ [GitHub] Password reset request                  │ 2 hours ago        │
│ 3   │ support@company.com            │ Your order confirmation                          │ 5 hours ago        │
└─────┴────────────────────────────────┴──────────────────────────────────────────────────┴────────────────────┘

Total: 3 emails

Comando Email

Recupera e exibe um e-mail específico.

mailinator-cli [options] email <message_id|listing_number> [format]

Argumentos:

  • message_id|listing_number (obrigatório): Um dos seguintes:
    • Um número de listagem do comando inbox (ex.: 1, 2, 3)
    • Um ID completo da mensagem (ex.: testuser-1234567890-abcdef)
  • format (opcional): Formato de saída. Padrão: text

Formatos Disponíveis:

  • summary - Pares chave-valor (assunto, de, para, domínio, hora, id)
  • text - Conteúdo em texto simples com cabeçalhos (padrão)
  • textplain - Somente parte em texto simples
  • texthtml - Somente parte em HTML
  • full - Dados completos do e-mail como JSON formatado
  • raw - Dados brutos do e-mail como JSON
  • headers - Cabeçalhos do e-mail como tabela
  • smtplog - Linha do tempo do log de entrega SMTP (requer token de API)
  • links - Lista numerada de links encontrados no e-mail
  • linksfull - Tabela com texto do link e URLs

Exemplos:

# Retrieve email by listing number (from inbox command)
mailinator-cli email 1

# Retrieve with specific format
mailinator-cli email 1 summary
mailinator-cli email 1 headers
mailinator-cli email 1 texthtml

# Retrieve by full message ID
mailinator-cli email testuser-1234567890-abcdef text

# Extract all links from email
mailinator-cli email 1 links

# View SMTP delivery log (requires API token)
mailinator-cli email 1 smtplog

# View full email data
mailinator-cli email 1 full

# Show verbose HTTP information
mailinator-cli --verbose email 1 full

Exemplo de Saída (formato texto):

From: noreply@example.com
Subject: Welcome to our service
Time: Feb 12, 2026 14:30:15

────────────────────────────────────────────────────────────────────────────────

Hello and welcome!

Thank you for signing up for our service. We're excited to have you on board.

To get started, please verify your email address by clicking the link below:
https://example.com/verify?token=abc123

Best regards,
The Team

Uso do Servidor MCP

O modo servidor MCP (Model Context Protocol) permite que assistentes de IA como o Claude Desktop acessem a funcionalidade do Mailinator programaticamente.

Iniciando o Servidor MCP

# Start on default port (127.0.0.1:8080)
mailinator-cli --start-mcp-server

# Start on custom host and port
mailinator-cli --start-mcp-server --host=0.0.0.0 --port=3000

# With API token for authenticated features
export MAILINATOR_API_KEY=your_token_here
mailinator-cli --start-mcp-server

Configurando o Claude Desktop

Adicione à configuração MCP do seu Claude Desktop (normalmente em ~/Library/Application Support/Claude/claude_desktop_config.json no macOS):

Opção 1: Deixe o Claude Desktop Iniciar o Servidor

{
  "mcpServers": {
    "mailinator": {
      "command": "node",
      "args": ["/absolute/path/to/mailinator-cli/bin/index.js", "--start-mcp-server"],
      "env": {
        "MAILINATOR_API_KEY": "your_token_here"
      }
    }
  }
}

Opção 2: Conectar ao Servidor em Execução

{
  "mcpServers": {
    "mailinator": {
      "url": "http://127.0.0.1:8080/mcp"
    }
  }
}

Ferramentas MCP

O servidor fornece duas ferramentas que os assistentes de IA podem invocar:

list_inbox

Lista todos os e-mails em uma caixa de entrada do Mailinator.

Parâmetros:

  • inbox_name (obrigatório): Nome da caixa de entrada a consultar
  • domain (opcional): Domínio (público, privado ou personalizado)

Exemplos de prompts para o Claude:

  • "Liste os e-mails na caixa de entrada joe"
  • "Quais e-mails estão em testuser@public"
  • "Mostre-me todos os e-mails em myinbox"

get_email

Recupera um e-mail específico com formato opcional.

Parâmetros:

  • message_id (obrigatório): ID da mensagem dos resultados de list_inbox
  • domain (opcional): Domínio (detectado automaticamente do cache se não fornecido)
  • format (opcional): Formato de saída (texto, resumo, completo, smtplog, etc.)

Exemplos de prompts para o Claude:

  • "Busque aquele primeiro e-mail"
  • "Mostre-me o e-mail 3 em formato de resumo"
  • "Obtenha o log SMTP para essa mensagem"

Recursos MCP

O servidor também expõe recursos que podem ser lidos via URIs:

  • mailinator://inbox/{domain}/{inbox_name} - Ler listagem da caixa de entrada
  • mailinator://email/{domain}/{message_id} - Ler conteúdo do e-mail

Diferença entre Ferramentas e Recursos:

  • Ferramentas são operações ativas que a IA invoca com base nas solicitações do usuário
  • Recursos são dados passivos que a IA pode referenciar como contexto

Ambos fornecem a mesma funcionalidade subjacente, mas através de diferentes interfaces MCP.

Endpoints do Servidor MCP

Ao executar no modo servidor MCP:

  • Endpoint MCP: POST http://127.0.0.1:8080/mcp (ou seu host:porta personalizado)
  • Verificação de Saúde: GET http://127.0.0.1:8080/health

O servidor implementa o protocolo de transporte HTTP Streamable do MCP.

Cache de Caixa de Entrada

O comando inbox armazena em cache a lista de e-mails em ~/.config/mailinator/inbox-cache.json. Isso permite que você:

  1. Recupere rapidamente e-mails pelo número de listagem (1, 2, 3, etc.)
  2. Evite executar novamente o comando inbox para cada recuperação de e-mail
  3. Detecte automaticamente o domínio para recuperação de e-mail no modo MCP

O cache persiste entre invocações da CLI até que você execute o comando inbox novamente.

Regras de Validação

Nomes de Caixa de Entrada

  • Máximo de 50 caracteres
  • Caracteres alfanuméricos e pontos (.)
  • Não pode começar ou terminar com ponto
  • Padrão: [a-zA-Z0-9]([a-zA-Z0-9.]*[a-zA-Z0-9])?

Curingas

  • Requer token de API
  • Permitido apenas em domínios privados (não públicos)
  • Formatos: * (todas as caixas de entrada) ou prefix* (caixas de entrada começando com prefixo)
  • Apenas um curinga no final

Domínios

  • Valores especiais: public, private
  • Domínios personalizados: Formato válido de nome de domínio

Tratamento de Erros

A CLI fornece mensagens de erro claras para problemas comuns:

  • Erro de Validação: Entrada inválida (nome da caixa de entrada, domínio, formato)
  • Erro de API: Falhas de autenticação, problemas de rede, erros de API
  • Erro de Cache: Nenhuma caixa de entrada em cache (execute o comando inbox primeiro)
  • Erro de Configuração: Problemas no arquivo de configuração (avisos não fatais)

Códigos de saída:

  • 0 - Sucesso ou aviso de configuração
  • 1 - Erro de validação
  • 2 - Erro de API
  • 3 - Erro de cache

Exemplos

Fluxos de Trabalho Comuns

Verifique e-mails de uma conta de teste:

# List emails
mailinator-cli inbox testuser public

# Read the first email
mailinator-cli email 1

# View headers of second email
mailinator-cli email 2 headers

Use com domínio privado:

# Configure API token
export MAILINATOR_API_KEY=your_token_here

# List private inbox
mailinator-cli inbox myinbox

# Read email with summary
mailinator-cli email 1 summary

# View SMTP delivery log
mailinator-cli email 1 smtplog

Extraia links de um e-mail:

mailinator-cli inbox newsletter public
mailinator-cli email 1 links

Pesquise em múltiplas caixas de entrada:

# Requires API token
mailinator-cli inbox test* private

Use como servidor MCP com Claude Desktop:

# Start the server
export MAILINATOR_API_KEY=your_token_here
mailinator-cli --start-mcp-server

# In Claude Desktop, ask:
# "What emails are in the joe inbox?"
# "Show me that first email in summary format"
# "Get the SMTP log for that message"

Requisitos

  • Node.js >= 18.0.0
  • Conexão com a internet (para acessar a API do Mailinator)

Endpoints da API

Esta ferramenta usa a API v3 da CLI do Mailinator:

  • Inbox: GET https://api.mailinator.com/cli/v3/domains/{domain}/inboxes/{inbox_name}
  • Email: GET https://api.mailinator.com/cli/v3/domains/{domain}/messages/{message_id}?format={format}
  • Log SMTP: GET https://api.mailinator.com/cli/v3/domains/{domain}/messages/{message_id}/smtplog

Nota: O formato smtplog usa um caminho de endpoint separado, não um parâmetro de consulta de formato.

Licença

MIT

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Solução de Problemas

Erro "Falha na autenticação"

  • Verifique se o seu token de API está correto
  • Verifique se o token está configurado corretamente na variável de ambiente ou no arquivo de configuração

Erro "Nenhuma caixa de entrada em cache encontrada"

  • Execute o comando inbox primeiro para popular o cache
  • O cache é armazenado em ~/.config/mailinator/inbox-cache.json

Erro "Pesquisas com curinga requerem um token de API"

  • Pesquisas com curinga (* ou prefix*) requerem autenticação
  • Configure seu token de API usando variável de ambiente ou arquivo de configuração

Erro "Acesso negado"

  • Você pode estar tentando acessar um domínio privado sem token de API
  • Algumas operações requerem autenticação mesmo no domínio público

Mensagem "(Nenhum log SMTP disponível)"

  • Logs SMTP podem exigir um token de API
  • Logs SMTP podem não estar disponíveis para todos os e-mails
  • Certifique-se de estar solicitando o formato smtplog corretamente

Problemas com o Servidor MCP

Ferramentas/Recursos não aparecendo no Claude Desktop:

  • Reinicie o Claude Desktop completamente (não apenas reconecte)
  • Verifique se o caminho da configuração MCP está correto
  • Verifique os logs do servidor para erros
  • Certifique-se de que o servidor está em execução: curl http://127.0.0.1:8080/health

Erros de "união inválida" ou JSON-RPC:

  • Certifique-se de estar usando a versão mais recente da CLI
  • Verifique se o servidor foi iniciado com sucesso
  • Verifique se o token de API está configurado ao acessar recursos privados

Porta já em uso:

  • Outra instância pode estar em execução: pkill -f "node.*start-mcp-server"
  • Ou use uma porta diferente: --port=8765

Suporte

Para problemas relacionados à própria API do Mailinator, visite: Suporte Mailinator

Para problemas com a ferramenta CLI, abra uma issue no repositório.

Links Relacionados