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

Contacts

Tools for managing contact records — the people you send email to.

ToolDescription
create_contactCreate a new contact with an email address and optional properties.
get_contactGet a contact by their ID.
get_contact_by_emailLook up a contact by their email address.
update_contactUpdate a contact's properties, subscription status, or external user ID.
delete_contactDelete a contact by their ID.
list_contactsList contacts with optional pagination.
upsert_contactCreate a new contact or update an existing one by email address.
list_contact_sendsList all emails sent to a contact.
list_contact_scheduled_sendsList all scheduled (pending) sends for a contact.
list_contact_sequencesList all sequences a contact is enrolled in.
list_contact_segmentsList all segment memberships for a contact.
get_contact_timelineGet the activity timeline for a contact (sends, opens, clicks, events).
get_contact_statsGet tenant-wide contact statistics.

create_contact

ParameterTypeRequiredDescription
emailstringYesContact email address.
userIdstringNoExternal user ID.
propertiesRecord<string, string | number | boolean | null>NoCustom contact properties.

get_contact

ParameterTypeRequiredDescription
contactIdstringYesContact ID.

get_contact_by_email

ParameterTypeRequiredDescription
emailstringYesContact email address.

update_contact

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
userIdstringNoExternal user ID.
propertiesRecord<string, string | number | boolean | null>NoCustom contact properties to update.
subscribedbooleanNoSubscription status.

delete_contact

ParameterTypeRequiredDescription
contactIdstringYesContact ID.

list_contacts

ParameterTypeRequiredDescription
limitnumberNoMaximum number of contacts to return.
cursorstringNoPagination cursor from a previous response.

upsert_contact

ParameterTypeRequiredDescription
emailstringYesContact email address.
userIdstringNoExternal user ID.
propertiesRecord<string, string | number | boolean | null>NoCustom contact properties.

list_contact_sends

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
limitnumberNoMaximum number of sends to return.
cursorstringNoPagination cursor.

list_contact_scheduled_sends

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
limitnumberNoMaximum number of sends to return.
cursorstringNoPagination cursor.

list_contact_sequences

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
limitnumberNoMaximum number of sequences to return.
cursorstringNoPagination cursor.

list_contact_segments

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
limitnumberNoMaximum number of segments to return.
cursorstringNoPagination cursor.

get_contact_timeline

Filter by time window with from/to rather than a cursor.

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
limitnumberNoMaximum number of entries to return.
fromstringNoOnly include entries at or after this ISO 8601 timestamp.
tostringNoOnly include entries at or before this ISO 8601 timestamp.

get_contact_stats

No parameters required. Returns tenant-wide contact statistics: total contacts, suppressed count, and contacts added in the last 24 hours and 7 days.


Events

Tools for tracking custom events against contacts.

ToolDescription
track_eventTrack an event for a contact. Can trigger sequences and update contact properties.
list_eventsList events filtered by event name, with optional pagination.
list_contact_eventsList all events for a specific contact, filtered by event name.

track_event

ParameterTypeRequiredDescription
emailstringYesContact email address.
namestringYesEvent name.
propertiesRecord<string, string | number | boolean | null>NoEvent properties.
timestampstringNoISO 8601 timestamp (defaults to now).
updateContactbooleanNoWhether to update contact properties from event (default: true).

list_events

ParameterTypeRequiredDescription
namestringYesEvent name to filter by.
limitnumberNoMaximum number of events to return.
cursorstringNoPagination cursor from a previous response.

list_contact_events

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
namestringYesEvent name to filter by.
limitnumberNoMaximum number of events to return.
cursorstringNoPagination cursor from a previous response.

Templates

Tools for managing email templates.

ToolDescription
upsert_templateCreate or replace an email template with a name and content.
update_templateUpdate a template's name, subject, content, enabled state, or disable reason.
get_templateGet a template by its ID. Optionally include the template content.
delete_templateDelete a template by its ID.
list_templatesList templates with optional pagination.
preview_templateRender a template preview with optional variables.
list_template_versionsList all versions of a template.
get_template_versionGet a specific version of a template.

