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

Tool Availability

CategoryToolRemoteLocal
Sendingsend_emailYesYes
Sendingsend_template_emailYes
Templateslist_templatesYesYes
Templatesget_templateYesYes
Templatescreate_templateYesYes
Templatesupdate_templateYesYes
Templatesdelete_templateYes
Templatesget_merge_tagsYes
Domainslist_sending_domains / list_domainsYesYes
Domainslist_tracking_domainsYes
Domainslist_inbound_domainsYes
Domainslist_storage_domainsYes
Domainscreate_domainYes
Domainsget_domainYes
Domainsdelete_domainYes
Domainsverify_domainYes
Configurationlist_api_keysYes
Configurationlist_webhooksYesYes
Configurationget_webhookYes
Analyticsget_analyticsYes
Analyticslist_template_statsYes
Monitoringbrowse_email_eventsYes
Monitoringbrowse_api_logsYes

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
ParameterTypeRequiredDescription
fromstringYesSender email address. Must be from a verified sending domain.
tostringYesRecipient email address.
subjectstringYesEmail subject line (max 998 characters).
htmlstringNoHTML content. Supports merge tags like {{variable_name}}.
textstringNoPlain text content. Supports merge tags.
amp_htmlstringNoAMP HTML content for interactive emails.
from_namestringNoDisplay name for the sender.
reply_tostringNoReply-to email address.
ccstringNoCC recipient email address.
bccstringNoBCC recipient email address.
substitution_dataobjectNoKey-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
ParameterTypeRequiredDescription
fromstringYesSender email address. Must be from a verified sending domain.
tostringYesRecipient email address.
subjectstringYesEmail subject line. Can include merge tags.
template_slugstringYesThe slug of the template to use (e.g., welcome-email).
from_namestringNoDisplay name for the sender.
reply_tostringNoReply-to email address.
project_idintegerNoProject ID where the template is located. Uses default project if omitted.
template_versionintegerNoSpecific version number. Uses active version if omitted.
substitution_dataobjectNoKey-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
ParameterTypeRequiredDescription
project_idintegerNoFilter 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
ParameterTypeRequiredDescription
template_idintegerNoThe numeric ID of the template.
template_slugstringNoThe slug of the template (e.g., welcome-email).
project_idintegerNoProject 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
ParameterTypeRequiredDescription
namestringYesDisplay name for the template.
folder_idintegerYesThe folder ID where the template will be created.
slugstringNoURL-friendly identifier. Auto-generated from name if omitted.
project_idintegerNoProject ID. Uses default project if omitted.
htmlstringNoInitial HTML content for the template.
subjectstringNoDefault 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
ParameterTypeRequiredDescription
template_idintegerNoThe numeric ID of the template.
template_slugstringNoThe slug of the template.
project_idintegerNoProject ID to narrow the search when using a slug.
htmlstringNoUpdated HTML content (for Custom HTML templates).
jsonstringNoUpdated 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
ParameterTypeRequiredDescription
template_idintegerNoThe numeric ID of the template.
template_slugstringNoThe slug of the template.
project_idintegerNoProject ID to narrow the search when using a slug.
Example prompt: “Delete the old-welcome-email template”

get_merge_tags

Retrieves the merge tag variables that a template expects, so you know which substitution data to provide when sending. Available on: Local only
ParameterTypeRequiredDescription
template_idintegerNoThe numeric ID of the template.
template_slugstringNoThe slug of the template.
project_idintegerNoProject 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
ParameterTypeRequiredDescription
domainstringYesThe 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
ParameterTypeRequiredDescription
domain_idstringYesThe 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
ParameterTypeRequiredDescription
domain_idstringYesThe 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
ParameterTypeRequiredDescription
domain_idstringYesThe 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
ParameterTypeRequiredDescription
webhook_idstringYesThe 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
ParameterTypeRequiredDescription
fromstringNoStart date in ISO 8601 format. Default: 7 days ago. Max 90 days back.
tostringNoEnd 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
ParameterTypeRequiredDescription
project_idintegerNoFilter by project. Returns stats for all projects if omitted.
fromstringNoStart date in ISO 8601 format. Default: 30 days ago.
tostringNoEnd 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
ParameterTypeRequiredDescription
limitintegerNoNumber of events to return (10, 25, 50, or 100). Default: 25.
recipientstringNoFilter by recipient email address. Supports partial matching.
fromstringNoStart date/time in ISO 8601 format.
tostringNoEnd date/time in ISO 8601 format.
event_typestringNoFilter 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
cursorstringNoPagination 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
ParameterTypeRequiredDescription
limitintegerNoNumber of log entries (1, 20, 50, or 100). Default: 20.
fromstringNoStart date/time in ISO 8601 format. Max 30 days back. Default: 7 days ago.
tostringNoEnd date/time in ISO 8601 format. Default: now.
api_key_namestringNoFilter by API key name (case-insensitive).
user_agentstringNoFilter by client type: php, curl, nodejs, python, ruby, go, rust, java, dotnet, smtp, other
statusintegerNoFilter by HTTP status code (e.g., 200, 400, 500).
cursorstringNoPagination cursor from a previous response.
Example prompt: “Show me failed API requests from the last 24 hours” or “Were there any 500 errors today?”