MCP Server
Tool Reference
Complete reference of all 49 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. |
| 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. |
Tools for tracking custom events against contacts.
| Tool | Description |
|---|
track_event | Track an event for a contact. Can trigger sequences and update contact properties. |
get_event | Get an event by its ID. |
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 |
|---|
eventId | string | Yes | Event ID. |
| 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 |
|---|
create_template | Create a new email template with a name and content. |
get_template | Get a template by its ID. Optionally include the template content. |
update_template | Update a template's name or 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. |
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Template name. |
content | string | Yes | Template content (MJML or HTML). |
| 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. |
name | string | No | New template name. |
content | string | No | New template content (MJML or HTML). |
| 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. |
Tools for managing automated email sequences (drip campaigns).
| Tool | Description |
|---|
create_sequence | Create a new 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_contact_state | Get the state of a contact within a sequence. |
remove_contact_from_sequence | Remove a contact from a sequence with an optional reason. |
| Parameter | Type | Required | Description |
|---|
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. |
contactId | string | Yes | Contact ID. |
| Parameter | Type | Required | Description |
|---|
sequenceId | string | Yes | Sequence ID. |
contactId | string | Yes | Contact ID. |
reason | string | No | Reason for removal. |
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 checking membership.
| Tool | Description |
|---|
create_segment | Create a new contact segment with rules and a combinator (and/or). |
get_segment | Get a segment by its ID. |
update_segment | Update a segment's name, rules, or combinator. |
delete_segment | Delete a segment by its ID. |
list_segments | List segments with optional pagination. |
check_segment_membership | Check whether a contact is a member of a specific segment. |
list_contact_segment_memberships | List all segment memberships for a specific contact. |
| Parameter | Type | Required | Description |
|---|
name | string | Yes | Segment name. |
rules | SegmentRule[] | Yes | Segment rules (see below). |
combinator | "and" | "or" | No | How rules are combined (default: and). |
SegmentRule object:
| Field | Type | Required | Description |
|---|
type | "property" | "derived" | "event" | "segment" | Yes | Rule type. |
field | string | No | Field name to evaluate. |
operator | string | No | Comparison operator. |
value | unknown | No | Value to compare against. |
segmentId | string | No | Segment ID (for segment-type rules). |
negate | boolean | No | Whether to negate the rule. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
| Parameter | Type | Required | Description |
|---|
segmentId | string | Yes | Segment ID. |
name | string | No | New segment name. |
rules | SegmentRule[] | No | Updated segment rules. |
combinator | "and" | "or" | No | How rules are combined. |
| 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. |
contactId | string | Yes | Contact ID. |
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID. |
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. |
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 |
|---|
status | "pending" | "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. |
list_contact_sends | List all 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 | Custom from address. |
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. |