upsert_template

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
namestringYesTemplate name.
subjectstringYesEmail subject line.
contentstringYesTemplate content (MJML or HTML).

update_template

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
namestringNoNew template name.
subjectstringNoNew email subject line.
contentstringNoNew template content (MJML or HTML).
enabledbooleanNoWhether the template is enabled.
disableReasonstringNoReason for disabling the template.

get_template

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
includeContentbooleanNoWhether to include the template content (default: false).

delete_template

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.

list_templates

ParameterTypeRequiredDescription
limitnumberNoMaximum number of templates to return.
cursorstringNoPagination cursor from a previous response.

preview_template

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
variablesRecord<string, unknown>NoTemplate variables for rendering.

list_template_versions

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
limitnumberNoMaximum number of versions to return.
cursorstringNoPagination cursor.

get_template_version

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
versionstringYesVersion identifier (SHA256 hash).

Sequences

Tools for managing automated email sequences (drip campaigns).

ToolDescription
upsert_sequenceCreate or replace an email sequence with a name, content, and optional enabled state.
get_sequenceGet a sequence by its ID. Optionally include the sequence content.
update_sequenceUpdate a sequence's name, content, or enabled state.
delete_sequenceDelete a sequence by its ID.
list_sequencesList sequences with optional filters and pagination.
get_sequence_statusGet the status and contact counts for a sequence.
list_sequence_contactsList all contacts enrolled in a sequence.
list_sequence_versionsList all versions of a sequence.
get_sequence_versionGet a specific version of a sequence.
list_sequence_sendsList sends for a sequence with optional date range and status filters.
dry_run_sequenceSimulate running a sequence for a contact without actually sending emails.

upsert_sequence

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
namestringYesSequence name.
contentstringYesSequence definition content.
enabledbooleanNoWhether the sequence is enabled (default: false).

get_sequence

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
includeContentbooleanNoWhether to include the sequence content (default: false).

update_sequence

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
namestringNoNew sequence name.
contentstringNoNew sequence content.
enabledbooleanNoWhether the sequence is enabled.

delete_sequence

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.

list_sequences

ParameterTypeRequiredDescription
enabledbooleanNoFilter by enabled state.
limitnumberNoMaximum number of sequences to return.
cursorstringNoPagination cursor from a previous response.

get_sequence_status

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.

list_sequence_contacts

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
limitnumberNoMaximum number of contacts to return.
cursorstringNoPagination cursor.

list_sequence_versions

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
limitnumberNoMaximum number of versions to return.
cursorstringNoPagination cursor.

get_sequence_version

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
versionstringYesVersion identifier.

list_sequence_sends

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
limitnumberNoMaximum number of sends to return.
cursorstringNoPagination cursor.
fromstringNoFilter sends from this ISO 8601 datetime.
tostringNoFilter sends to this ISO 8601 datetime.
status"sent" | "delivered" | "bounced" | "complained"NoFilter by delivery status.

dry_run_sequence

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
contactIdstringYesContact ID to simulate for.

Campaigns

Tools for organising sequences and templates into campaigns.

ToolDescription
create_campaignCreate a new campaign with a name and optional configuration.
get_campaignGet a campaign by its ID.
update_campaignUpdate a campaign's name, description, status, segment, or goals.
delete_campaignDelete a campaign by its ID.
list_campaignsList campaigns with optional status filter and pagination.
add_campaign_sequenceAttach a sequence to a campaign.
remove_campaign_sequenceRemove a sequence from a campaign.
add_campaign_templateAttach a template to a campaign.
remove_campaign_templateRemove a template from a campaign.

create_campaign

