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.
- Referência da API — Documentação completa da API REST
- Templates — Editor visual de e-mails com merge tags
- Domínios — Verificação de domínio e configuração de DNS
- Webhooks — Notificações de eventos em tempo real
- Guias de início rápido — Node.js, PHP, Laravel, Python, Go, Rust e mais
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
- Crie uma conta Lettr gratuita
- Crie uma chave de API no seu painel
- 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 ambienteLETTR_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
| Ferramenta | Descrição |
|---|---|
send-email | Envie um e-mail transacional com HTML, texto simples, templates, anexos, rastreamento e personalização |
list-emails | Liste e-mails enviados recentemente (paginação por cursor, com filtros de destinatário e data) |
list-email-events | Liste eventos de e-mail (entrega, bounce, clique, abertura, …) com filtros por tipo, destinatário, transmissão e intervalo de datas |
get-email-detail | Recupere a linha do tempo completa de entrega de uma única transmissão por ID de solicitação |
schedule-email | Agende um e-mail transacional para entrega futura (5+ minutos à frente, dentro de 30 dias) |
list-scheduled-emails | Liste e-mails aguardando envio, com um filtro de estado |
get-scheduled-email | Obtenha o estado e os eventos de um e-mail agendado |
cancel-scheduled-email | Cancele um e-mail agendado antes do envio |
Templates
| Ferramenta | Descrição |
|---|---|
list-templates | Liste templates de e-mail, filtráveis por finalidade e pasta |
get-template | Obtenha detalhes completos do template, incluindo conteúdo HTML |
create-template | Crie um novo template com HTML ou JSON do editor visual, transacional ou de campanha |
update-template | Atualize o nome e/ou conteúdo do template (cria nova versão) |
delete-template | Exclua permanentemente um template e todas as versões |
get-merge-tags | Descubra as variáveis de merge tag que um template espera |
get-template-html | Recupere 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
| Ferramenta | Descrição |
|---|---|
list-folders | Liste 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
| Ferramenta | Descrição |
|---|---|
list-domains | Liste todos os domínios de envio e seu status de verificação |
create-domain | Registre um novo domínio de envio |
get-domain | Obtenha detalhes do domínio com registros DNS |
delete-domain | Remova um domínio de envio |
verify-domain | Acione a verificação DNS para um domínio |
Webhooks
| Ferramenta | Descrição |
|---|---|
list-webhooks | Liste todas as configurações de webhook |
get-webhook | Obtenha detalhes do webhook e status de entrega |
create-webhook | Crie uma nova assinatura de webhook com autenticação e seleção de tipo de evento |
update-webhook | Atualize um webhook existente (nome, URL, autenticação, eventos, flag ativo) |
delete-webhook | Exclua uma assinatura de webhook |
Projetos
| Ferramenta | Descrição |
|---|---|
list-projects | Liste projetos pertencentes à equipe — útil para descobrir IDs de projeto |
Público
| Ferramenta | Descrição |
|---|---|
list-audience-lists | Liste listas de público (contatos) com paginação |
create-audience-list | Crie uma nova lista de público |
get-audience-list | Obtenha uma única lista e sua contagem de contatos |
update-audience-list | Renomeie uma lista de público |
delete-audience-list | Exclua uma lista de público |
bulk-delete-audience-lists | Exclua até 50 listas em uma única chamada |
list-audience-contacts | Liste contatos com filtros de busca, status, lista e segmento |
get-audience-contact | Obtenha um contato com suas propriedades, listas e tópicos |
create-audience-contact | Crie um contato, opcionalmente com double opt-in |
bulk-create-audience-contacts | Crie muitos contatos, seja a partir de uma lista simples de e-mails ou uma linha por contato |
update-audience-contact | Atualize o e-mail, status ou propriedades de um contato |
delete-audience-contact | Exclua um contato |
attach-contact-to-list | Adicione um contato a uma lista |
detach-contact-from-list | Remova um contato de uma lista |
subscribe-contact-to-topic | Inscreva um contato em um tópico |
unsubscribe-contact-from-topic | Cancele a inscrição de um contato em um tópico |
bulk-attach-contacts-to-lists | Anexe muitos contatos a muitas listas de uma vez |
bulk-detach-contacts-from-lists | Desanexe muitos contatos de muitas listas de uma vez |
bulk-subscribe-contacts-to-topics | Inscreva muitos contatos em muitos tópicos de uma vez |
bulk-unsubscribe-contacts-from-topics | Cancele a inscrição de muitos contatos em muitos tópicos de uma vez |
list-audience-topics | Liste tópicos de assinatura com paginação |
create-audience-topic | Crie um tópico de assinatura |
get-audience-topic | Obtenha um único tópico |
update-audience-topic | Atualize o nome, descrição ou visibilidade de um tópico |
delete-audience-topic | Exclua um tópico de assinatura |
list-audience-properties | Liste propriedades personalizadas de contato |
create-audience-property | Defina uma nova propriedade personalizada |
get-audience-property | Obtenha uma única propriedade |
update-audience-property | Atualize o valor de fallback de uma propriedade |
delete-audience-property | Exclua uma propriedade personalizada |
list-audience-segments | Liste segmentos, opcionalmente filtrados por lista |
create-audience-segment | Crie um segmento a partir de condições de correspondência |
get-audience-segment | Obtenha um único segmento e suas condições |
update-audience-segment | Atualize o nome, lista ou condições de um segmento |
delete-audience-segment | Exclua um segmento |
Sistema
| Ferramenta | Descrição |
|---|---|
health-check | Verifique o status de integridade da API Lettr |
auth-check | Valide a chave de API configurada e retorne o ID da equipe |
Desenvolvimento Local
- Clone e compile:
git clone https://github.com/nicholasgriffintn/lettr-mcp.git
cd lettr-mcp
pnpm install
pnpm run build
- 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).
-
Defina sua chave de API:
export LETTR_API_KEY=lttr_your_key_here -
Inicie o inspector:
pnpm inspector -
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
- Site da Lettr
- Documentação da API
- Guia de Configuração do MCP
- Referência de Ferramentas do MCP
- Linguagem de Templates
- Guias de Configuração de DNS
- Base de Conhecimento
Licença
MIT