ZBS Index What actually exists in applied AI, with the source next to it

mcp server

send16-mcp

Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.

Description as published by the maintainer. Source

  • version 0.5.8
  • active
  • workflow automation

active — Registry entry last updated 2026-07-12. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.

What this server can do

79 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.

activate_automation(apiKey, automationId)
Activate an automation. New events matching its triggers will start enrolling contacts. Required: automationId.
add_contacts_to_audience(apiKey, audienceId, contactIds)
Add contacts (by ID) to an audience. Required: audienceId, contactIds.
add_convo_note(body, apiKey, convoId)
Add a private internal note on a conversation. Notes are visible only to workspace members. Required: convoId, body.
add_domain(apiKey, domain)
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. Required: domain.
add_suppression(email, notes, apiKey, reason)
Add an email to the suppression list. Future sends to this address will be blocked. Required: email.
check_domain_health(apiKey, domainId)
Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup. Required: domainId.
create_action(name, apiKey, enabled, sendOnce, eventName, delaySeconds, templateSlug)
Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact. Required: name, eventName, templateSlug.
create_audience(name, apiKey, description)
Create a new audience. Required: name.
create_campaign(html, name, apiKey, tagIds, replyTo, subject, fromName, fromEmail, segmentId, sendToAll, contactIds, audienceIds, previewText)
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. Required: name, subject, fromName, fromEmail.
create_contact(tags, email, apiKey, lastName, firstName, audienceIds, customFields)
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. Required: email.
create_topic(name, slug, apiKey, isDefault, description)
Create a new subscription topic. Contacts opt into topics individually via the preference center. Required: name.
create_webhook(url, name, apiKey, events, enabled)
Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature. Required: name, url, events.
delete_action(apiKey, actionId)
Delete an Action. Required: actionId.
delete_audience(apiKey, audienceId)
Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed. Required: audienceId.
delete_campaign(apiKey, campaignId)
Delete a draft campaign. Sent campaigns cannot be deleted (only archived). Required: campaignId.
delete_contact(apiKey, contactId)
Delete a contact and all associated events. Irreversible. Required: contactId.
delete_topic(apiKey, topicId)
Delete a subscription topic. All subscribers will be detached. Required: topicId.
delete_webhook(apiKey, webhookId)
Delete an outgoing webhook endpoint. Required: webhookId.
design_email_template(type, style, apiKey, brandColor, companyName, description)
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. Required: type, style, description.
duplicate_campaign(name, apiKey, tagIds, segmentId, sendToAll, campaignId, contactIds, audienceIds)
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. Required: campaignId.
enroll_in_automation(apiKey, contactId, automationId)
Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment. Required: automationId, contactId.
generate_email_from_url(url, apiKey, instructions)
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. Required: url.
get_action(apiKey, actionId)
Get a single Action with its trigger config and template binding. Required: actionId.
get_automation(apiKey, automationId)
Get a single automation by ID, including its trigger, steps, and current status. Required: automationId.
get_automation_stats(apiKey, automationId)
Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step. Required: automationId.
get_brand(apiKey)
Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.
get_campaign_stats(apiKey, campaignId)
Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics. Required: campaignId.
get_contact_health_score(apiKey, contactId)
Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies). Required: contactId.
get_contact_timeline(limit, apiKey, cursor, contactId)
Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes. Required: contactId.
get_convo(id, apiKey)
Get a single conversation with its full thread of posts (incoming + outgoing). Required: id.
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_message(id, apiKey)
Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...). Required: id.
get_message_events(id, apiKey)
Get just the delivery event timeline for a message — no body or recipient details. Required: id.
get_template(apiKey, templateId)
Get a single starter template by ID, including its EmailContent JSON. Required: templateId.
get_workspace(apiKey)
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.
import_contacts(tags, apiKey, csvData, audienceIds, updateExisting)
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). Required: csvData.
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_audiences(apiKey)
List audiences (lists). An audience is a static, manually-managed group of contacts.
list_automation_enrollments(page, state, apiKey, pageSize, automationId)
List active and historical enrollments for an automation. Required: automationId.
list_automations(apiKey)
List all automations in the workspace, including draft/active/paused status and trigger types.
list_campaigns(page, apiKey, search, status, pageSize)
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(page, tagId, apiKey, pageSize, subscribed)
List all contacts with optional filtering by subscription status and tag. Supports pagination.
list_convos(label, limit, state, apiKey, search, mailboxId)
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_inbox_counts(apiKey)
Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).
list_messages(limit, apiKey, offset, source, status, to_email, from_email, created_after, created_before)
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_suppressions(limit, apiKey, offset, reason)
List suppressed email addresses (bounces, complaints, unsubscribes, manual).
list_templates(apiKey)
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 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_workspaces(apiKey)
List workspaces the authenticated user has access to (owner or member).
mark_convo_read(apiKey, convoId)
Mark a conversation as read for the current viewer. Required: convoId.
pause_automation(apiKey, automationId)
Pause an automation. Existing enrollments freeze in place; no new contacts enroll. Required: automationId.
pause_campaign(apiKey, campaignId)
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt. Required: campaignId.
pre_send_review(html, apiKey, subject, 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. Required: subject, html.
preview_campaign_recipients(apiKey, campaignId)
Preview the recipient set for a campaign before sending. Returns count + sample list. Required: campaignId.
preview_segment(apiKey, segmentId)
Preview the contacts that match a segment without sending. Required: segmentId.
regenerate_webhook_secret(apiKey, webhookId)
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once. Required: webhookId.
remove_contact_from_audience(apiKey, contactId, audienceId)
Remove a contact from an audience. Required: audienceId, contactId.
remove_suppression(email, apiKey)
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again. Required: email.
render_email_content(apiKey, content, 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 send. Useful for previews and post-processing. Required: content.
resume_campaign(apiKey, campaignId)
Resume a paused campaign. Required: campaignId.
schedule_campaign(apiKey, topicId, segmentId, audienceId, campaignId, scheduleAt)
Schedule (or send immediately) an existing draft campaign to an audience/segment/topic. Required: campaignId.
screener_decide(apiKey, convoId, decision)
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach. Required: convoId, decision.
search_contacts(page, query, apiKey, pageSize)
Search contacts by email address or name. Returns matching contacts with their tags and subscription status. Required: query.
send_broadcast(html, name, apiKey, replyTo, subject, topicId, fromName, fromEmail, segmentId, audienceId, scheduleAt, previewText, templateSlug)
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. Required: name, subject, fromName, fromEmail.
send_campaign_test(apiKey, testEmail, campaignId)
Send a test email for an existing campaign to preview how it will look in recipients' inboxes. Required: campaignId, testEmail.
send_email(to, html, text, apiKey, subject, reply_to, template, from_name, variables, from_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 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. Required: to, subject.
send_event(name, apiKey, payload, contactId, occurredAt, contactEmail)
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>`. Required: name.
send_reply(html, text, apiKey, convoId)
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. Required: convoId.
update_action(name, apiKey, enabled, actionId, sendOnce, eventName, delaySeconds, templateSlug)
Update an Action (toggle enabled, change template, change event name). Required: actionId.
update_brand(apiKey, logoUrl, designSpec, fontFamily, primaryColor, secondaryColor)
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(html, name, apiKey, tagIds, replyTo, subject, fromName, fromEmail, segmentId, sendToAll, campaignId, contactIds, audienceIds, previewText)
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. Required: campaignId.
update_contact(apiKey, lastName, contactId, firstName, subscribed, customFields)
Update a contact's profile fields, custom fields, or subscription state. Required: contactId.
update_convo(state, apiKey, convoId, assigneeId)
Update conversation status (open/closed/archived/snoozed) or assignee. Required: convoId.
update_topic(name, apiKey, topicId, isDefault, description)
Update a subscription topic (name, description, default). Required: topicId.
whoami(apiKey)
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 see which `from` addresses are allowed.

Last successful function declaration observed on . Source: https://mcp.send16.com/mcp. We list what the server declared; we do not call any of these functions.

Endpoint status observed on . Source: https://mcp.send16.com/mcp.

Signals

These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.

Signal Value What it measures Window Observed Source
Latest published version 0.5.8 Latest version string the maintainer published to the registry. as of fetch Model Context Protocol
Registry record last updated 2026-07-12 When the registry record was last updated by its maintainer. point in time Model Context Protocol
First listed in the MCP Registry 2026-07-12 Date this server was first published to the official MCP Registry. Not a usage or quality measure. point in time Model Context Protocol
mcp tools declared 79 tools Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. as of probe mcp.send16.com
mcp endpoint status ok The server listed 79 functions when asked. as of probe mcp.send16.com

Where to get it

This record as data

Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.

GET /api/v1/entries/mcp_server.json

Sources

  1. Tools declared by the MCP server at https://mcp.send16.com/mcp — mcp.send16.com, observed , trust tier 1.
  2. Official MCP Registry — Model Context Protocol, observed , trust tier 1.