Lettr MCP

MCP para a API de e-mail transacional Lettr

Documentação

Servidor Lettr MCP

O servidor oficial Model Context Protocol (MCP) para Lettr — a API de e-mail para desenvolvedores. Envie e-mails transacionais, gerencie templates com merge tags, configure domínios e monitore webhooks — diretamente de qualquer cliente MCP, como Claude Desktop, Cursor ou Claude Code.

Por que Lettr?

Lettr é uma plataforma moderna de envio de e-mails construída para desenvolvedores. Ela oferece uma API REST limpa, um editor de templates drag-and-drop poderoso, personalização com merge tags, rastreamento de aberturas e cliques e a melhor capacidade de entrega da categoria. Seja enviando redefinições de senha, confirmações de pedido ou sequências de onboarding, a Lettr torna tudo simples e confiável.

Recursos

  • Envio de E-mails — Envie e-mails transacionais com HTML, texto simples, CC/BCC, anexos, opções de rastreamento, metadados e tags. Suporta envio baseado em templates com substituição de merge tags, entrega agendada e inspeção de mensagens e eventos enviados.
  • Templates — Liste, crie, obtenha, atualize e exclua templates de e-mail, transacionais ou de campanha. Recupere o HTML renderizado e as merge tags para descobrir quais variáveis um template espera antes do envio.
  • Domínios — Liste, crie, obtenha, exclua e verifique domínios de envio. Visualize os registros DNS necessários para autenticação SPF, DKIM e DMARC.
  • Webhooks — Liste, crie, obtenha, atualize e exclua configurações de webhook para notificações de eventos de e-mail em tempo real.
  • Projetos — Liste os projetos disponíveis para sua equipe para que você possa direcionar as ferramentas de template e e-mail a um projeto específico.
  • Público — Gerencie contatos, listas, tópicos de assinatura, propriedades personalizadas e segmentos. Crie e atualize contatos (com double opt-in), anexe contatos a listas e tópicos, importe em massa e construa segmentos a partir de condições de correspondência.
  • Sistema — Verificação de integridade e validação de chave de API para configuração e diagnóstico do cliente.

Configuração

  1. Crie uma conta Lettr gratuita
  2. Crie uma chave de API no seu painel
  3. Verifique seu domínio para enviar e-mails a qualquer destinatário

Uso

Claude Code

claude mcp add lettr -e LETTR_API_KEY=lttr_xxxxxxxxx -- npx -y lettr-mcp

Cursor

Abra a paleta de comandos e escolha "Cursor Settings" > "MCP" > "Add new global MCP server".

{
  "mcpServers": {
    "lettr": {
      "command": "npx",
      "args": ["-y", "lettr-mcp"],
      "env": {
        "LETTR_API_KEY": "lttr_xxxxxxxxx"
      }
    }
  }
}

Claude Desktop

Abra as configurações do Claude Desktop > aba "Developer" > "Edit Config".

{
  "mcpServers": {
    "lettr": {
      "command": "npx",
      "args": ["-y", "lettr-mcp"],
      "env": {
        "LETTR_API_KEY": "lttr_xxxxxxxxx"
      }
    }
  }
}

Opções

Você pode passar argumentos adicionais para configurar o servidor:

  • --key: Sua chave de API Lettr (alternativa à variável de ambiente LETTR_API_KEY)
  • --sender: Endereço de e-mail do remetente padrão de um domínio verificado
  • --reply-to: Endereço de e-mail de resposta padrão

Variáveis de ambiente:

  • LETTR_API_KEY: Sua chave de API Lettr (obrigatória)
  • SENDER_EMAIL_ADDRESS: Endereço de e-mail do remetente padrão de um domínio verificado (opcional)
  • REPLY_TO_EMAIL_ADDRESS: Endereço de e-mail de resposta padrão (opcional)

Nota: Se você não fornecer um endereço de e-mail do remetente, o servidor MCP solicitará um sempre que você enviar um e-mail.

Ferramentas Disponíveis

E-mails

FerramentaDescrição
send-emailEnvie um e-mail transacional com HTML, texto simples, templates, anexos, rastreamento e personalização
list-emailsListe e-mails enviados recentemente (paginação por cursor, com filtros de destinatário e data)
list-email-eventsListe eventos de e-mail (entrega, bounce, clique, abertura, …) com filtros por tipo, destinatário, transmissão e intervalo de datas
get-email-detailRecupere a linha do tempo completa de entrega de uma única transmissão por ID de solicitação
schedule-emailAgende um e-mail transacional para entrega futura (5+ minutos à frente, dentro de 30 dias)
list-scheduled-emailsListe e-mails aguardando envio, com um filtro de estado
get-scheduled-emailObtenha o estado e os eventos de um e-mail agendado
cancel-scheduled-emailCancele um e-mail agendado antes do envio

Templates

FerramentaDescrição
list-templatesListe templates de e-mail, filtráveis por finalidade e pasta
get-templateObtenha detalhes completos do template, incluindo conteúdo HTML
create-templateCrie um novo template com HTML ou JSON do editor visual, transacional ou de campanha
update-templateAtualize o nome e/ou conteúdo do template (cria nova versão)
delete-templateExclua permanentemente um template e todas as versões
get-merge-tagsDescubra as variáveis de merge tag que um template espera
get-template-htmlRecupere o HTML renderizado, o assunto e as merge tags de um template por ID de projeto e slug

