Connection check
verified live · 26h ago
send16-mcp
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
Tools
79
GitHub stars
—
Installs / wk
59
Licence
MIT
Transport
streamable-http, stdio
Last checked
26h ago
Tools & capabilities
79 toolsRead from the running server on 26h ago.
activate_automation
apiKeyautomationId*
Activate an automation. New events matching its triggers will start enrolling contacts. Activate an automation. New events matching its triggers will start enrolling contacts.
add_contacts_to_audience
apiKeyaudienceId*contactIds*
Add contacts (by ID) to an audience. Add contacts (by ID) to an audience.
add_convo_note
body*apiKeyconvoId*
Add a private internal note on a conversation. Notes are visible only to workspace members. Add a private internal note on a conversation. Notes are visible only to workspace members.
add_domain
apiKeydomain*
Register 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. Register 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.
add_suppression
email*notesapiKeyreason
Add an email to the suppression list. Future sends to this address will be blocked. Add an email to the suppression list. Future sends to this address will be blocked.
check_domain_health
apiKeydomainId*
Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup. Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.
create_action
name*apiKeyenabledsendOnceeventName*delaySeconds
+1
Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact. Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.
create_audience
name*apiKeydescription
Create a new audience. Create a new audience.
create_campaign
htmlname*apiKeytagIdsreplyTosubject*
+7
Create a new email campaign as a draft: optionally with full HTML content and recipients (exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll) so it's ready to… Create a new email campaign as a draft: optionally with full HTML content and recipients (exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll) so it's ready to test and send. Nothing is sent until schedule_campaign.
create_contact
tagsemail*apiKeylastNamefirstNameaudienceIds
+1
Add a single new contact, optionally straight into audiences and/or with tags — e.g. 'add this person from my email into the newsletter list'. Contacts are subscribed by default. F… Add a single new contact, optionally straight into audiences and/or with tags — e.g. 'add this person from my email into the newsletter list'. Contacts are subscribed by default. For more than a handful of people, use import_contacts instead.
create_topic
name*slugapiKeyisDefaultdescription
Create a new subscription topic. Contacts opt into topics individually via the preference center. Create a new subscription topic. Contacts opt into topics individually via the preference center.
create_webhook
url*name*apiKeyevents*enabled
Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature. Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.
delete_action
apiKeyactionId*
Delete an Action. Delete an Action.
delete_audience
apiKeyaudienceId*
Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed. Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed.
delete_campaign
apiKeycampaignId*
Delete a draft campaign. Sent campaigns cannot be deleted (only archived). Delete a draft campaign. Sent campaigns cannot be deleted (only archived).
delete_contact
apiKeycontactId*
Delete a contact and all associated events. Irreversible. Delete a contact and all associated events. Irreversible.
delete_topic
apiKeytopicId*
Delete a subscription topic. All subscribers will be detached. Delete a subscription topic. All subscribers will be detached.
delete_webhook
apiKeywebhookId*
Delete an outgoing webhook endpoint. Delete an outgoing webhook endpoint.
design_email_template
type*style*apiKeybrandColorcompanyNamedescription*
Use 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. Use 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.
duplicate_campaign
nameapiKeytagIdssegmentIdsendToAllcampaignId*
+2
Duplicate a campaign (template, content, and settings) as a new draft — works on sent campaigns too, so this is the way to re-use a past campaign's design. Optionally rename and re… Duplicate a campaign (template, content, and settings) as a new draft — works on sent campaigns too, so this is the way to re-use a past campaign's design. Optionally rename and retarget in the same call (exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll). NOTE: without retargeting, the copy keeps the ORIGINAL campaign's recipients.
enroll_in_automation
apiKeycontactId*automationId*
Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment. Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.
generate_email_from_url
url*apiKeyinstructions
Scrape 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. Scrape 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.
get_action
apiKeyactionId*
Get a single Action with its trigger config and template binding. Get a single Action with its trigger config and template binding.
get_automation
apiKeyautomationId*
Get a single automation by ID, including its trigger, steps, and current status. Get a single automation by ID, including its trigger, steps, and current status.
get_automation_stats
apiKeyautomationId*
Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step. Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.
get_brand
apiKey
Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts. Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.
get_campaign_stats
apiKeycampaignId*
Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics. Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.
get_contact_health_score
apiKeycontactId*
Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies). Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies).
get_contact_timeline
limitapiKeycursorcontactId*
Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes. Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.
get_convo
id*apiKey
Get a single conversation with its full thread of posts (incoming + outgoing). Get a single conversation with its full thread of posts (incoming + outgoing).
get_deliverability_status
apiKey
Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.) Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)
get_message
id*apiKey
Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...). Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).
get_message_events
id*apiKey
Get just the delivery event timeline for a message — no body or recipient details. Get just the delivery event timeline for a message — no body or recipient details.
get_template
apiKeytemplateId*
Get a single starter template by ID, including its EmailContent JSON. Get a single starter template by ID, including its EmailContent JSON.
get_workspace
apiKey
Get the current workspace (the one the API key belongs to). Get the current workspace (the one the API key belongs to).
get_workspace_usage
apiKey
Get the current month's send count, contact count, and plan limits. Get the current month's send count, contact count, and plan limits.
import_contacts
tagsapiKeycsvData*audienceIdsupdateExisting
Bulk import contacts from CSV data (min column: email), optionally straight into audiences and/or with tags. This is the tool for cross-app flows — e.g. pulling people out of Gmail… Bulk import contacts from CSV data (min column: email), optionally straight into audiences and/or with tags. This is the tool for cross-app flows — e.g. pulling people out of Gmail, a CRM, or a spreadsheet and landing them in a Send16 audience in one call. Set updateExisting for upsert semantics (safe to re-run).
list_actions
apiKey
List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations. List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations.
list_audiences
apiKey
List audiences (lists). An audience is a static, manually-managed group of contacts. List audiences (lists). An audience is a static, manually-managed group of contacts.
list_automation_enrollments
pagestateapiKeypageSizeautomationId*
List active and historical enrollments for an automation. List active and historical enrollments for an automation.
list_automations
apiKey
List all automations in the workspace, including draft/active/paused status and trigger types. List all automations in the workspace, including draft/active/paused status and trigger types.
list_campaigns
pageapiKeysearchstatuspageSize
List email campaigns, newest first. Use `search` to find a past campaign the user describes vaguely ('the invite one', 'that July newsletter') — it matches name and subject case-in… List email campaigns, newest first. Use `search` to find a past campaign the user describes vaguely ('the invite one', 'that July newsletter') — it matches name and subject case-insensitively; try distinctive words from their description and broaden if no hits.
list_contacts
pagetagIdapiKeypageSizesubscribed
List all contacts with optional filtering by subscription status and tag. Supports pagination. List all contacts with optional filtering by subscription status and tag. Supports pagination.
list_convos
labellimitstateapiKeysearchmailboxId
List inbox conversations. Filter by state, mailbox, label, screener status, or full-text search. Send16's unified inbox combines transactional reply threading with team-managed sha… List 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.
list_domains
apiKey
List all sending domains configured in your Send16 workspace, including their verification status and DNS records. List all sending domains configured in your Send16 workspace, including their verification status and DNS records.
list_inbox_counts
apiKey
Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold). Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
list_messages
limitapiKeyoffsetsourcestatusto_email
+3
List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source. List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
list_segments
apiKey
List dynamic segments. Segments compute their members from a filter expression at send time. List dynamic segments. Segments compute their members from a filter expression at send time.
list_suppressions
limitapiKeyoffsetreason
List suppressed email addresses (bounces, complaints, unsubscribes, manual). List suppressed email addresses (bounces, complaints, unsubscribes, manual).
list_templates
apiKey
List starter-gallery email templates available to every workspace. List starter-gallery email templates available to every workspace.
list_topics
apiKey
List subscription topics. Topics are granular categories contacts can subscribe to (e.g. 'product-updates', 'weekly-digest'). Campaigns and automations can be gated to subscribers… List 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.
list_webhooks
apiKey
List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature. List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.
list_workspaces
apiKey
List workspaces the authenticated user has access to (owner or member). List workspaces the authenticated user has access to (owner or member).
mark_convo_read
apiKeyconvoId*
Mark a conversation as read for the current viewer. Mark a conversation as read for the current viewer.
pause_automation
apiKeyautomationId*
Pause an automation. Existing enrollments freeze in place; no new contacts enroll. Pause an automation. Existing enrollments freeze in place; no new contacts enroll.
pause_campaign
apiKeycampaignId*
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt. Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
pre_send_review
html*apiKeysubject*audience
Run 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. Run 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.
preview_campaign_recipients
apiKeycampaignId*
Preview the recipient set for a campaign before sending. Returns count + sample list. Preview the recipient set for a campaign before sending. Returns count + sample list.
preview_segment
apiKeysegmentId*
Preview the contacts that match a segment without sending. Preview the contacts that match a segment without sending.
regenerate_webhook_secret
apiKeywebhookId*
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once. Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
remove_contact_from_audience
apiKeycontactId*audienceId*
Remove a contact from an audience. Remove a contact from an audience.
remove_suppression
email*apiKey
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again. Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.
render_email_content
apiKeycontent*variables
Compile 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 s… Compile 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.
resume_campaign
apiKeycampaignId*
Resume a paused campaign. Resume a paused campaign.
schedule_campaign
apiKeytopicIdsegmentIdaudienceIdcampaignId*scheduleAt
Schedule (or send immediately) an existing draft campaign to an audience/segment/topic. Schedule (or send immediately) an existing draft campaign to an audience/segment/topic.
screener_decide
apiKeyconvoId*decision*
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach. Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
search_contacts
pagequery*apiKeypageSize
Search contacts by email address or name. Returns matching contacts with their tags and subscription status. Search contacts by email address or name. Returns matching contacts with their tags and subscription status.
send_broadcast
htmlname*apiKeyreplyTosubject*topicId
+7
One-shot broadcast: create a campaign and immediately schedule it to send, in a single call. Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html… One-shot broadcast: create a campaign and immediately schedule it to send, in a single call. Pass either an audienceId, segmentId, topicId, or fully-qualified filter. Provide html OR templateSlug.
send_campaign_test
apiKeytestEmail*campaignId*
Send a test email for an existing campaign to preview how it will look in recipients' inboxes. Send a test email for an existing campaign to preview how it will look in recipients' inboxes.
send_email
to*htmltextapiKeysubject*reply_to
+4
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 th… 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 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 `[email protected]` — the sandbox sender delivers with no DNS, but only to your own account email.
send_event
name*apiKeypayloadcontactIdoccurredAtcontactEmail
Fire 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 conditi… Fire 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>`.
send_reply
htmltextapiKeyconvoId*
Reply 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. Reply 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.
update_action
nameapiKeyenabledactionId*sendOnceeventName
+2
Update an Action (toggle enabled, change template, change event name). Update an Action (toggle enabled, change template, change event name).
update_brand
apiKeylogoUrldesignSpecfontFamilyprimaryColorsecondaryColor
Update workspace brand settings. The designSpec field is a Markdown DESIGN.md document fed into AI generation system prompts — use it to encode voice, do/don't lists, and visual ru… Update workspace brand settings. The designSpec field is a Markdown DESIGN.md document fed into AI generation system prompts — use it to encode voice, do/don't lists, and visual rules.
update_campaign
htmlnameapiKeytagIdsreplyTosubject
+8
Update a draft campaign: name, subject, preview text, sender info, HTML content, and/or recipients. Retarget with exactly ONE of audienceIds / segmentId / contactIds / tagIds / sen… Update a draft campaign: name, subject, preview text, sender info, HTML content, and/or recipients. Retarget with exactly ONE of audienceIds / segmentId / contactIds / tagIds / sendToAll, then verify with preview_campaign_recipients before sending. Only drafts can be edited.
update_contact
apiKeylastNamecontactId*firstNamesubscribedcustomFields
Update a contact's profile fields, custom fields, or subscription state. Update a contact's profile fields, custom fields, or subscription state.
update_convo
stateapiKeyconvoId*assigneeId
Update conversation status (open/closed/archived/snoozed) or assignee. Update conversation status (open/closed/archived/snoozed) or assignee.
update_topic
nameapiKeytopicId*isDefaultdescription
Update a subscription topic (name, description, default). Update a subscription topic (name, description, default).
whoami
apiKey