MCP Server
Tool Reference
Complete reference of all 83 MCP tools exposed by the Kraiter MCP server.
This page documents every tool available in the @kraiter/mcp-server. Each tool maps directly to a method on the @kraiter/sdk.
Tools for managing contact records — the people you send email to.
| Tool | Description |
|---|
create_contact | Create a new contact with an email address and optional properties. |
get_contact | Get a contact by their ID. |
get_contact_by_email | Look up a contact by their email address. |
update_contact | Update a contact's properties, subscription status, or external user ID. |
delete_contact | Delete a contact by their ID. |
list_contacts | List contacts with optional pagination. |
upsert_contact | Create a new contact or update an existing one by email address. |
list_contact_sends | List all emails sent to a contact. |
list_contact_scheduled_sends | List all scheduled (pending) sends for a contact. |
list_contact_sequences | List all sequences a contact is enrolled in. |
list_contact_segments | List all segment memberships for a contact. |
get_contact_timeline | Get the activity timeline for a contact (sends, opens, clicks, events). |
get_contact_stats | Get tenant-wide contact statistics. |
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Contact email address. |
userId | string | No | External user ID. |
properties | Record<string, string | number | boolean | null> | No | Custom contact properties. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Contact email address. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
userId | string | No | External user ID. |
properties | Record<string, string | number | boolean | null> | No | Custom contact properties to update. |
subscribed | boolean | No | Subscription status. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
| Parameter | Type | Required | Description |
|---|
limit | number | No | Maximum number of contacts to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Contact email address. |
userId | string | No | External user ID. |
properties | Record<string, string | number | boolean | null> | No | Custom contact properties. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
limit | number | No | Maximum number of sends to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
limit | number | No | Maximum number of sends to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
limit | number | No | Maximum number of sequences to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
limit | number | No | Maximum number of segments to return. |
cursor | string | No | Pagination cursor. |
Filter by time window with from/to rather than a cursor.
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
limit | number | No | Maximum number of entries to return. |
from | string | No | Only include entries at or after this ISO 8601 timestamp. |
to | string | No | Only include entries at or before this ISO 8601 timestamp. |
No parameters required. Returns tenant-wide contact statistics: total contacts, suppressed count, and contacts added in the last 24 hours and 7 days.
Tools for tracking custom events against contacts.
| Tool | Description |
|---|
track_event | Track an event for a contact. Can trigger sequences and update contact properties. |
list_events | List events filtered by event name, with optional pagination. |
list_contact_events | List all events for a specific contact, filtered by event name. |
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Contact email address. |
name | string | Yes | Event name. |
properties | Record<string, string | number | boolean | null> | No | Event properties. |
timestamp | string | No | ISO 8601 timestamp (defaults to now). |
updateContact | boolean | No | Whether to update contact properties from event (default: true). |
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Event name to filter by. |
limit | number | No | Maximum number of events to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
name | string | Yes | Event name to filter by. |
limit | number | No | Maximum number of events to return. |
cursor | string | No | Pagination cursor from a previous response. |
Tools for managing email templates.
| Tool | Description |
|---|
upsert_template | Create or replace an email template with a name and content. |
update_template | Update a template's name, subject, content, enabled state, or disable reason. |
get_template | Get a template by its ID. Optionally include the template content. |
delete_template | Delete a template by its ID. |
list_templates | List templates with optional pagination. |
preview_template | Render a template preview with optional variables. |
list_template_versions | List all versions of a template. |
get_template_version | Get a specific version of a template. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
name | string | Yes | Template name. |
subject | string | Yes | Email subject line. |
content | string | Yes | Template content (MJML or HTML). |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
name | string | No | New template name. |
subject | string | No | New email subject line. |
content | string | No | New template content (MJML or HTML). |
enabled | boolean | No | Whether the template is enabled. |
disableReason | string | No | Reason for disabling the template. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
includeContent | boolean | No | Whether to include the template content (default: false). |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
| Parameter | Type | Required | Description |
|---|
limit | number | No | Maximum number of templates to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
variables | Record<string, unknown> | No | Template variables for rendering. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
limit | number | No | Maximum number of versions to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
version | string | Yes | Version identifier (SHA256 hash). |
Tools for managing automated email sequences (drip campaigns).
| Tool | Description |
|---|
upsert_sequence | Create or replace an email sequence with a name, content, and optional enabled state. |
get_sequence | Get a sequence by its ID. Optionally include the sequence content. |
update_sequence | Update a sequence's name, content, or enabled state. |
delete_sequence | Delete a sequence by its ID. |
list_sequences | List sequences with optional filters and pagination. |
get_sequence_status | Get the status and contact counts for a sequence. |
list_sequence_contacts | List all contacts enrolled in a sequence. |
list_sequence_versions | List all versions of a sequence. |
get_sequence_version | Get a specific version of a sequence. |
list_sequence_sends | List sends for a sequence with optional date range and status filters. |
dry_run_sequence | Simulate running a sequence for a contact without actually sending emails. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
name | string | Yes | Sequence name. |
content | string | Yes | Sequence definition content. |
enabled | boolean | No | Whether the sequence is enabled (default: false). |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
includeContent | boolean | No | Whether to include the sequence content (default: false). |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
name | string | No | New sequence name. |
content | string | No | New sequence content. |
enabled | boolean | No | Whether the sequence is enabled. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
| Parameter | Type | Required | Description |
|---|
enabled | boolean | No | Filter by enabled state. |
limit | number | No | Maximum number of sequences to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
limit | number | No | Maximum number of contacts to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
limit | number | No | Maximum number of versions to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
version | string | Yes | Version identifier. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
limit | number | No | Maximum number of sends to return. |
cursor | string | No | Pagination cursor. |
from | string | No | Filter sends from this ISO 8601 datetime. |
to | string | No | Filter sends to this ISO 8601 datetime. |
status | "sent" | "delivered" | "bounced" | "complained" | No | Filter by delivery status. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
contactId | string | Yes | Contact ID to simulate for. |
Tools for organising sequences and templates into campaigns.
| Tool | Description |
|---|
create_campaign | Create a new campaign with a name and optional configuration. |
get_campaign | Get a campaign by its ID. |
update_campaign | Update a campaign's name, description, status, segment, or goals. |
delete_campaign | Delete a campaign by its ID. |
list_campaigns | List campaigns with optional status filter and pagination. |
add_campaign_sequence | Attach a sequence to a campaign. |
remove_campaign_sequence | Remove a sequence from a campaign. |
add_campaign_template | Attach a template to a campaign. |
remove_campaign_template | Remove a template from a campaign. |
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Campaign name. |
description | string | No | Campaign description. |
sequenceIds | string[] | No | Sequence IDs to attach. |
templateIds | string[] | No | Template IDs to attach. |
segmentId | string | No | Segment ID to target. |
goals | string[] | No | Campaign goals. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
name | string | No | New campaign name. |
description | string | No | New campaign description. |
status | "draft" | "active" | "paused" | "completed" | "archived" | No | New campaign status. |
segmentId | string | No | New segment ID to target. |
goals | string[] | No | Updated campaign goals. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
| Parameter | Type | Required | Description |
|---|
status | "draft" | "active" | "paused" | "completed" | "archived" | No | Filter by campaign status. |
limit | number | No | Maximum number of campaigns to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
sequenceId | string | Yes | Sequence ID to attach. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
sequenceId | string | Yes | Sequence ID to remove. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
templateId | string | Yes | Template ID to attach. |
| Parameter | Type | Required | Description |
|---|
campaignId | string | Yes | Campaign ID. |
templateId | string | Yes | Template ID to remove. |
Tools for defining audience segments and recomputing membership.
| Tool | Description |
|---|
create_segment | Create a new contact segment with a recursive rule tree. |
get_segment | Get a segment by its ID. |
update_segment | Update a segment's name, description, rules, or enabled state. |
delete_segment | Delete a segment by its ID. |
list_segments | List segments with optional pagination. |
list_segment_members | List contacts that are members of a segment. |
compute_segment | Force recompute membership for all contacts in a segment. |
Rules use a recursive boolean expression tree: { operator: "and" | "or" | "not", conditions: [...] }. Each condition is either a nested rule group or a leaf condition (see below).
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Segment name. |
description | string | No | Segment description. |
rules | SegmentRules | Yes | Segment rules as a boolean expression tree. |
enabled | boolean | No | Whether the segment is enabled (default: true). |
SegmentRules object:
| Field | Type | Required | Description |
|---|
operator | "and" | "or" | "not" | Yes | Logical operator for combining conditions. |
conditions | (Condition | SegmentRules)[] | Yes | Leaf conditions or nested rule groups. |
Condition object (one of three types):
| Field | Type | Required | Description |
|---|
type | "property" | "derived" | "segment" | Yes | Condition type. |
field | string | For property/derived | Contact or derived field name. |
operator | string | Yes | For property/derived: a comparison operator (equals, contains, exists, etc.). For segment: "memberOf" or "notMemberOf". |
value | unknown | No | Value to compare against (property/derived conditions). |
segmentId | string | For segment | Segment ID to check membership against. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
name | string | No | New segment name. |
description | string | No | New segment description. |
rules | SegmentRules | No | Updated segment rules. |
enabled | boolean | No | Whether the segment is enabled. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
| Parameter | Type | Required | Description |
|---|
limit | number | No | Maximum number of segments to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
limit | number | No | Maximum number of members to return. |
cursor | string | No | Pagination cursor. |
Force a recompute of membership for all contacts in a segment. Can be expensive for large segments.
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID to recompute. |
Tools for registering and verifying sending domains.
| Tool | Description |
|---|
create_domain | Register a new sending domain. Returns DNS records that need to be configured. |
get_domain | Get a domain's status and DNS records. |
delete_domain | Delete a sending domain. |
update_domain | Update domain settings such as enabling or disabling sending. |
list_domains | List sending domains with optional status filter and pagination. |
verify_domain | Trigger DNS verification for a domain. |
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name (e.g. mail.example.com). |
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name. |
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name. |
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name. |
sendingEnabled | boolean | No | Whether sending is enabled for this domain. |
| Parameter | Type | Required | Description |
|---|
status | "pending" | "verifying" | "verified" | "failed" | No | Filter by domain status. |
limit | number | No | Maximum number of domains to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Domain name to verify. |
Tools for sending transactional emails and viewing send history.
| Tool | Description |
|---|
send_email | Send a transactional email to a recipient using a template. |
get_send | Get details of a sent email by its send ID. |
list_sends | List sent emails with optional filters and pagination. |
search_contact_sends | Search sent emails for a specific contact. |
| Parameter | Type | Required | Description |
|---|
to | string | Yes | Recipient email address. |
template | string | Yes | Template ID. |
variables | Record<string, unknown> | No | Template variables. |
from | string | No | Override from address. The domain must be registered and verified in Kraiter. Falls back to the template default, then the tenant's defaultFromAddress. |
ignoreUnsubscribe | boolean | No | Only set to true for critical system emails such as password resets. Sends to contacts who have unsubscribed. |
| Parameter | Type | Required | Description |
|---|
sendId | string | Yes | Send ID. |
| Parameter | Type | Required | Description |
|---|
contactId | string | No | Filter by contact ID. |
templateId | string | No | Filter by template ID. |
sequenceId | string | No | Filter by sequence ID. |
limit | number | No | Maximum number of sends to return. |
cursor | string | No | Pagination cursor from a previous response. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
templateId | string | No | Filter by template ID. |
sequenceId | string | No | Filter by sequence ID. |
limit | number | No | Maximum number of sends to return. |
cursor | string | No | Pagination cursor from a previous response. |
Tools for retrieving tenant, sequence, and template metrics.
| Tool | Description |
|---|
get_tenant_metrics | Get aggregate metrics for the current tenant (contacts, sends, opens, clicks). |
list_sequence_metrics | List metrics for all sequences. |
get_sequence_metrics | Get metrics for a specific sequence. |
list_template_metrics | List metrics for all templates. |
get_template_metrics | Get metrics for a specific template. |
| Parameter | Type | Required | Description |
|---|
from | string | No | Start date (ISO 8601). |
to | string | No | End date (ISO 8601). |
| Parameter | Type | Required | Description |
|---|
from | string | No | Start date (ISO 8601). |
to | string | No | End date (ISO 8601). |
limit | number | No | Maximum number of sequences to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
from | string | No | Start date (ISO 8601). |
to | string | No | End date (ISO 8601). |
| Parameter | Type | Required | Description |
|---|
from | string | No | Start date (ISO 8601). |
to | string | No | End date (ISO 8601). |
limit | number | No | Maximum number of templates to return. |
cursor | string | No | Pagination cursor. |
| Parameter | Type | Required | Description |
|---|
templateId | string | Yes | Template ID. |
from | string | No | Start date (ISO 8601). |
to | string | No | End date (ISO 8601). |
Tools for listing and inspecting scheduled sends.
| Tool | Description |
|---|
list_scheduled_sends | List scheduled sends. Requires at least one of status or contactId. |
get_scheduled_send | Get a specific scheduled send by its ID and scheduled time. |
At least one of status or contactId is required.
| Parameter | Type | Required | Description |
|---|
status | string | No* | Filter by status (e.g. pending, processing). |
contactId | string | No* | Filter by contact ID. |
limit | number | No | Maximum number of sends to return. |
| Parameter | Type | Required | Description |
|---|
scheduledSendId | string | Yes | Scheduled send ID. |
scheduledFor | string | Yes | Scheduled time (ISO 8601). |
Tools for managing SES email identities and DKIM signing.
| Tool | Description |
|---|
list_identities | List SES email identities across all regions, or filter by region. |
get_identity | Get details for a single SES identity including DKIM records. |
create_identity | Create a new email identity (domain or email address) in SES. |
delete_identity | Remove an email identity from SES. |
enable_dkim | Enable DKIM signing for an SES identity. |
disable_dkim | Disable DKIM signing for an SES identity. |
| Parameter | Type | Required | Description |
|---|
region | string | No | AWS region to filter by (e.g. eu-west-1). Omit to list all regions. |
| Parameter | Type | Required | Description |
|---|
identity | string | Yes | Email address or domain name. |
region | string | Yes | AWS region (e.g. eu-west-1). |
| Parameter | Type | Required | Description |
|---|
identity | string | Yes | Email address or domain name to add. |
region | string | Yes | AWS region to create the identity in (e.g. eu-west-1). |
| Parameter | Type | Required | Description |
|---|
identity | string | Yes | Email address or domain name to remove. |
region | string | Yes | AWS region (e.g. eu-west-1). |
| Parameter | Type | Required | Description |
|---|
identity | string | Yes | Email address or domain name. |
region | string | Yes | AWS region (e.g. eu-west-1). |
| Parameter | Type | Required | Description |
|---|
identity | string | Yes | Email address or domain name. |
region | string | Yes | AWS region (e.g. eu-west-1). |
Tools for viewing tenant details and managing the sandbox whitelist. While in sandbox mode, emails can only be sent to whitelisted recipient addresses.
| Tool | Description |
|---|
get_tenant | Get the current tenant's details including plan, sending status, and sandbox whitelist. |
list_sandbox_whitelist | List emails that can receive emails in sandbox mode. |
add_to_sandbox_whitelist | Whitelist an email address for sandbox sending. Maximum 50 emails. |
remove_from_sandbox_whitelist | Remove an email address from the sandbox whitelist. |
update_tenant | Update the tenant's name, default from address, or sending status. |
get_ses_account_status | Get the SES account status including sandbox mode and sending quotas. |
No parameters required. Returns the full tenant object.
No parameters required. Returns { emails: string[] }.
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Email address to whitelist. |
| Parameter | Type | Required | Description |
|---|
email | string | Yes | Email address to remove. |
| Parameter | Type | Required | Description |
|---|
name | string | No | New tenant name. |
defaultFromAddress | string | null | No | Default from address for sends. The domain portion must be registered and verified in Kraiter before sends will succeed. Set to null to clear. |
sendingStatus | "enabled" | "paused" | "sandbox" | No | Sending status. enabled requires AWS setup and a verified domain; paused stops all sending; sandbox limits sending to whitelisted emails only. |
| Parameter | Type | Required | Description |
|---|
region | string | No | AWS region to check (defaults to the tenant's configured region). |
Tools for viewing billing information and creating Stripe sessions.
| Tool | Description |
|---|
get_billing | Get the current tenant's billing information including plan, usage counters, and plan limits. |
create_checkout_session | Create a Stripe Checkout session to subscribe or upgrade to a paid plan. |
create_portal_session | Create a Stripe Customer Portal session for managing subscription and invoices. |
No parameters required. Returns the tenant's billing information.
Returns a URL to redirect the user to.
| Parameter | Type | Required | Description |
|---|
plan | "starter" | "pro" | Yes | The plan to subscribe to. |
interval | "month" | "year" | No | Billing interval (defaults to month). |
priceId | string | No | Explicit Stripe Price ID (auto-resolved if omitted). |
No parameters required. Returns a URL to redirect the user to.