Send16
REMOTE · MCP.SEND16.COM
Email, SMS and marketing automation: campaigns, contacts, automations and stats from Claude.
Available components
Last scanned (13 hours ago)
Scores higher than 18% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security86
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 401, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism. View diagnostics → Pass
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
Checks we ran (4)
- TLS certificate
- Authorization
- HSTS header
- DNSSEC
Checks we could not complete (7)
These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.
- HTTPS in Endpoint SecurityHTTPS enforcement could not be verified: the plaintext port answered with HTTP 401, which proves neither a plaintext path nor enforcement.
- Transport in Transport & Reachability (scores 0 for this)Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.
- Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
- Tool coverage in Tool Coverage (scores 0 for this)Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- Tool safety in Tool Safety (scores 0 for this)Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- Capabilities in Capabilities (scores 0 for this)Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 30 Oct 26 −39
- Endpoint reachability: reachable → behind authorisation ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- Stability: 0.03 → unverified ▼ security
- Authorization: fail → pass ▲ security
- First check of Authorization: pass security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 29 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 28 Oct 26 73
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.send16.com
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.send16.com | CN=YE2,O=Let's Encrypt,C=US | 25 Oct 2026 | 23 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 66467fe7214230765fea95f18390e976505 |
| SANs: *.send16.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.send16.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| send16.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.send16.com/.well-known/oauth-protected-resource", scope="read write"
Bearer resource_metadata="https://mcp.send16.com/.well-known/oauth-protected-resource", scope="read write" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| www-authenticate | Bearer resource_metadata="https://mcp.send16.com/.well-known/oauth-protected-resource", scope="read write" |
Protected resource metadata
| Document | https://mcp.send16.com/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.send16.com |
| Authorisation server | https://api.send16.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.send16.com | Auth required | 401 | |
| http (plaintext) | http://mcp.send16.com | Inconclusive | 401 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
list_messages List sent messages ~153
List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| created_after | string | – | ISO-8601 timestamp lower bound |
| created_before | string | – | ISO-8601 timestamp upper bound |
| from_email | string | – | Sender email filter |
| limit | integer | – | Page size (default 50) |
| offset | integer | – | Page offset |
| source | string | – | Restrict to one message source |
| status | string | – | Delivery status filter |
| to_email | string | – | Recipient email filter |
No output schema declared.
No examples provided.
list_segments List segments ~46
List dynamic segments. Segments compute their members from a filter expression at send time.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
list_suppressions List suppressions ~68
List suppressed email addresses (bounces, complaints, unsubscribes, manual).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| limit | integer | – | – |
| offset | integer | – | – |
| reason | string | – | – |
No output schema declared.
No examples provided.
list_templates List starter templates ~39
List starter-gallery email templates available to every workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
list_topics List subscription topics ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
list_webhooks List webhooks ~56
List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
list_workspace_templates List saved templates ~62
List 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
list_workspaces List workspaces ~44
List workspaces the authenticated user has access to (owner or member).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
mark_convo_read Mark conversation read ~51
Mark a conversation as read for the current viewer.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| convoId | string | yes | Conversation ID |
No output schema declared.
No examples provided.
pause_automation Pause automation ~56
Pause an automation. Existing enrollments freeze in place; no new contacts enroll.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| automationId | string | yes | Automation ID |
No output schema declared.
No examples provided.
pause_campaign Pause campaign ~55
Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| campaignId | string | yes | Campaign ID |
No output schema declared.
No examples provided.
pre_send_review Review email before sending ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| audience | string | – | Short description of the audience (helps tone analysis) |
| html | string | yes | Full HTML body to review |
| subject | string | yes | Email subject line |
No output schema declared.
No examples provided.
preview_campaign_recipients Preview campaign recipients ~58
Preview the recipient set for a campaign before sending. Returns count + sample list.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| campaignId | string | yes | Campaign ID |
No output schema declared.
No examples provided.
preview_segment Preview segment ~49
Preview the contacts that match a segment without sending.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| segmentId | string | yes | Segment ID |
No output schema declared.
No examples provided.
regenerate_webhook_secret Rotate webhook secret ~60
Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| webhookId | string | yes | Webhook ID |
No output schema declared.
No examples provided.
register_for_event Register someone for an event ~153
Register 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| city | string | – | – |
| company | string | – | – |
| string | yes | – | |
| eventId | string | yes | Event ID (see list_events) |
| firstName | string | – | – |
| lastName | string | – | – |
| marketingOptIn | boolean | – | Only when the person asked to hear about future events |
No output schema declared.
No examples provided.
remove_contact_from_audience Remove contact from audience ~59
Remove a contact from an audience.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| audienceId | string | yes | Audience ID |
| contactId | string | yes | Contact ID |
No output schema declared.
No examples provided.
remove_suppression Remove suppression ~59
Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| string | yes | – |
No output schema declared.
No examples provided.
render_email_content Render email HTML ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| content | object | yes | EmailContent JSON (from get_template or the builder) |
| variables | object | – | Variable replacements (e.g. {firstName:'Alice'}) |
No output schema declared.
No examples provided.
resume_campaign Resume campaign ~72
Resume 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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| campaignId | string | yes | Campaign ID |
No output schema declared.
No examples provided.
save_template Save template ~359
Save 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 {{first_name}} to Send16's format, and stores the HTML exactly as designed. For best results across Gmail, Outlook and Apple Mail the HTML should be email-safe: table-based layout around 600px wide, inline styles, PNG/JPG/GIF images in <img> tags (not SVG or CSS backgrounds), web-safe font fallbacks, and alt text on images. Returns the template id; follow up with send_template_test to send a preview.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| category | string | – | Library category, e.g. newsletter, onboarding, announcement, ecommerce, transactional. Defaults to custom. |
| convertMergeTags | boolean | – | Convert common merge tags ({{first_name}}, *|FNAME|*) to Send16 tags (default true) |
| description | string | – | Short description shown in the template library |
| hostImages | boolean | – | Copy every image onto Send16 hosting so it can't break later (default true) |
| html | string | yes | The complete email HTML (a full <html> document or a body fragment) |
| mode | string | – | hybrid (default): keep the exact HTML, convertible to editable blocks later. html: exact HTML only. blocks: convert to editable builder blocks now (lossy for complex designs). |
| name | string | yes | Template name, e.g. 'October newsletter' |
No output schema declared.
No examples provided.
schedule_campaign Schedule or send campaign ~326
Schedule (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 workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| audienceId | string | – | – |
| campaignId | string | yes | Campaign ID |
| scheduleAt | string | – | ISO-8601 future datetime; omit to send immediately |
| segmentId | string | – | – |
| topicId | string | – | – |
No output schema declared.
No examples provided.
screener_decide Decide screened sender ~83
Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| convoId | string | yes | Conversation ID |
| decision | string | yes | Screener decision |
No output schema declared.
No examples provided.
search_contacts Search contacts ~90
Search contacts by email address or name. Returns matching contacts with their tags and subscription status.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| page | integer | – | Page number |
| pageSize | integer | – | Results per page (max 100) |
| query | string | yes | Search query (matches against email, first name, last name) |
No output schema declared.
No examples provided.
send_broadcast Send broadcast ~447
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. 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 workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| audienceId | string | – | Send to all contacts in this audience |
| fromEmail | string | yes | Must be a verified domain |
| fromName | string | yes | – |
| html | string | – | Full HTML body (one of html/templateSlug required) |
| name | string | yes | Internal campaign name |
| previewText | string | – | – |
| replyTo | string | – | – |
| scheduleAt | string | – | ISO-8601 future datetime; omit to send immediately |
| segmentId | string | – | Send to all contacts matching this segment |
| subject | string | yes | – |
| templateSlug | string | – | Workspace template slug to use |
| topicId | string | – | Send to all subscribers of this topic |
No output schema declared.
No examples provided.
send_campaign_test Send campaign test ~114
Send 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).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| campaignId | string | yes | Campaign ID to send test for |
| testEmail | string | yes | Email address to send the test to |
No output schema declared.
No examples provided.
send_email Send email ~501
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. 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 workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| from_email | string | – | Sender email address (must be from a verified domain) |
| from_name | string | – | Sender display name (e.g. "Acme Co") |
| html | string | – | HTML body content |
| reply_to | string | – | Reply-to email address |
| subject | string | yes | Email subject line |
| template | string | – | Transactional template slug to use instead of inline content |
| text | string | – | Plain text body content |
| to | – | yes | Recipient email address or array of addresses (max 50) |
| variables | object | – | Template variables for merge tags |
No output schema declared.
No examples provided.
send_event Fire contact event ~180
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>`. Confirm with the user first if the event could start an automation that emails the contact.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| contactEmail | string | – | Contact email (provide either this or contactId) |
| contactId | string | – | Contact UUID (provide either this or contactEmail) |
| name | string | yes | Event name (e.g. 'trial_started', 'order.placed') |
| occurredAt | string | – | ISO-8601 timestamp; defaults to now |
| payload | object | – | Arbitrary JSON metadata available to automation conditions |
No output schema declared.
No examples provided.
send_reply Send inbox reply ~145
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. 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 (workspace under review, nothing was sent, tell the user to contact support).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| convoId | string | yes | Conversation ID |
| html | string | – | HTML body of the reply |
| text | string | – | Plain text body of the reply |
No output schema declared.
No examples provided.
send_template_test Send template test ~159
Send 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. 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).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| string | yes | Where to send the preview | |
| templateId | string | yes | Template id from save_template or list_workspace_templates |
No output schema declared.
No examples provided.
update_action Update action ~99
Update an Action (toggle enabled, change template, change event name).
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | Action ID |
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| delaySeconds | integer | – | – |
| enabled | boolean | – | – |
| eventName | string | – | – |
| name | string | – | – |
| sendOnce | boolean | – | – |
| templateSlug | string | – | – |
No output schema declared.
No examples provided.
update_brand Update brand settings ~212
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. companyName/websiteUrl/companyAddress also fill the matching merge tags in templates.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| companyAddress | string | – | Physical postal address. Fills {{companyAddress}} and is appended to the unsubscribe footer on campaigns lacking one; required by anti-spam law in several markets. |
| companyName | string | – | Fills {{companyName}} |
| designSpec | string | – | Markdown DESIGN.md spec for AI generation |
| fontFamily | string | – | Body font family |
| logoUrl | string | – | – |
| primaryColor | string | – | Hex color (e.g. '#4F46E5') |
| secondaryColor | string | – | Hex color |
| websiteUrl | string | – | Fills {{websiteUrl}} |
No output schema declared.
No examples provided.
update_campaign Update draft campaign ~250
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| audienceIds | array | – | Retarget to these audience IDs (see list_audiences). Sets recipient type 'lists'. |
| campaignId | string | yes | Campaign ID |
| contactIds | array | – | Retarget to these specific contact IDs |
| fromEmail | string | – | – |
| fromName | string | – | – |
| html | string | – | – |
| name | string | – | Campaign name (internal label) |
| previewText | string | – | – |
| replyTo | string | – | – |
| segmentId | string | – | Retarget to this segment (see list_segments) |
| sendToAll | boolean | – | Retarget to all subscribed contacts in the workspace |
| subject | string | – | – |
| tagIds | array | – | Retarget to contacts with these tag IDs |
No output schema declared.
No examples provided.
update_contact Update contact ~84
Update a contact's profile fields, custom fields, or subscription state.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| contactId | string | yes | Contact ID |
| customFields | object | – | – |
| firstName | string | – | – |
| lastName | string | – | – |
| subscribed | boolean | – | – |
No output schema declared.
No examples provided.
update_convo Update conversation ~88
Update conversation status (open/closed/archived/snoozed) or assignee.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| assigneeId | string|null | – | Workspace member user ID, or null to unassign |
| convoId | string | yes | Conversation ID |
| state | string | – | New status |
No output schema declared.
No examples provided.
update_topic Update subscription topic ~72
Update a subscription topic (name, description, default).
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
| description | string | – | – |
| isDefault | boolean | – | – |
| name | string | – | – |
| topicId | string | yes | Topic ID |
No output schema declared.
No examples provided.
whoami Check account ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | – | Send16 API key (overrides SEND16_API_KEY env var) |
No output schema declared.
No examples provided.
How do I install the Send16 MCP server?
Send16 is a hosted endpoint at https://mcp.send16.com/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.send16.com
claude mcp add --transport http com-send16-send16 'https://mcp.send16.com/'
What is the Send16 MCP server?
Send16 is an MCP server listed in the public MCP registry as com.send16/send16. Email, SMS and marketing automation: campaigns, contacts, automations and stats from Claude. This page covers its hosted endpoint (https://mcp.send16.com).
Is the Send16 MCP server safe to use?
Send16 scores 34 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Send16 MCP server expose?
Send16 exposes 87 tools: whoami, send_email, send_campaign_test, create_campaign, design_email_template, and 82 more. Their descriptions and schemas cost roughly 9,019 tokens of context every time the server is loaded.
Does the Send16 MCP server require authentication?
Yes. Send16 asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Send16 MCP server still maintained?
Send16 is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Send16 MCP server?
VerifyMCP ran 4 checks on Send16, covering TLS certificate, Authorization, HSTS header and DNSSEC. 7 items could not be completed, a gap on our side rather than a finding about Send16: HTTPS, Transport, Schema quality, Stability and 3 more. 6 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.