lettr-mcp npm package runs an MCP server on your machine, giving AI coding assistants access to your Lettr email infrastructure. It authenticates with an API key and communicates over stdio — ideal for developer workflows in Claude Code, Cursor, and Claude Desktop.
Looking for the hosted MCP server that uses OAuth? See Remote Server Setup.
Prerequisites
Before setting up the local MCP server, you’ll need:- Node.js installed on your machine
- A Lettr API key — create one in your dashboard or see API Keys
- At least one verified sending domain to send emails
Setup
- Claude Code
- Cursor
- Claude Desktop
Run the following command to add Lettr as an MCP server:Claude Code will automatically start the server when needed.
lttr_xxxxxxxxx with your actual API key.
Configuration Options
You can pass additional arguments to configure default behavior:| Option | Environment Variable | Description |
|---|---|---|
--key | LETTR_API_KEY | Your Lettr API key (required) |
--sender | SENDER_EMAIL_ADDRESS | Default sender email address from a verified domain |
--reply-to | REPLY_TO_EMAIL_ADDRESS | Default reply-to email address |
Verifying the Connection
After setup, ask your AI assistant a simple question to verify the connection:“List my sending domains”The AI should respond with your verified sending domains. If you see domain information, the server is running correctly.
Available Tools
The local MCP server provides 14 tools for managing your email infrastructure:Emails
| Tool | Description |
|---|---|
send-email | Send a transactional email with HTML, plain text, templates, attachments, tracking, and personalization |
Templates
| Tool | Description |
|---|---|
list-templates | List email templates with pagination |
get-template | Get full template details including HTML content |
create-template | Create a new template with HTML or visual editor JSON |
update-template | Update template name and/or content (creates new version) |
delete-template | Permanently delete a template and all versions |
get-merge-tags | Discover merge tag variables a template expects |
Domains
| Tool | Description |
|---|---|
list-domains | List all sending domains and their verification status |
create-domain | Register a new sending domain |
get-domain | Get domain details with DNS records |
delete-domain | Remove a sending domain |
verify-domain | Trigger DNS verification for a domain |
Webhooks
| Tool | Description |
|---|---|
list-webhooks | List all webhook configurations |
get-webhook | Get webhook details and delivery status |
Example Workflows
Sending an Email from Your IDE
“Send an email to john@example.com from hello@mycompany.com with the subject ‘Deployment Complete’ and let them know the release went live”
Working with Templates
“List my templates and show me the merge tags for the ‘welcome-email’ template”
“Create a new template called ‘Password Reset’ in folder 1 with a basic HTML layout”
Managing Domains
“Add the domain notifications.example.com and show me the DNS records I need to set up”
“Verify the DNS records for notifications.example.com”
Inspecting Webhooks
“List my webhook configurations and show me the details for the first one”
Security
- API key storage — Your API key stays in your local environment configuration and is never transmitted to third parties
- Restricted keys — Use API key permissions to limit what the MCP server can do (e.g., sending only, no domain management)
- No network exposure — The server communicates via stdio, not over the network
Source Code
The local MCP server is open source and available on GitHub: lettr-com/lettr-mcp.Learn More
Remote Server Setup
Connect via OAuth from Claude.ai and ChatGPT
Tools Reference
Full reference for all MCP tools
API Keys
Create and manage API keys
Sending Domains
Set up domains for sending emails