# send16-mcp MCP server

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

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-spruikco-send16-mcp
- Repository: https://github.com/spruikco/send16-mcp
- Website: https://send16.com

## Install
- Command: `npx -y send16-mcp`
- Endpoint: https://mcp.send16.com/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Package: Npm send16-mcp v0.5.8
- Environment variable: SEND16_API_KEY (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://mcp.send16.com/mcp

## Tools
- 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 see which `from` addresses are allowed. Endpoint: https://mcp.send16.com/mcp
- 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 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. Endpoint: https://mcp.send16.com/mcp
- send_campaign_test - Send a test email for an existing campaign to preview how it will look in recipients' inboxes. Endpoint: https://mcp.send16.com/mcp
- create_campaign - 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. Endpoint: https://mcp.send16.com/mcp
- design_email_template - 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. Endpoint: https://mcp.send16.com/mcp
- list_campaigns - 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. Endpoint: https://mcp.send16.com/mcp
- create_contact - 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. Endpoint: https://mcp.send16.com/mcp
- search_contacts - Search contacts by email address or name. Returns matching contacts with their tags and subscription status. Endpoint: https://mcp.send16.com/mcp
- list_contacts - List all contacts with optional filtering by subscription status and tag. Supports pagination. Endpoint: https://mcp.send16.com/mcp
- import_contacts - 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). Endpoint: https://mcp.send16.com/mcp
- list_domains - List all sending domains configured in your Send16 workspace, including their verification status and DNS records. Endpoint: https://mcp.send16.com/mcp
- check_domain_health - Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup. Endpoint: https://mcp.send16.com/mcp
- get_campaign_stats - Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics. Endpoint: https://mcp.send16.com/mcp
- get_deliverability_status - Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.) Endpoint: https://mcp.send16.com/mcp
- list_automations - List all automations in the workspace, including draft/active/paused status and trigger types. Endpoint: https://mcp.send16.com/mcp
- get_automation - Get a single automation by ID, including its trigger, steps, and current status. Endpoint: https://mcp.send16.com/mcp
- enroll_in_automation - Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment. Endpoint: https://mcp.send16.com/mcp
- send_event - 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>`. Endpoint: https://mcp.send16.com/mcp
- list_templates - List starter-gallery email templates available to every workspace. Endpoint: https://mcp.send16.com/mcp
- get_template - Get a single starter template by ID, including its EmailContent JSON. Endpoint: https://mcp.send16.com/mcp
- render_email_content - 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. Endpoint: https://mcp.send16.com/mcp
- add_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. Endpoint: https://mcp.send16.com/mcp
- pre_send_review - 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. Endpoint: https://mcp.send16.com/mcp
- generate_email_from_url - 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. Endpoint: https://mcp.send16.com/mcp
- list_messages - List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source. Endpoint: https://mcp.send16.com/mcp
- get_message - Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...). Endpoint: https://mcp.send16.com/mcp
- get_message_events - Get just the delivery event timeline for a message — no body or recipient details. Endpoint: https://mcp.send16.com/mcp
- list_convos - 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. Endpoint: https://mcp.send16.com/mcp
- get_convo - Get a single conversation with its full thread of posts (incoming + outgoing). Endpoint: https://mcp.send16.com/mcp
- send_reply - 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. Endpoint: https://mcp.send16.com/mcp
- mark_convo_read - Mark a conversation as read for the current viewer. Endpoint: https://mcp.send16.com/mcp
- update_convo - Update conversation status (open/closed/archived/snoozed) or assignee. Endpoint: https://mcp.send16.com/mcp
- add_convo_note - Add a private internal note on a conversation. Notes are visible only to workspace members. Endpoint: https://mcp.send16.com/mcp
- screener_decide - Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach. Endpoint: https://mcp.send16.com/mcp
- list_inbox_counts - Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold). Endpoint: https://mcp.send16.com/mcp
- list_topics - 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. Endpoint: https://mcp.send16.com/mcp
- create_topic - Create a new subscription topic. Contacts opt into topics individually via the preference center. Endpoint: https://mcp.send16.com/mcp
- update_topic - Update a subscription topic (name, description, default). Endpoint: https://mcp.send16.com/mcp
- delete_topic - Delete a subscription topic. All subscribers will be detached. Endpoint: https://mcp.send16.com/mcp
- list_actions - List Actions. Actions fire a transactional template when a custom event arrives — Plunk-style 'event_name → template' pairings, simpler than full automations. Endpoint: https://mcp.send16.com/mcp
- get_action - Get a single Action with its trigger config and template binding. Endpoint: https://mcp.send16.com/mcp
- create_action - Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact. Endpoint: https://mcp.send16.com/mcp
- update_action - Update an Action (toggle enabled, change template, change event name). Endpoint: https://mcp.send16.com/mcp
- delete_action - Delete an Action. Endpoint: https://mcp.send16.com/mcp
- list_audiences - List audiences (lists). An audience is a static, manually-managed group of contacts. Endpoint: https://mcp.send16.com/mcp
- create_audience - Create a new audience. Endpoint: https://mcp.send16.com/mcp
- add_contacts_to_audience - Add contacts (by ID) to an audience. Endpoint: https://mcp.send16.com/mcp
- remove_contact_from_audience - Remove a contact from an audience. Endpoint: https://mcp.send16.com/mcp
- delete_audience - Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed. Endpoint: https://mcp.send16.com/mcp
- list_segments - List dynamic segments. Segments compute their members from a filter expression at send time. Endpoint: https://mcp.send16.com/mcp
- preview_segment - Preview the contacts that match a segment without sending. Endpoint: https://mcp.send16.com/mcp
- update_contact - Update a contact's profile fields, custom fields, or subscription state. Endpoint: https://mcp.send16.com/mcp
- delete_contact - Delete a contact and all associated events. Irreversible. Endpoint: https://mcp.send16.com/mcp
- get_contact_timeline - Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes. Endpoint: https://mcp.send16.com/mcp
- get_contact_health_score - Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies). Endpoint: https://mcp.send16.com/mcp
- send_broadcast - 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. Endpoint: https://mcp.send16.com/mcp
- schedule_campaign - Schedule (or send immediately) an existing draft campaign to an audience/segment/topic. Endpoint: https://mcp.send16.com/mcp
- update_campaign - 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. Endpoint: https://mcp.send16.com/mcp
- pause_campaign - Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt. Endpoint: https://mcp.send16.com/mcp
- resume_campaign - Resume a paused campaign. Endpoint: https://mcp.send16.com/mcp
- duplicate_campaign - 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. Endpoint: https://mcp.send16.com/mcp
- delete_campaign - Delete a draft campaign. Sent campaigns cannot be deleted (only archived). Endpoint: https://mcp.send16.com/mcp
- preview_campaign_recipients - Preview the recipient set for a campaign before sending. Returns count + sample list. Endpoint: https://mcp.send16.com/mcp
- activate_automation - Activate an automation. New events matching its triggers will start enrolling contacts. Endpoint: https://mcp.send16.com/mcp
- pause_automation - Pause an automation. Existing enrollments freeze in place; no new contacts enroll. Endpoint: https://mcp.send16.com/mcp
- get_automation_stats - Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step. Endpoint: https://mcp.send16.com/mcp
- list_automation_enrollments - List active and historical enrollments for an automation. Endpoint: https://mcp.send16.com/mcp
- list_workspaces - List workspaces the authenticated user has access to (owner or member). Endpoint: https://mcp.send16.com/mcp
- get_workspace - Get the current workspace (the one the API key belongs to). Endpoint: https://mcp.send16.com/mcp
- get_brand - Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts. Endpoint: https://mcp.send16.com/mcp
- update_brand - 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. Endpoint: https://mcp.send16.com/mcp
- get_workspace_usage - Get the current month's send count, contact count, and plan limits. Endpoint: https://mcp.send16.com/mcp
- list_suppressions - List suppressed email addresses (bounces, complaints, unsubscribes, manual). Endpoint: https://mcp.send16.com/mcp
- add_suppression - Add an email to the suppression list. Future sends to this address will be blocked. Endpoint: https://mcp.send16.com/mcp
- remove_suppression - Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again. Endpoint: https://mcp.send16.com/mcp
- list_webhooks - List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature. Endpoint: https://mcp.send16.com/mcp
- create_webhook - Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature. Endpoint: https://mcp.send16.com/mcp
- delete_webhook - Delete an outgoing webhook endpoint. Endpoint: https://mcp.send16.com/mcp
- regenerate_webhook_secret - Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once. Endpoint: https://mcp.send16.com/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.spruikco
- Version: 0.5.8
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 12, 2026
- Source: https://registry.modelcontextprotocol.io
