Skip to main content
The 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:

Setup

Run the following command to add Lettr as an MCP server:
claude mcp add lettr -e LETTR_API_KEY=lttr_xxxxxxxxx -- npx -y lettr-mcp
Claude Code will automatically start the server when needed.
Replace lttr_xxxxxxxxx with your actual API key.

Configuration Options

You can pass additional arguments to configure default behavior:
npx -y lettr-mcp --sender hello@mycompany.com --reply-to support@mycompany.com
OptionEnvironment VariableDescription
--keyLETTR_API_KEYYour Lettr API key (required)
--senderSENDER_EMAIL_ADDRESSDefault sender email address from a verified domain
--reply-toREPLY_TO_EMAIL_ADDRESSDefault reply-to email address
Setting a default sender address avoids the MCP server asking for one each time you send an email. Use an address from a verified sending domain.
For example, in Cursor with all options configured:
{
  "mcpServers": {
    "lettr": {
      "command": "npx",
      "args": ["-y", "lettr-mcp", "--sender", "hello@mycompany.com", "--reply-to", "support@mycompany.com"],
      "env": {
        "LETTR_API_KEY": "lttr_xxxxxxxxx"
      }
    }
  }
}

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

ToolDescription
send-emailSend a transactional email with HTML, plain text, templates, attachments, tracking, and personalization

Templates

ToolDescription
list-templatesList email templates with pagination
get-templateGet full template details including HTML content
create-templateCreate a new template with HTML or visual editor JSON
update-templateUpdate template name and/or content (creates new version)
delete-templatePermanently delete a template and all versions
get-merge-tagsDiscover merge tag variables a template expects

Domains

ToolDescription
list-domainsList all sending domains and their verification status
create-domainRegister a new sending domain
get-domainGet domain details with DNS records
delete-domainRemove a sending domain
verify-domainTrigger DNS verification for a domain

Webhooks

ToolDescription
list-webhooksList all webhook configurations
get-webhookGet webhook details and delivery status
For detailed parameter documentation, see the Tools Reference.

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
Never commit API keys to version control. Use environment variables or your AI client’s secure configuration to store the key.

Source Code

The local MCP server is open source and available on GitHub: lettr-com/lettr-mcp.

Learn More