ParameterTypeRequiredDescription
namestringYesCampaign name.
descriptionstringNoCampaign description.
sequenceIdsstring[]NoSequence IDs to attach.
templateIdsstring[]NoTemplate IDs to attach.
segmentIdstringNoSegment ID to target.
goalsstring[]NoCampaign goals.

get_campaign

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.

update_campaign

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.
namestringNoNew campaign name.
descriptionstringNoNew campaign description.
status"draft" | "active" | "paused" | "completed" | "archived"NoNew campaign status.
segmentIdstringNoNew segment ID to target.
goalsstring[]NoUpdated campaign goals.

delete_campaign

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.

list_campaigns

ParameterTypeRequiredDescription
status"draft" | "active" | "paused" | "completed" | "archived"NoFilter by campaign status.
limitnumberNoMaximum number of campaigns to return.
cursorstringNoPagination cursor from a previous response.

add_campaign_sequence

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.
sequenceIdstringYesSequence ID to attach.

remove_campaign_sequence

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.
sequenceIdstringYesSequence ID to remove.

add_campaign_template

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.
templateIdstringYesTemplate ID to attach.

remove_campaign_template

ParameterTypeRequiredDescription
campaignIdstringYesCampaign ID.
templateIdstringYesTemplate ID to remove.

Segments

Tools for defining audience segments and recomputing membership.

ToolDescription
create_segmentCreate a new contact segment with a recursive rule tree.
get_segmentGet a segment by its ID.
update_segmentUpdate a segment's name, description, rules, or enabled state.
delete_segmentDelete a segment by its ID.
list_segmentsList segments with optional pagination.
list_segment_membersList contacts that are members of a segment.
compute_segmentForce recompute membership for all contacts in a segment.

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

ParameterTypeRequiredDescription
namestringYesSegment name.
descriptionstringNoSegment description.
rulesSegmentRulesYesSegment rules as a boolean expression tree.
enabledbooleanNoWhether the segment is enabled (default: true).

SegmentRules object:

FieldTypeRequiredDescription
operator"and" | "or" | "not"YesLogical operator for combining conditions.
conditions(Condition | SegmentRules)[]YesLeaf conditions or nested rule groups.

Condition object (one of three types):

FieldTypeRequiredDescription
type"property" | "derived" | "segment"YesCondition type.
fieldstringFor property/derivedContact or derived field name.
operatorstringYesFor property/derived: a comparison operator (equals, contains, exists, etc.). For segment: "memberOf" or "notMemberOf".
valueunknownNoValue to compare against (property/derived conditions).
segmentIdstringFor segmentSegment ID to check membership against.

get_segment

ParameterTypeRequiredDescription
segmentIdstringYesSegment ID.

update_segment

ParameterTypeRequiredDescription
segmentIdstringYesSegment ID.
namestringNoNew segment name.
descriptionstringNoNew segment description.
rulesSegmentRulesNoUpdated segment rules.
enabledbooleanNoWhether the segment is enabled.

delete_segment

ParameterTypeRequiredDescription
segmentIdstringYesSegment ID.

list_segments

ParameterTypeRequiredDescription
limitnumberNoMaximum number of segments to return.
cursorstringNoPagination cursor from a previous response.

list_segment_members

ParameterTypeRequiredDescription
segmentIdstringYesSegment ID.
limitnumberNoMaximum number of members to return.
cursorstringNoPagination cursor.

compute_segment

Force a recompute of membership for all contacts in a segment. Can be expensive for large segments.

ParameterTypeRequiredDescription
segmentIdstringYesSegment ID to recompute.

Domains

Tools for registering and verifying sending domains.

ToolDescription
create_domainRegister a new sending domain. Returns DNS records that need to be configured.
get_domainGet a domain's status and DNS records.
delete_domainDelete a sending domain.
update_domainUpdate domain settings such as enabling or disabling sending.
list_domainsList sending domains with optional status filter and pagination.
verify_domainTrigger DNS verification for a domain.

