send16-mcp

Email API for AI agents: 79 tools for transactional & marketing email, contacts, audiences, automations, templates, inbox, and webhooks.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data

What it can do

  • Whoami: Verify the API key and return the authenticated workspace: name, plan, email quota (used/limit), and owner. Call this first to confirm the key works before sending. Pair with list_domains to s
  • Send Email: Send a transactional email through Send16. Provide `html`, `text`, or both (text-only is fine for OTPs/receipts/alerts). `from_email` must belong to a domain that is verified in the worksp
  • Send Campaign Test: Send a test email for an existing campaign to preview how it will look in recipients' inboxes.

What data it sees

Do you need an account

An API key from the service settings is required

Email API for AI agents: 79 tools for transactional & marketing email, contacts, audiences, automations, templates, inbox, and webhooks. Ships a zero-DNS sandbox sender so an agent's first send needs no domain setup. Install: npx send16-mcp, or connect this hosted endpoint. Get a key at https://send16.com/dashboard/developers.

Server tool list (60)

Raw names from tools/list. Only developers need these.

whoamiVerify the API key and return the authenticated workspace: name, plan, email quota (used/limit), and owner. Call this first to confirm the key works before sending. Pair with list_domains to see which `from` addresses are allowed.
send_emailSend a transactional email through Send16. Provide `html`, `text`, or both (text-only is fine for OTPs/receipts/alerts). `from_email` must belong to a domain that is verified in the workspace — call `whoami` for the account and `list_domains` to see which senders are allowed; a send from an unverified domain returns a clear error, not a silent failure. For a zero-setup first send, use from_email `onboarding@send16.com` — the sandbox sender delivers with no DNS, but only to your own account email.
send_campaign_testSend a test email for an existing campaign to preview how it will look in recipients' inboxes.
create_campaignCreate a new email campaign in Send16. The campaign is created in draft status and can be edited before sending.
design_email_templateUse AI to generate a complete email HTML template based on a description. Returns ready-to-use HTML that can be sent or used in campaigns.
list_campaignsList email campaigns with optional status filtering and pagination.
create_contactAdd a new contact to your Send16 audience. Contacts are automatically subscribed to receive emails.
search_contactsSearch contacts by email address or name. Returns matching contacts with their tags and subscription status.
list_contactsList all contacts with optional filtering by subscription status and tag. Supports pagination.
import_contactsBulk import contacts from CSV data. Each row should have at minimum an email column. Tags can be applied to all imported contacts.
list_domainsList all sending domains configured in your Send16 workspace, including their verification status and DNS records.
check_domain_healthCheck the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.
get_campaign_statsGet detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.
get_deliverability_statusGet your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)
list_automationsList all automations in the workspace, including draft/active/paused status and trigger types.
get_automationGet a single automation by ID, including its trigger, steps, and current status.
enroll_in_automationManually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.
send_eventFire a custom event for a contact. Automations whose trigger is `{type:'custom_event', eventName:'<name>'}` will enroll the contact and start running. Payload is exposed to condition steps as `event.<key>`.
list_templatesList starter-gallery email templates available to every workspace.
get_templateGet a single starter template by ID, including its EmailContent JSON.
render_email_contentCompile an EmailContent JSON object (the shape used by the Send16 builder + templates) into HTML using the platform's authoritative renderer. Returns the exact HTML the API would send. Useful for previews and post-processing.
add_domainRegister a new sending domain. Returns the DNS records the user must add to their DNS provider, after which they should call check_domain_health to verify.
pre_send_reviewRun an AI pre-send review on an email's HTML before sending. Surfaces tone issues, broken links, missing alt text, spam triggers, and accessibility problems.
generate_email_from_urlScrape a URL (e.g. a launch blog post or product page) and generate an email draft from its content. Returns subject, preview text, and HTML body.
list_messagesList messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
get_messageFetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).
get_message_eventsGet just the delivery event timeline for a message — no body or recipient details.
list_convosList inbox conversations. Filter by state, mailbox, label, screener status, or full-text search. Send16's unified inbox combines transactional reply threading with team-managed shared inboxes.
get_convoGet a single conversation with its full thread of posts (incoming + outgoing).
send_replyReply to an inbox conversation. The reply is sent from the original recipient address (the alias the convo arrived on) and threaded back to the contact.
mark_convo_readMark a conversation as read for the current viewer.
update_convoUpdate conversation state (open/closed/snoozed/spam/trash), star, or assignee.
add_convo_noteAdd a private internal note on a conversation. Notes are visible only to workspace members.
screener_decideDecide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
list_inbox_countsGet unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
list_topicsList subscription topics. Topics are granular categories contacts can subscribe to (e.g. 'product-updates', 'weekly-digest'). Campaigns and automations can be gated to subscribers of a specific topic.
create_topicCreate a new subscription topic. Contacts opt into topics individually via the preference center.
update_topicUpdate a subscription topic (name, description, default).
delete_topicDelete a subscription topic. All subscribers will be detached.
list_actionsList Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations.
get_actionGet a single Action with its trigger config and template binding.
create_actionCreate an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.
update_actionUpdate an Action (toggle enabled, change template, change event name).
delete_actionDelete an Action.
list_audiencesList audiences (lists). An audience is a static, manually-managed group of contacts.
create_audienceCreate a new audience.
add_contacts_to_audienceAdd contacts (by ID) to an audience.
remove_contact_from_audienceRemove a contact from an audience.
delete_audienceDelete an audience (list). Contacts are not deleted — only the list and its memberships are removed.
list_segmentsList dynamic segments. Segments compute their members from a filter expression at send time.
preview_segmentPreview the contacts that match a segment without sending.
update_contactUpdate a contact's profile fields, custom fields, or subscription state.
delete_contactDelete a contact and all associated events. Irreversible.
get_contact_timelineGet a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.
get_contact_health_scoreGet a contact's 0-100 health score based on recent engagement (opens, clicks, replies).
send_broadcastOne-shot broadcast: create a campaign and immediately schedule it to send. Mirrors Resend's one-call broadcast API. Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html OR templateSlug.
schedule_campaignSchedule (or send immediately) an existing draft campaign to an audience/segment/topic.
update_campaignUpdate a draft campaign's content, subject, preview text, or sender info.
pause_campaignPause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
resume_campaignResume a paused campaign.