This reference documents every tool available through Lettr’s MCP servers. Some tools are available on both the remote and local servers, while others are exclusive to one.
The remote server uses underscores in tool names (e.g., send_email) while the local server uses hyphens (e.g., send-email). The functionality is equivalent.
Category Tool Remote Local Sending send_email Yes Yes Sending send_template_email Yes — Templates list_templates Yes Yes Templates get_template Yes Yes Templates create_template Yes Yes Templates update_template Yes Yes Templates delete_template — Yes Templates get_merge_tags — Yes Domains list_sending_domains / list_domains Yes Yes Domains list_tracking_domains Yes — Domains list_inbound_domains Yes — Domains list_storage_domains Yes — Domains create_domain — Yes Domains get_domain — Yes Domains delete_domain — Yes Domains verify_domain — Yes Configuration list_api_keys Yes — Configuration list_webhooks Yes Yes Configuration get_webhook — Yes Analytics get_analytics Yes — Analytics list_template_stats Yes — Monitoring browse_email_events Yes — Monitoring browse_api_logs Yes —
Email Sending
send_email
Send an email with plain text, HTML, or AMP HTML content. Supports merge tags for variable substitution.
Available on: Remote, Local
Parameter Type Required Description fromstring Yes Sender email address. Must be from a verified sending domain. tostring Yes Recipient email address. subjectstring Yes Email subject line (max 998 characters). htmlstring No HTML content. Supports merge tags like {{variable_name}}. textstring No Plain text content. Supports merge tags. amp_htmlstring No AMP HTML content for interactive emails. from_namestring No Display name for the sender. reply_tostring No Reply-to email address. ccstring No CC recipient email address. bccstring No BCC recipient email address. substitution_dataobject No Key-value pairs for merge tag substitution.
Example prompt: “Send a welcome email to john@example.com from hello@mycompany.com with the subject ‘Welcome to Acme‘“
send_template_email
Send an email using a pre-defined template specified by its slug.
Available on: Remote only
Parameter Type Required Description fromstring Yes Sender email address. Must be from a verified sending domain. tostring Yes Recipient email address. subjectstring Yes Email subject line. Can include merge tags. template_slugstring Yes The slug of the template to use (e.g., welcome-email). from_namestring No Display name for the sender. reply_tostring No Reply-to email address. project_idinteger No Project ID where the template is located. Uses default project if omitted. template_versioninteger No Specific version number. Uses active version if omitted. substitution_dataobject No Key-value pairs for merge tag substitution.
Example prompt: “Send the order-confirmation template to customer@example.com with order_id 12345”
On the local server, the send-email tool supports template-based sending directly via a template_slug parameter.
Template Management
list_templates
Lists all email templates for your team with metadata including name, slug, editor type, version count, and merge tags.
Available on: Remote, Local
Parameter Type Required Description project_idinteger No Filter templates by project. Returns templates from all projects if omitted.
Example prompt: “List all my email templates” or “What templates are in project 3?“
get_template
Gets detailed information about a specific template, including its HTML content and merge tags.
Available on: Remote, Local
Parameter Type Required Description template_idinteger No The numeric ID of the template. template_slugstring No The slug of the template (e.g., welcome-email). project_idinteger No Project ID to narrow the search when using a slug.
Provide either template_id or template_slug to identify the template.
Example prompt: “Show me the HTML content of the welcome-email template”
create_template
Creates a new Custom HTML email template.
Available on: Remote, Local
Parameter Type Required Description namestring Yes Display name for the template. folder_idinteger Yes The folder ID where the template will be created. slugstring No URL-friendly identifier. Auto-generated from name if omitted. project_idinteger No Project ID. Uses default project if omitted. htmlstring No Initial HTML content for the template. subjectstring No Default subject line for the template.
Example prompt: “Create a new template called ‘Invoice Reminder’ in folder 1 with a basic HTML layout”
update_template
Updates a template’s content and creates a new active version. Supports both Custom HTML and Topol editor templates.
Available on: Remote, Local
Parameter Type Required Description template_idinteger No The numeric ID of the template. template_slugstring No The slug of the template. project_idinteger No Project ID to narrow the search when using a slug. htmlstring No Updated HTML content (for Custom HTML templates). jsonstring No Updated Topol editor JSON (for Topol templates).
Provide either template_id or template_slug to identify the template. Each update creates a new version automatically.
Example prompt: “Update the welcome-email template with new HTML content”
delete_template
Permanently deletes a template and all its versions.
Available on: Local only
Parameter Type Required Description template_idinteger No The numeric ID of the template. template_slugstring No The slug of the template. project_idinteger No Project ID to narrow the search when using a slug.
Example prompt: “Delete the old-welcome-email template”
Retrieves the merge tag variables that a template expects, so you know which substitution data to provide when sending.
Available on: Local only
Parameter Type Required Description template_idinteger No The numeric ID of the template. template_slugstring No The slug of the template. project_idinteger No Project ID to narrow the search when using a slug.
Example prompt: “What merge tags does the order-confirmation template expect?”
Domain Management
list_sending_domains / list_domains
Lists all sending domains configured for your team with verification status, DNS configuration status, and whether they can be used for sending.
Available on: Remote (list_sending_domains), Local (list-domains)
Parameters: None
Example prompt: “Show me all my sending domains and their verification status”
list_tracking_domains
Lists all tracking domains configured for your team. Tracking domains are used to track email opens and clicks with your own branded domain.
Available on: Remote only
Parameters: None
Example prompt: “What tracking domains do I have set up?“
list_inbound_domains
Lists all inbound domains configured for your team. Inbound domains receive emails via MX records.
Available on: Remote only
Parameters: None
list_storage_domains
Lists all email storage domains configured for your team. Storage domains serve email assets (images, files) from your branded domain.
Available on: Remote only
Parameters: None
create_domain
Registers a new sending domain.
Available on: Local only
Parameter Type Required Description domainstring Yes The domain name to register (e.g., notifications.example.com).
Example prompt: “Add notifications.example.com as a sending domain”
get_domain
Gets detailed information about a sending domain, including its DNS records for SPF, DKIM, and DMARC setup.
Available on: Local only
Parameter Type Required Description domain_idstring Yes The ID of the domain to retrieve.
Example prompt: “Show me the DNS records for my sending domain”
delete_domain
Removes a sending domain from your account.
Available on: Local only
Parameter Type Required Description domain_idstring Yes The ID of the domain to delete.
Example prompt: “Remove the old.example.com sending domain”
verify_domain
Triggers DNS verification for a sending domain to check if SPF and DKIM records are properly configured.
Available on: Local only
Parameter Type Required Description domain_idstring Yes The ID of the domain to verify.
Example prompt: “Verify the DNS records for my sending domain”
Configuration
list_api_keys
Lists all API keys for your team, showing each key’s name, key ID, prefix, permissions level, and IP whitelist configuration.
Available on: Remote only
Parameters: None
Example prompt: “List my API keys and their permissions”
list_webhooks
Lists all webhooks configured for your team, including target URL, enabled status, event types, authentication type, and delivery health indicators.
Available on: Remote, Local
Parameters: None
get_webhook
Gets detailed information about a specific webhook, including its delivery status and configuration.
Available on: Local only
Parameter Type Required Description webhook_idstring Yes The ID of the webhook to retrieve.
Example prompt: “Show me the details for my delivery webhook”
Analytics
get_analytics
Returns aggregate email delivery analytics with a daily breakdown, including targeted, accepted, bounced, and opened counts.
Available on: Remote only
Parameter Type Required Description fromstring No Start date in ISO 8601 format. Default: 7 days ago. Max 90 days back. tostring No End date in ISO 8601 format. Default: now.
Example prompt: “Show me my email delivery stats for the last 30 days”
list_template_stats
Lists templates with delivery statistics broken down by campaign, including sent, delivered, opened, and bounced counts.
Available on: Remote only
Parameter Type Required Description project_idinteger No Filter by project. Returns stats for all projects if omitted. fromstring No Start date in ISO 8601 format. Default: 30 days ago. tostring No End date in ISO 8601 format. Default: now.
Example prompt: “Which of my templates has the best open rate this month?”
Monitoring
browse_email_events
Browse email delivery events with optional filtering and pagination.
Available on: Remote only
Parameter Type Required Description limitinteger No Number of events to return (10, 25, 50, or 100). Default: 25. recipientstring No Filter by recipient email address. Supports partial matching. fromstring No Start date/time in ISO 8601 format. tostring No End date/time in ISO 8601 format. event_typestring No Filter by event type: delivery, injection, open, initial_open, click, bounce, out_of_band, delay, spam_complaint, policy_rejection, generation_rejection, generation_failure, list_unsubscribe, link_unsubscribe, amp_open, amp_click cursorstring No Pagination cursor from a previous response.
Example prompt: “Show me the last 10 bounced emails” or “What emails were sent to john@example.com today?“
browse_api_logs
Browse API request logs with optional filtering and pagination.
Available on: Remote only
Parameter Type Required Description limitinteger No Number of log entries (1, 20, 50, or 100). Default: 20. fromstring No Start date/time in ISO 8601 format. Max 30 days back. Default: 7 days ago. tostring No End date/time in ISO 8601 format. Default: now. api_key_namestring No Filter by API key name (case-insensitive). user_agentstring No Filter by client type: php, curl, nodejs, python, ruby, go, rust, java, dotnet, smtp, other statusinteger No Filter by HTTP status code (e.g., 200, 400, 500). cursorstring No Pagination cursor from a previous response.
Example prompt: “Show me failed API requests from the last 24 hours” or “Were there any 500 errors today?”
Remote Server Setup Connect via OAuth from Claude.ai, ChatGPT, and other AI clients
Local Server Setup Install the lettr-mcp package for your IDE or CLI
API Reference Full REST API documentation
Template Language Merge tag syntax and template variables