create_domain

ParameterTypeRequiredDescription
domainstringYesDomain name (e.g. mail.example.com).

get_domain

ParameterTypeRequiredDescription
domainstringYesDomain name.

delete_domain

ParameterTypeRequiredDescription
domainstringYesDomain name.

update_domain

ParameterTypeRequiredDescription
domainstringYesDomain name.
sendingEnabledbooleanNoWhether sending is enabled for this domain.

list_domains

ParameterTypeRequiredDescription
status"pending" | "verifying" | "verified" | "failed"NoFilter by domain status.
limitnumberNoMaximum number of domains to return.
cursorstringNoPagination cursor from a previous response.

verify_domain

ParameterTypeRequiredDescription
domainstringYesDomain name to verify.

Send

Tools for sending transactional emails and viewing send history.

ToolDescription
send_emailSend a transactional email to a recipient using a template.
get_sendGet details of a sent email by its send ID.
list_sendsList sent emails with optional filters and pagination.
search_contact_sendsSearch sent emails for a specific contact.

send_email

ParameterTypeRequiredDescription
tostringYesRecipient email address.
templatestringYesTemplate ID.
variablesRecord<string, unknown>NoTemplate variables.
fromstringNoOverride from address. The domain must be registered and verified in Kraiter. Falls back to the template default, then the tenant's defaultFromAddress.
ignoreUnsubscribebooleanNoOnly set to true for critical system emails such as password resets. Sends to contacts who have unsubscribed.

get_send

ParameterTypeRequiredDescription
sendIdstringYesSend ID.

list_sends

ParameterTypeRequiredDescription
contactIdstringNoFilter by contact ID.
templateIdstringNoFilter by template ID.
sequenceIdstringNoFilter by sequence ID.
limitnumberNoMaximum number of sends to return.
cursorstringNoPagination cursor from a previous response.

search_contact_sends

ParameterTypeRequiredDescription
contactIdstringYesContact ID.
templateIdstringNoFilter by template ID.
sequenceIdstringNoFilter by sequence ID.
limitnumberNoMaximum number of sends to return.
cursorstringNoPagination cursor from a previous response.

Metrics

Tools for retrieving tenant, sequence, and template metrics.

ToolDescription
get_tenant_metricsGet aggregate metrics for the current tenant (contacts, sends, opens, clicks).
list_sequence_metricsList metrics for all sequences.
get_sequence_metricsGet metrics for a specific sequence.
list_template_metricsList metrics for all templates.
get_template_metricsGet metrics for a specific template.

get_tenant_metrics

ParameterTypeRequiredDescription
fromstringNoStart date (ISO 8601).
tostringNoEnd date (ISO 8601).

list_sequence_metrics

ParameterTypeRequiredDescription
fromstringNoStart date (ISO 8601).
tostringNoEnd date (ISO 8601).
limitnumberNoMaximum number of sequences to return.
cursorstringNoPagination cursor.

get_sequence_metrics

ParameterTypeRequiredDescription
sequenceIdstringYesSequence ID.
fromstringNoStart date (ISO 8601).
tostringNoEnd date (ISO 8601).

list_template_metrics

ParameterTypeRequiredDescription
fromstringNoStart date (ISO 8601).
tostringNoEnd date (ISO 8601).
limitnumberNoMaximum number of templates to return.
cursorstringNoPagination cursor.

get_template_metrics

ParameterTypeRequiredDescription
templateIdstringYesTemplate ID.
fromstringNoStart date (ISO 8601).
tostringNoEnd date (ISO 8601).

Scheduled Sends

Tools for listing and inspecting scheduled sends.

ToolDescription
list_scheduled_sendsList scheduled sends. Requires at least one of status or contactId.
get_scheduled_sendGet a specific scheduled send by its ID and scheduled time.

list_scheduled_sends

At least one of status or contactId is required.

