All servers · Marketing & SEO
io.github.spruikco/send16-mcp
io.github.spruikco/send16-mcp · v0.5.8
Has write/delete toolsTools changed (7 days)No registry update 90+ days
Measured by MCP Station
| Last check | Reachable |
|---|---|
| Checked at | — |
| Check success 7 / 30 days | — |
| First-try success 30 days | — |
| Median response | — |
| Lookups 30 days | — |
| Authentication | No auth |
| MCP version | 2025-06-18 |
| Rank score | — |
| Declared risk | Has destructive tools (destructiveHint) |
| Capabilities declared | tools |
| Tool definitions | 87 tools · with description 100% · input schema is an object 100% · read/destructive hints 100% |
Description written by the publisher, not verified
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
Connect
streamable-http · https://mcp.send16.com/mcp
claude mcp add --transport http send16-mcp https://mcp.send16.com/mcp{
"mcpServers": {
"send16-mcp": {
"url": "https://mcp.send16.com/mcp"
}
}
}Tools as reported by the server
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_emailwrite/deleteSend 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 unverifiesend_campaign_testwrite/deleteSend a test email for an existing campaign to preview how it will look in recipients' inboxes. Confirm the test address with the user first. Can be refused with 403 SENDING_PAUSED (workspace under review, nothing was sent, tell the user to contact support).create_campaignCreate 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.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, 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.create_contactAdd 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.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_contactswrite/deleteBulk 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 (saflist_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_automationwrite/deleteManually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment. Confirm with the user first: the automation can start emailing the contact straight away.send_eventwrite/deleteFire 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>`. Confirm with the user first if the event could start an automation that emails the contact.list_templatesList starter-gallery email templates available to every workspace.save_templateSave an email design as a reusable template in the user's Send16 workspace. Use this when the user has designed an email (for example in a Claude artifact) and wants it in Send16. Pass the complete email HTML. Send16 hosts every image (remote URLs and inline data: images), converts merge tags like {list_workspace_templatesList the templates saved in the user's own Send16 workspace (their template library, including ones saved with save_template). For the shared starter gallery use list_templates.send_template_testwrite/deleteSend a preview of a saved workspace template to one email address, so the user can see it in a real inbox. It arrives from noreply@send16.com with a small 'Template test preview' banner and uses sample merge values (first name 'Test'). Only send to the user's own address unless they ask otherwise. Cget_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_replywrite/deleteReply 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. Show the user the reply text and get a clear yes first: it goes to a real person and cannot be unsent. Can be refused with 403 SENDING_PAUSED (workmark_convo_readMark a conversation as read for the current viewer.update_convoUpdate conversation status (open/closed/archived/snoozed) 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_topicwrite/deleteDelete a subscription topic. All subscribers will be detached.list_actionsList Actions. Actions fire a transactional template when a custom event arrives: simple 'event_name → template' pairings, lighter 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_actionwrite/deleteDelete 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_audiencewrite/deleteRemove a contact from an audience.delete_audiencewrite/deleteDelete 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.list_eventsList the workspace's events (meetups, workshops, conferences) with registered, attended and no-show counts and each event's public registration page.get_event_insightsWho registered and who came for one event: counts, no-show rate, where people came from (city and state), first-timers vs returning, organisations and registrations over time. Without an eventId, returns insights across every event: regulars and their attendance streaks, cohort retention and the reglist_event_registrationsList the people registered for an event, with status (registered, waitlisted, attended, no_show, cancelled), company, city and check-in time.register_for_eventRegister someone for an event. They get the event's confirmation email with their QR ticket unless the organiser switched it off, so confirm the person and the event with the user first. Registering doesn't subscribe them to marketing unless marketingOptIn is true because they asked.check_in_attendeeCheck a registrant in at the door (or undo it). Use the registration ID from list_event_registrations.update_contactUpdate a contact's profile fields, custom fields, or subscription state.delete_contactwrite/deleteDelete 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_broadcastwrite/deleteOne-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. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender anschedule_campaignwrite/deleteSchedule (or send immediately) an existing draft campaign to an audience/segment/topic. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender and the subject, and wait for a clear yes. Send16 can refuse a send. 429 SEND_RAMP_LIMIT: new and free workspacupdate_campaignUpdate 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.pause_campaignwrite/deletePause a sending campaign. Already-sent messages are unaffected; remaining sends halt.resume_campaignwrite/deleteResume a paused campaign. Confirm with the user first: the remaining recipients start receiving the campaign straight away. The sending limits and pauses described on schedule_campaign still apply.duplicate_campaignDuplicate 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 retargedelete_campaignwrite/deleteDelete a draft campaign. Sent campaigns cannot be deleted (only archived).preview_campaign_recipientsPreview the recipient set for a campaign before sending. Returns count + sample list.activate_automationwrite/deleteActivate an automation. New events matching its triggers will start enrolling contacts. Confirm with the user first: once active it can start emailing contacts straight away.pause_automationwrite/deletePause an automation. Existing enrollments freeze in place; no new contacts enroll.get_automation_statsGet aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.list_automation_enrollmentsList active and historical enrollments for an automation.list_workspacesList workspaces the authenticated user has access to (owner or member).get_workspaceGet the current workspace (the one the API key belongs to).get_brandGet the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.update_brandUpdate 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. companyName/websiteUrl/companyAddress also fill the matching merge tags in templates.get_workspace_usageGet the current month's send count, contact count, and plan limits.list_suppressionsList suppressed email addresses (bounces, complaints, unsubscribes, manual).add_suppressionAdd an email to the suppression list. Future sends to this address will be blocked.remove_suppressionwrite/deleteRemove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.list_webhooksList configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.create_webhookRegister an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.delete_webhookwrite/deleteDelete an outgoing webhook endpoint.regenerate_webhook_secretwrite/deleteRotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
Tool changes
- 2026-10-21: whoami, send_email, send_campaign_test, create_campaign, design_email_template, list_campaigns, create_contact, search_contacts, list_contacts, import_contacts, list_domains, check_domain_health
- 2026-10-16: whoami, send_email, send_campaign_test, create_campaign, design_email_template, list_campaigns, create_contact, search_contacts, list_contacts, import_contacts, list_domains, check_domain_health
Repository · Website · JSON · Text for agents · Registry updated 2026-07-12