Finalidade do template. Um template é transactional (o padrão — recibos, redefinições de senha, alertas) ou campaign (marketing enviado a uma lista de público). Uma campanha só pode enviar um template cuja finalidade seja campaign, e a finalidade não pode ser alterada após a criação, então um boletim informativo criado com o padrão precisa ser reconstruído. Passe purpose para create-template sempre que a mensagem for para um público em vez de uma única pessoa.

Status de preparação. Templates importados são renderizados de forma assíncrona, então um template pode existir antes de estar pronto para envio. list-templates e get-template relatam pending, ready ou failed. Após uma atualização, a renderização anterior continua servindo até que a nova seja concluída, então um template pendente ainda envia — apenas ainda não o novo conteúdo.

Pastas

FerramentaDescrição
list-foldersListe as pastas onde os templates são arquivados, com finalidade e contagem de templates

As pastas são a única maneira de descobrir um folder_id. Sem esta ferramenta, a escolha é omitir folder_id e aceitar a pasta que a API escolher, ou adivinhar um inteiro lido de uma URL do aplicativo. A finalidade de uma pasta é independente da de seus templates — arquivar um template em uma pasta de campanha não o torna um template de campanha.

Domínios

FerramentaDescrição
list-domainsListe todos os domínios de envio e seu status de verificação
create-domainRegistre um novo domínio de envio
get-domainObtenha detalhes do domínio com registros DNS
delete-domainRemova um domínio de envio
verify-domainAcione a verificação DNS para um domínio

Webhooks

FerramentaDescrição
list-webhooksListe todas as configurações de webhook
get-webhookObtenha detalhes do webhook e status de entrega
create-webhookCrie uma nova assinatura de webhook com autenticação e seleção de tipo de evento
update-webhookAtualize um webhook existente (nome, URL, autenticação, eventos, flag ativo)
delete-webhookExclua uma assinatura de webhook

Projetos

FerramentaDescrição
list-projectsListe projetos pertencentes à equipe — útil para descobrir IDs de projeto

Público

FerramentaDescrição
list-audience-listsListe listas de público (contatos) com paginação
create-audience-listCrie uma nova lista de público
get-audience-listObtenha uma única lista e sua contagem de contatos
update-audience-listRenomeie uma lista de público
delete-audience-listExclua uma lista de público
bulk-delete-audience-listsExclua até 50 listas em uma única chamada
list-audience-contactsListe contatos com filtros de busca, status, lista e segmento
get-audience-contactObtenha um contato com suas propriedades, listas e tópicos
create-audience-contactCrie um contato, opcionalmente com double opt-in
bulk-create-audience-contactsCrie muitos contatos, seja a partir de uma lista simples de e-mails ou uma linha por contato
update-audience-contactAtualize o e-mail, status ou propriedades de um contato
delete-audience-contactExclua um contato
attach-contact-to-listAdicione um contato a uma lista
detach-contact-from-listRemova um contato de uma lista
subscribe-contact-to-topicInscreva um contato em um tópico
unsubscribe-contact-from-topicCancele a inscrição de um contato em um tópico
bulk-attach-contacts-to-listsAnexe muitos contatos a muitas listas de uma vez
bulk-detach-contacts-from-listsDesanexe muitos contatos de muitas listas de uma vez
bulk-subscribe-contacts-to-topicsInscreva muitos contatos em muitos tópicos de uma vez
bulk-unsubscribe-contacts-from-topicsCancele a inscrição de muitos contatos em muitos tópicos de uma vez
list-audience-topicsListe tópicos de assinatura com paginação
create-audience-topicCrie um tópico de assinatura
get-audience-topicObtenha um único tópico
update-audience-topicAtualize o nome, descrição ou visibilidade de um tópico
delete-audience-topicExclua um tópico de assinatura
list-audience-propertiesListe propriedades personalizadas de contato
create-audience-propertyDefina uma nova propriedade personalizada
get-audience-propertyObtenha uma única propriedade
update-audience-propertyAtualize o valor de fallback de uma propriedade
delete-audience-propertyExclua uma propriedade personalizada
list-audience-segmentsListe segmentos, opcionalmente filtrados por lista
create-audience-segmentCrie um segmento a partir de condições de correspondência
get-audience-segmentObtenha um único segmento e suas condições
update-audience-segmentAtualize o nome, lista ou condições de um segmento
delete-audience-segmentExclua um segmento

Sistema

FerramentaDescrição
health-checkVerifique o status de integridade da API Lettr
auth-checkValide a chave de API configurada e retorne o ID da equipe

Desenvolvimento Local

  1. Clone e compile:
git clone https://github.com/nicholasgriffintn/lettr-mcp.git
cd lettr-mcp
pnpm install
pnpm run build
  1. Use a compilação local no seu cliente MCP:
{
  "mcpServers": {
    "lettr": {
      "command": "node",
      "args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"],
      "env": {
        "LETTR_API_KEY": "lttr_xxxxxxxxx"
      }
    }
  }
}

Testando com o MCP Inspector

Certifique-se de ter compilado o projeto primeiro (veja Desenvolvimento Local acima).

  1. Defina sua chave de API:

    export LETTR_API_KEY=lttr_your_key_here
    
  2. Inicie o inspector:

    pnpm inspector
    
  3. No navegador (Interface do Inspector):

    • Escolha stdio (iniciar um processo).
    • Comando: node
    • Argumentos: dist/index.js
    • Ambiente: LETTR_API_KEY=lttr_your_key_here
    • Clique em Conectar e use "List tools" para verificar se o servidor está funcionando.

Recursos

Licença

MIT