ParameterTypeRequiredDescription
statusstringNo*Filter by status (e.g. pending, processing).
contactIdstringNo*Filter by contact ID.
limitnumberNoMaximum number of sends to return.

get_scheduled_send

ParameterTypeRequiredDescription
scheduledSendIdstringYesScheduled send ID.
scheduledForstringYesScheduled time (ISO 8601).

Identities

Tools for managing SES email identities and DKIM signing.

ToolDescription
list_identitiesList SES email identities across all regions, or filter by region.
get_identityGet details for a single SES identity including DKIM records.
create_identityCreate a new email identity (domain or email address) in SES.
delete_identityRemove an email identity from SES.
enable_dkimEnable DKIM signing for an SES identity.
disable_dkimDisable DKIM signing for an SES identity.

list_identities

ParameterTypeRequiredDescription
regionstringNoAWS region to filter by (e.g. eu-west-1). Omit to list all regions.

get_identity

ParameterTypeRequiredDescription
identitystringYesEmail address or domain name.
regionstringYesAWS region (e.g. eu-west-1).

create_identity

ParameterTypeRequiredDescription
identitystringYesEmail address or domain name to add.
regionstringYesAWS region to create the identity in (e.g. eu-west-1).

delete_identity

ParameterTypeRequiredDescription
identitystringYesEmail address or domain name to remove.
regionstringYesAWS region (e.g. eu-west-1).

enable_dkim

ParameterTypeRequiredDescription
identitystringYesEmail address or domain name.
regionstringYesAWS region (e.g. eu-west-1).

disable_dkim

ParameterTypeRequiredDescription
identitystringYesEmail address or domain name.
regionstringYesAWS region (e.g. eu-west-1).

Tenant

Tools for viewing tenant details and managing the sandbox whitelist. While in sandbox mode, emails can only be sent to whitelisted recipient addresses.

ToolDescription
get_tenantGet the current tenant's details including plan, sending status, and sandbox whitelist.
list_sandbox_whitelistList emails that can receive emails in sandbox mode.
add_to_sandbox_whitelistWhitelist an email address for sandbox sending. Maximum 50 emails.
remove_from_sandbox_whitelistRemove an email address from the sandbox whitelist.
update_tenantUpdate the tenant's name, default from address, or sending status.
get_ses_account_statusGet the SES account status including sandbox mode and sending quotas.

get_tenant

No parameters required. Returns the full tenant object.

list_sandbox_whitelist

No parameters required. Returns { emails: string[] }.

add_to_sandbox_whitelist

ParameterTypeRequiredDescription
emailstringYesEmail address to whitelist.

remove_from_sandbox_whitelist

ParameterTypeRequiredDescription
emailstringYesEmail address to remove.

update_tenant

ParameterTypeRequiredDescription
namestringNoNew tenant name.
defaultFromAddressstring | nullNoDefault 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"NoSending status. enabled requires AWS setup and a verified domain; paused stops all sending; sandbox limits sending to whitelisted emails only.

get_ses_account_status

ParameterTypeRequiredDescription
regionstringNoAWS region to check (defaults to the tenant's configured region).

Billing

Tools for viewing billing information and creating Stripe sessions.

ToolDescription
get_billingGet the current tenant's billing information including plan, usage counters, and plan limits.
create_checkout_sessionCreate a Stripe Checkout session to subscribe or upgrade to a paid plan.
create_portal_sessionCreate a Stripe Customer Portal session for managing subscription and invoices.

get_billing

No parameters required. Returns the tenant's billing information.

create_checkout_session

Returns a URL to redirect the user to.

ParameterTypeRequiredDescription
plan"starter" | "pro"YesThe plan to subscribe to.
interval"month" | "year"NoBilling interval (defaults to month).
priceIdstringNoExplicit Stripe Price ID (auto-resolved if omitted).

create_portal_session

No parameters required. Returns a URL to redirect the user to.