send16-mcp

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

我該用這個嗎

品質與安全性

A
說明品質
94%
結構描述完整度
96%
命名品質
97%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(1)

  • LOWTool 'regenerate_webhook_secret' description lacks action verb在 regenerate_webhook_secret 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~11,929Token(工具定義)
~1.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 9.32%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "send16-mcp": {
      "command": "npx",
      "args": [
        "send16-mcp"
      ]
    }
  }
}

可執行的套件

npmsend16-mcp0.5.8stdio

遠端端點

https://mcp.send16.com/mcpstreamable-http

它能做什麼

工具清單

工具(79)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴send_email(to, subject, html, text, from_name, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "to": {
      "anyOf": [
        {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        {
          "minItems": 1,
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          }
        }
      ],
      "description": "Recipient email address or array of addresses (max 50)"
    },
    "subject": {
      "type": "string",
      "maxLength": 255,
      "description": "Email subject line"
    },
    "html": {
      "description": "HTML body content",
      "type": "string"
    },
    "text": {
      "description": "Plain text body content",
      "type": "string"
    },
    "from_name": {
      "description": "Sender display name (e.g. \"Acme Co\")",
      "type": "string",
      "maxLength": 255
    },
    "from_email": {
      "description": "Sender email address (must be from a verified domain)",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "reply_to": {
      "description": "Reply-to email address",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "template": {
      "description": "Transactional template slug to use instead of inline content",
      "type": "string"
    },
    "variables": {
      "description": "Template variables for merge tags",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "to",
    "subject"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_campaign_test(campaignId, testEmail, apiKey)

Send a test email for an existing campaign to preview how it will look in recipients' inboxes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID to send test for"
    },
    "testEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Email address to send the test to"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId",
    "testEmail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_campaign(name, subject, fromName, fromEmail, replyTo, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Campaign name (internal label)"
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Email subject line"
    },
    "fromName": {
      "type": "string",
      "maxLength": 100,
      "description": "Sender display name"
    },
    "fromEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Sender email (must be from a verified domain)"
    },
    "replyTo": {
      "description": "Reply-to email address",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "previewText": {
      "description": "Preview text shown in inbox alongside subject",
      "type": "string",
      "maxLength": 200
    },
    "html": {
      "description": "Full HTML body for the email (skip to design later)",
      "type": "string"
    },
    "audienceIds": {
      "description": "Target these audience IDs (see list_audiences)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "segmentId": {
      "description": "Target this segment (see list_segments)",
      "type": "string"
    },
    "contactIds": {
      "description": "Target these specific contact IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tagIds": {
      "description": "Target contacts with these tag IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sendToAll": {
      "description": "Target all subscribed contacts in the workspace",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "subject",
    "fromName",
    "fromEmail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪design_email_template(type, style, description, brandColor, companyName, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "marketing",
        "transactional",
        "newsletter",
        "announcement",
        "welcome",
        "promotional"
      ],
      "description": "Type of email template to generate"
    },
    "style": {
      "type": "string",
      "enum": [
        "minimal",
        "modern",
        "bold",
        "elegant",
        "playful",
        "corporate"
      ],
      "description": "Visual style/aesthetic for the template"
    },
    "description": {
      "type": "string",
      "minLength": 10,
      "maxLength": 1000,
      "description": "Detailed description of the email content and purpose (e.g. 'Welcome email for a SaaS product with feature highlights and CTA to start trial')"
    },
    "brandColor": {
      "description": "Primary brand color as hex code (e.g. \"#4F46E5\")",
      "type": "string"
    },
    "companyName": {
      "description": "Company or brand name to include in the template",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "type",
    "style",
    "description"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_campaigns(status, search, page, pageSize, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter campaigns by status",
      "type": "string",
      "enum": [
        "draft",
        "scheduled",
        "sending",
        "sent",
        "paused"
      ]
    },
    "search": {
      "description": "Case-insensitive substring match on campaign name or subject",
      "type": "string",
      "maxLength": 200
    },
    "page": {
      "default": 1,
      "description": "Page number",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "default": 20,
      "description": "Results per page (max 100)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_contact(email, firstName, lastName, audienceIds, tags, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Contact email address"
    },
    "firstName": {
      "description": "Contact first name",
      "type": "string",
      "maxLength": 255
    },
    "lastName": {
      "description": "Contact last name",
      "type": "string",
      "maxLength": 255
    },
    "audienceIds": {
      "description": "Add the contact to these audience IDs (see list_audiences)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tags": {
      "description": "Tag NAMES to assign — matched case-insensitively, created if missing",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "customFields": {
      "description": "Custom field key-value pairs",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "email"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_contacts(query, page, pageSize, apiKey)

Search contacts by email address or name. Returns matching contacts with their tags and subscription status.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Search query (matches against email, first name, last name)"
    },
    "page": {
      "default": 1,
      "description": "Page number",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "default": 20,
      "description": "Results per page (max 100)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_contacts(page, pageSize, subscribed, tagId, apiKey)

List all contacts with optional filtering by subscription status and tag. Supports pagination.

輸入結構描述

{
  "type": "object",
  "properties": {
    "page": {
      "default": 1,
      "description": "Page number",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "default": 20,
      "description": "Results per page (max 100)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "subscribed": {
      "description": "Filter by subscription status",
      "type": "string",
      "enum": [
        "true",
        "false"
      ]
    },
    "tagId": {
      "description": "Filter by tag ID",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡import_contacts(csvData, audienceIds, tags, updateExisting, apiKey)

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).

輸入結構描述

{
  "type": "object",
  "properties": {
    "csvData": {
      "type": "string",
      "description": "CSV string with headers. Required column: \"email\". Optional: \"firstName\", \"lastName\""
    },
    "audienceIds": {
      "description": "Add all imported contacts to these audience IDs (see list_audiences / create_audience)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tags": {
      "description": "Tag NAMES to apply to all imported contacts — matched case-insensitively, created if missing",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "updateExisting": {
      "default": false,
      "description": "Whether to update contacts that already exist",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "csvData"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_domains(apiKey)

List all sending domains configured in your Send16 workspace, including their verification status and DNS records.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_domain_health(domainId, apiKey)

Check the DNS health of a specific domain, including DKIM, SPF, DMARC, and MX record verification status. Triggers a fresh DNS lookup.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domainId": {
      "type": "string",
      "description": "Domain ID to check health for"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "domainId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_campaign_stats(campaignId, apiKey)

Get detailed performance statistics for a specific campaign including open rate, click rate, bounce rate, and delivery metrics.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID to get stats for"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_deliverability_status(apiKey)

Get your workspace's deliverability summary — sending reputation, domain authentication status, and recent bounce/complaint health. (Deliverability Hub plan feature.)

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_automations(apiKey)

List all automations in the workspace, including draft/active/paused status and trigger types.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_automation(automationId, apiKey)

Get a single automation by ID, including its trigger, steps, and current status.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡enroll_in_automation(automationId, contactId, apiKey)

Manually enroll a contact in an active automation. The automation must be in 'active' status. Use send_event for event-driven enrollment.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID to enroll into"
    },
    "contactId": {
      "type": "string",
      "description": "Contact UUID (use search_contacts to look up by email first)"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId",
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_event(name, contactId, contactEmail, payload, occurredAt, ...)

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>`.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[a-z0-9_.-]+$",
      "description": "Event name (e.g. 'trial_started', 'order.placed')"
    },
    "contactId": {
      "description": "Contact UUID (provide either this or contactEmail)",
      "type": "string"
    },
    "contactEmail": {
      "description": "Contact email (provide either this or contactId)",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "payload": {
      "description": "Arbitrary JSON metadata available to automation conditions",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "occurredAt": {
      "description": "ISO-8601 timestamp; defaults to now",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_templates(apiKey)

List starter-gallery email templates available to every workspace.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_template(templateId, apiKey)

Get a single starter template by ID, including its EmailContent JSON.

輸入結構描述

{
  "type": "object",
  "properties": {
    "templateId": {
      "type": "string",
      "description": "Template ID (slug)"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "templateId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡render_email_content(content, variables, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "content": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "EmailContent JSON (from get_template or the builder)"
    },
    "variables": {
      "description": "Variable replacements (e.g. {firstName:'Alice'})",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "content"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_domain(domain, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 3,
      "maxLength": 255,
      "description": "FQDN to register (e.g. 'mail.example.com')"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "domain"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡pre_send_review(subject, html, audience, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Email subject line"
    },
    "html": {
      "type": "string",
      "description": "Full HTML body to review"
    },
    "audience": {
      "description": "Short description of the audience (helps tone analysis)",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "subject",
    "html"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡generate_email_from_url(url, instructions, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Public URL to scrape and turn into an email"
    },
    "instructions": {
      "description": "Additional guidance — e.g. 'announcement style, focus on the new feature'",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡list_messages(to_email, from_email, status, source, created_after, ...)

List messages from the unified send log (transactional + campaign). Filter by recipient, sender, status, date range, or source.

輸入結構描述

{
  "type": "object",
  "properties": {
    "to_email": {
      "description": "Recipient email filter",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "from_email": {
      "description": "Sender email filter",
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "status": {
      "description": "Delivery status filter",
      "type": "string",
      "enum": [
        "queued",
        "sent",
        "delivered",
        "opened",
        "clicked",
        "bounced",
        "failed"
      ]
    },
    "source": {
      "description": "Restrict to one message source",
      "type": "string",
      "enum": [
        "transactional",
        "campaign"
      ]
    },
    "created_after": {
      "description": "ISO-8601 timestamp lower bound",
      "type": "string"
    },
    "created_before": {
      "description": "ISO-8601 timestamp upper bound",
      "type": "string"
    },
    "limit": {
      "description": "Page size (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Page offset",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_message(id, apiKey)

Fetch a single message with its full event timeline (created → sent → delivered → opened → clicked → ...).

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Message ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_message_events(id, apiKey)

Get just the delivery event timeline for a message — no body or recipient details.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Message ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_convos(state, mailboxId, label, search, limit, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "state": {
      "description": "Conversation status",
      "type": "string",
      "enum": [
        "open",
        "closed",
        "archived",
        "snoozed"
      ]
    },
    "mailboxId": {
      "description": "Filter to one mailbox",
      "type": "string"
    },
    "label": {
      "description": "Filter by label slug (comma-separate for multiple)",
      "type": "string"
    },
    "search": {
      "description": "Full-text search across subject + body",
      "type": "string"
    },
    "limit": {
      "description": "Page size (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_convo(id, apiKey)

Get a single conversation with its full thread of posts (incoming + outgoing).

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Conversation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_reply(convoId, html, text, apiKey)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "convoId": {
      "type": "string",
      "description": "Conversation ID"
    },
    "html": {
      "description": "HTML body of the reply",
      "type": "string"
    },
    "text": {
      "description": "Plain text body of the reply",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "convoId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢mark_convo_read(convoId, apiKey)

Mark a conversation as read for the current viewer.

輸入結構描述

{
  "type": "object",
  "properties": {
    "convoId": {
      "type": "string",
      "description": "Conversation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "convoId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_convo(convoId, state, assigneeId, apiKey)

Update conversation status (open/closed/archived/snoozed) or assignee.

輸入結構描述

{
  "type": "object",
  "properties": {
    "convoId": {
      "type": "string",
      "description": "Conversation ID"
    },
    "state": {
      "description": "New status",
      "type": "string",
      "enum": [
        "open",
        "closed",
        "archived",
        "snoozed"
      ]
    },
    "assigneeId": {
      "description": "Workspace member user ID, or null to unassign",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "convoId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_convo_note(convoId, body, apiKey)

Add a private internal note on a conversation. Notes are visible only to workspace members.

輸入結構描述

{
  "type": "object",
  "properties": {
    "convoId": {
      "type": "string",
      "description": "Conversation ID"
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "description": "Note body (markdown supported)"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "convoId",
    "body"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪screener_decide(convoId, decision, apiKey)

Decide a pending screener conversation (first-time sender). 'allow' lets future emails through, 'reject' blocks, 'cold' marks as cold outreach.

輸入結構描述

{
  "type": "object",
  "properties": {
    "convoId": {
      "type": "string",
      "description": "Conversation ID"
    },
    "decision": {
      "type": "string",
      "enum": [
        "allow",
        "reject",
        "cold"
      ],
      "description": "Screener decision"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "convoId",
    "decision"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_inbox_counts(apiKey)

Get unread/total counts per category and label for the inbox sidebar (newsletter, transactional, marketing, calendar, social, cold).

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_topic(name, slug, description, isDefault, apiKey)

Create a new subscription topic. Contacts opt into topics individually via the preference center.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Display name shown to contacts"
    },
    "slug": {
      "description": "URL-safe slug (auto-derived from name if omitted)",
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[a-z0-9-]+$"
    },
    "description": {
      "description": "Description shown in the preference center",
      "type": "string",
      "maxLength": 500
    },
    "isDefault": {
      "description": "Auto-subscribe new contacts to this topic",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_topic(topicId, name, description, isDefault, apiKey)

Update a subscription topic (name, description, default).

輸入結構描述

{
  "type": "object",
  "properties": {
    "topicId": {
      "type": "string",
      "description": "Topic ID"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "isDefault": {
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "topicId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_topic(topicId, apiKey)

Delete a subscription topic. All subscribers will be detached.

輸入結構描述

{
  "type": "object",
  "properties": {
    "topicId": {
      "type": "string",
      "description": "Topic ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "topicId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_action(actionId, apiKey)

Get a single Action with its trigger config and template binding.

輸入結構描述

{
  "type": "object",
  "properties": {
    "actionId": {
      "type": "string",
      "description": "Action ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "actionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_action(name, eventName, templateSlug, enabled, sendOnce, ...)

Create an Action that maps an event name to a transactional template. Each matching event sends one email to the contact.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Display name"
    },
    "eventName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Event name to match (e.g. 'order.placed')"
    },
    "templateSlug": {
      "type": "string",
      "description": "Transactional template slug to send"
    },
    "enabled": {
      "default": true,
      "type": "boolean"
    },
    "sendOnce": {
      "description": "Only send once per contact regardless of how many times the event fires",
      "type": "boolean"
    },
    "delaySeconds": {
      "description": "Delay before sending",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "eventName",
    "templateSlug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_action(actionId, name, eventName, templateSlug, enabled, ...)

Update an Action (toggle enabled, change template, change event name).

輸入結構描述

{
  "type": "object",
  "properties": {
    "actionId": {
      "type": "string",
      "description": "Action ID"
    },
    "name": {
      "type": "string"
    },
    "eventName": {
      "type": "string"
    },
    "templateSlug": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "sendOnce": {
      "type": "boolean"
    },
    "delaySeconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "actionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_action(actionId, apiKey)

Delete an Action.

輸入結構描述

{
  "type": "object",
  "properties": {
    "actionId": {
      "type": "string",
      "description": "Action ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "actionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_audiences(apiKey)

List audiences (lists). An audience is a static, manually-managed group of contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_audience(name, description, apiKey)

Create a new audience.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "type": "string",
      "maxLength": 500
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_contacts_to_audience(audienceId, contactIds, apiKey)

Add contacts (by ID) to an audience.

輸入結構描述

{
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "description": "Audience ID"
    },
    "contactIds": {
      "minItems": 1,
      "maxItems": 1000,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Contact IDs to add"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "audienceId",
    "contactIds"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴remove_contact_from_audience(audienceId, contactId, apiKey)

Remove a contact from an audience.

輸入結構描述

{
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "description": "Audience ID"
    },
    "contactId": {
      "type": "string",
      "description": "Contact ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "audienceId",
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_audience(audienceId, apiKey)

Delete an audience (list). Contacts are not deleted — only the list and its memberships are removed.

輸入結構描述

{
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "description": "Audience ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "audienceId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡list_segments(apiKey)

List dynamic segments. Segments compute their members from a filter expression at send time.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪preview_segment(segmentId, apiKey)

Preview the contacts that match a segment without sending.

輸入結構描述

{
  "type": "object",
  "properties": {
    "segmentId": {
      "type": "string",
      "description": "Segment ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "segmentId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_contact(contactId, firstName, lastName, customFields, subscribed, ...)

Update a contact's profile fields, custom fields, or subscription state.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contactId": {
      "type": "string",
      "description": "Contact ID"
    },
    "firstName": {
      "type": "string"
    },
    "lastName": {
      "type": "string"
    },
    "customFields": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "subscribed": {
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_contact(contactId, apiKey)

Delete a contact and all associated events. Irreversible.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contactId": {
      "type": "string",
      "description": "Contact ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_contact_timeline(contactId, limit, cursor, apiKey)

Get a contact's full activity timeline: emails received, events fired, opens, clicks, automation enrollments, topic changes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contactId": {
      "type": "string",
      "description": "Contact ID"
    },
    "limit": {
      "description": "Page size",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "cursor": {
      "description": "Pagination cursor",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_contact_health_score(contactId, apiKey)

Get a contact's 0-100 health score based on recent engagement (opens, clicks, replies).

輸入結構描述

{
  "type": "object",
  "properties": {
    "contactId": {
      "type": "string",
      "description": "Contact ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "contactId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_broadcast(name, subject, fromName, fromEmail, replyTo, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Internal campaign name"
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "fromName": {
      "type": "string",
      "maxLength": 255
    },
    "fromEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Must be a verified domain"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "previewText": {
      "type": "string",
      "maxLength": 255
    },
    "audienceId": {
      "description": "Send to all contacts in this audience",
      "type": "string"
    },
    "segmentId": {
      "description": "Send to all contacts matching this segment",
      "type": "string"
    },
    "topicId": {
      "description": "Send to all subscribers of this topic",
      "type": "string"
    },
    "html": {
      "description": "Full HTML body (one of html/templateSlug required)",
      "type": "string"
    },
    "templateSlug": {
      "description": "Workspace template slug to use",
      "type": "string"
    },
    "scheduleAt": {
      "description": "ISO-8601 future datetime; omit to send immediately",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "subject",
    "fromName",
    "fromEmail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡schedule_campaign(campaignId, audienceId, segmentId, topicId, scheduleAt, ...)

Schedule (or send immediately) an existing draft campaign to an audience/segment/topic.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "audienceId": {
      "type": "string"
    },
    "segmentId": {
      "type": "string"
    },
    "topicId": {
      "type": "string"
    },
    "scheduleAt": {
      "description": "ISO-8601 future datetime; omit to send immediately",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_campaign(campaignId, name, subject, fromName, fromEmail, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "name": {
      "description": "Campaign name (internal label)",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "subject": {
      "type": "string"
    },
    "fromName": {
      "type": "string"
    },
    "fromEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "replyTo": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "previewText": {
      "type": "string"
    },
    "html": {
      "type": "string"
    },
    "audienceIds": {
      "description": "Retarget to these audience IDs (see list_audiences). Sets recipient type 'lists'.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "segmentId": {
      "description": "Retarget to this segment (see list_segments)",
      "type": "string"
    },
    "contactIds": {
      "description": "Retarget to these specific contact IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tagIds": {
      "description": "Retarget to contacts with these tag IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sendToAll": {
      "description": "Retarget to all subscribed contacts in the workspace",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pause_campaign(campaignId, apiKey)

Pause a sending campaign. Already-sent messages are unaffected; remaining sends halt.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪resume_campaign(campaignId, apiKey)

Resume a paused campaign.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪duplicate_campaign(campaignId, name, audienceIds, segmentId, contactIds, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID to duplicate"
    },
    "name": {
      "description": "Name for the new draft (default: original name + ' (Copy)')",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "audienceIds": {
      "description": "Retarget the new draft to these audience IDs (see list_audiences)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "segmentId": {
      "description": "Retarget the new draft to this segment",
      "type": "string"
    },
    "contactIds": {
      "description": "Retarget the new draft to these contact IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tagIds": {
      "description": "Retarget the new draft to contacts with these tag IDs",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sendToAll": {
      "description": "Retarget the new draft to all subscribed contacts",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_campaign(campaignId, apiKey)

Delete a draft campaign. Sent campaigns cannot be deleted (only archived).

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡preview_campaign_recipients(campaignId, apiKey)

Preview the recipient set for a campaign before sending. Returns count + sample list.

輸入結構描述

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "campaignId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪activate_automation(automationId, apiKey)

Activate an automation. New events matching its triggers will start enrolling contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪pause_automation(automationId, apiKey)

Pause an automation. Existing enrollments freeze in place; no new contacts enroll.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_automation_stats(automationId, apiKey)

Get aggregate analytics for an automation: total enrollments, completed, exited, open/click rates per step.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_automation_enrollments(automationId, state, page, pageSize, apiKey)

List active and historical enrollments for an automation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "string",
      "description": "Automation ID"
    },
    "state": {
      "type": "string",
      "enum": [
        "active",
        "completed",
        "exited",
        "paused"
      ]
    },
    "page": {
      "description": "Page number",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "pageSize": {
      "description": "Results per page (max 100)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "automationId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_workspaces(apiKey)

List workspaces the authenticated user has access to (owner or member).

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_workspace(apiKey)

Get the current workspace (the one the API key belongs to).

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_brand(apiKey)

Get the workspace's brand settings: colors, logo, fonts, and the DESIGN.md spec injected into AI generation prompts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡update_brand(primaryColor, secondaryColor, logoUrl, fontFamily, designSpec, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "primaryColor": {
      "description": "Hex color (e.g. '#4F46E5')",
      "type": "string"
    },
    "secondaryColor": {
      "description": "Hex color",
      "type": "string"
    },
    "logoUrl": {
      "type": "string",
      "format": "uri"
    },
    "fontFamily": {
      "description": "Body font family",
      "type": "string"
    },
    "designSpec": {
      "description": "Markdown DESIGN.md spec for AI generation",
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_workspace_usage(apiKey)

Get the current month's send count, contact count, and plan limits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_suppressions(reason, limit, offset, apiKey)

List suppressed email addresses (bounces, complaints, unsubscribes, manual).

輸入結構描述

{
  "type": "object",
  "properties": {
    "reason": {
      "type": "string",
      "enum": [
        "bounce",
        "complaint",
        "unsubscribe",
        "manual"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_suppression(email, reason, notes, apiKey)

Add an email to the suppression list. Future sends to this address will be blocked.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "reason": {
      "default": "manual",
      "type": "string",
      "enum": [
        "bounce",
        "complaint",
        "unsubscribe",
        "manual"
      ]
    },
    "notes": {
      "type": "string"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "email"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴remove_suppression(email, apiKey)

Remove an email from the suppression list. Use only when you've confirmed the recipient wants to receive mail again.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "email"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_webhooks(apiKey)

List configured outgoing webhooks (your endpoints that Send16 POSTs delivery events to). Outgoing webhooks are a plan feature.

輸入結構描述

{
  "type": "object",
  "properties": {
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_webhook(name, url, events, enabled, apiKey)

Register an outgoing webhook endpoint. Send16 POSTs event JSON to this URL with an HMAC-SHA256 signature. Outgoing webhooks are a plan feature.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "A label for this endpoint"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "HTTPS endpoint to receive events"
    },
    "events": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "contact.created",
          "contact.updated",
          "contact.deleted",
          "contact.subscribed",
          "contact.unsubscribed",
          "campaign.sent",
          "campaign.completed",
          "email.delivered",
          "email.opened",
          "email.clicked",
          "email.bounced",
          "email.complained",
          "form.submitted"
        ]
      },
      "description": "Event types to subscribe to"
    },
    "enabled": {
      "description": "Whether the endpoint is active (default true)",
      "type": "boolean"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "name",
    "url",
    "events"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_webhook(webhookId, apiKey)

Delete an outgoing webhook endpoint.

輸入結構描述

{
  "type": "object",
  "properties": {
    "webhookId": {
      "type": "string",
      "description": "Webhook ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "webhookId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪regenerate_webhook_secret(webhookId, apiKey)

Rotate the HMAC signing secret for an outgoing webhook endpoint. Returns the new secret once.

輸入結構描述

{
  "type": "object",
  "properties": {
    "webhookId": {
      "type": "string",
      "description": "Webhook ID"
    },
    "apiKey": {
      "description": "Send16 API key (overrides SEND16_API_KEY env var)",
      "type": "string"
    }
  },
  "required": [
    "webhookId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本79 個工具
已驗證未記錄版本79 個工具