Klaviyo MCP server
The deepest connector here: an entire email and SMS programme, readable end to end.
- Tools
- 125
- Read-only
- 75
- Write
- 50
- Off by default
- Destructive
- 0
- Flagged distinctly
Klaviyo through an assistant
Profiles, lists, segments, campaigns and flows are all queryable, along with the reports behind them -- per-campaign and per-flow performance, segment membership over time, and aggregate metric queries against your own event data. The catalogue, templates, images and tags are readable too. Building in Klaviyo -- profiles, lists, segments, campaigns, templates, coupons -- is opt-in, tool by tool.
- Profiles, lists and segments, with filtering
- Campaign, flow and segment performance reports
- Metric aggregates and raw event queries against your own data
- Catalogue items, templates, images and tags
- Bulk profile import, suppression and export jobs
- Create and update profiles, lists, segments, campaigns and templates (opt-in)
What people actually ask
Real questions, answered from live Klaviyo data.
“Which flow made the most revenue last month, and which message inside it?”
klaviyo_list_flowsklaviyo_get_flow_report“How big is my engaged-30-day segment, and how has it moved this quarter?”
klaviyo_get_segmentklaviyo_query_segment_series“Compare open and click rates across every campaign we sent last month.”
klaviyo_list_campaignsklaviyo_get_campaign_report125 Klaviyo tools
Grouped by what they touch. Every tool is individually toggleable — you expose only what you want.
Profiles
23 tools10 read-only · 13 writeShowing 10 of 10 tools
- klaviyo_add_profiles_to_listWrite
Add a batch of profiles to a Klaviyo list by profile ID (max 1,000 per request).
- klaviyo_add_profile_to_listWrite
Add one or more profiles to a Klaviyo list by profile ID.
- klaviyo_bulk_import_profilesWrite
Create or update a batch of up to 10,000 profiles in a single job via Klaviyo's Bulk Profile Import API.
- klaviyo_bulk_suppress_profilesWrite
Suppress email marketing for a batch of profiles by email address, or for all members of a list/segment. This is a bulk action affecting many profiles' deliverability and marketing status — requires confirm_suppress: true.
- klaviyo_bulk_unsuppress_profilesWrite
Remove USER_SUPPRESSED suppressions for a batch of profiles by email address, or for all members of a list/segment (does not affect unsubscribes or INVALID_EMAIL/HARD_BOUNCE suppressions). This is a bulk action affecting many profiles' deliverability and marketing status — requires confirm_unsuppress: true.
- klaviyo_create_or_update_profileWrite
Create a new profile or update an existing one, matched by email/phone/external_id. Returns 201 if created, 200 if an existing profile was updated. Setting a field to null clears it; omitting a field leaves it unchanged.
- klaviyo_create_profileWrite
Create a new customer profile in Klaviyo.
- klaviyo_delete_profileWrite
Request deletion of a profile and its data (processed via Klaviyo's data privacy job queue).
- klaviyo_get_bulk_import_profiles_jobRead-only
Get the status of a bulk profile import job by ID.
- klaviyo_get_bulk_import_profiles_jobsRead-only
List all bulk profile import jobs, optionally filtered by status.
+ 13 more profiles tools — see the full catalogue
Catalog
18 tools18 read-only · 0 writeShowing 10 of 10 tools
- klaviyo_get_bulk_create_catalog_items_jobRead-only
Get the status of a Klaviyo bulk catalog item create job by job ID.
- klaviyo_get_bulk_create_catalog_items_jobsRead-only
List all Klaviyo bulk catalog item create jobs.
- klaviyo_get_bulk_create_variants_jobRead-only
Get the status of a Klaviyo bulk catalog variant create job by job ID.
- klaviyo_get_bulk_create_variants_jobsRead-only
List all Klaviyo bulk catalog variant create jobs.
- klaviyo_get_bulk_delete_catalog_items_jobRead-only
Get the status of a Klaviyo bulk catalog item delete job by job ID.
- klaviyo_get_bulk_delete_catalog_items_jobsRead-only
List all Klaviyo bulk catalog item delete jobs.
- klaviyo_get_bulk_delete_variants_jobRead-only
Get the status of a Klaviyo bulk catalog variant delete job by job ID.
- klaviyo_get_bulk_delete_variants_jobsRead-only
List all Klaviyo bulk catalog variant delete jobs.
- klaviyo_get_bulk_update_catalog_items_jobRead-only
Get the status of a Klaviyo bulk catalog item update job by job ID.
- klaviyo_get_bulk_update_catalog_items_jobsRead-only
List all Klaviyo bulk catalog item update jobs.
+ 8 more catalog tools — see the full catalogue
Campaigns
17 tools7 read-only · 10 writeShowing 10 of 10 tools
- klaviyo_assign_template_to_campaign_messageWrite
Assign an existing email template to a campaign message. Use after creating both the template and the campaign.
- klaviyo_cancel_campaign_sendWrite
Cancel or revert the send of a currently sending or scheduled campaign. 'cancel' permanently cancels the campaign; 'revert' stops the send and returns the campaign to draft.
- klaviyo_clone_campaignWrite
Create a copy of an existing Klaviyo campaign under a new name.
- klaviyo_create_campaignWrite
Create a fully-populated email campaign in Klaviyo, including HTML content, audience, and optional scheduling.
- klaviyo_delete_campaignWrite
Delete a Klaviyo campaign.
- klaviyo_get_campaignRead-only
Get details of a single Klaviyo campaign.
- klaviyo_get_campaign_messageRead-only
Get the content/details of a single message within a Klaviyo campaign.
- klaviyo_get_campaign_recipient_estimationRead-only
Get the estimated recipient count for a Klaviyo campaign based on its current audience.
- klaviyo_get_campaign_recipient_estimation_jobRead-only
Get the status of a campaign recipient estimation job triggered by refresh_campaign_recipient_estimation.
- klaviyo_get_campaign_reportRead-only
Get campaign performance data (opens, clicks, conversions, deliveries, unsubscribes, etc.) matching what the Klaviyo UI shows, based on send date. Requires conversion_metric_id — use klaviyo_list_metrics to find the metric named 'Placed Order' as a sensible default if none is specified.
+ 7 more campaigns tools — see the full catalogue
Templates
10 tools3 read-only · 7 writeShowing 10 of 10 tools
- klaviyo_clone_templateWrite
Create a copy of an existing Klaviyo template under a new name.
- klaviyo_create_dnd_email_templateWrite
Create a new drag-and-drop (DND) email template from a structured definition of sections, rows, columns, and blocks, rather than raw HTML.
- klaviyo_create_templateWrite
Create a reusable HTML email template in Klaviyo.
- klaviyo_create_template_preview_send_jobWrite
Send a test/preview email of a template to up to 5 recipient addresses, optionally rendered with merge-variable context.
- klaviyo_delete_templateWrite
Delete a Klaviyo email template.
- klaviyo_get_templateRead-only
Get a single Klaviyo email template's details and HTML content.
- klaviyo_list_email_templatesRead-only
List email templates in the account with optional filtering and sorting.
- klaviyo_render_templateRead-only
Render a Klaviyo template with sample data to preview the final HTML/text output.
- klaviyo_update_dnd_email_templateWrite
Update an existing drag-and-drop (DND) email template's name, text, or structured definition. The definition fully replaces the existing one — partial section/block updates are not supported.
- klaviyo_update_templateWrite
Update an existing Klaviyo email template's name or HTML content.
Metrics
9 tools9 read-only · 0 writeShowing 9 of 9 tools
- klaviyo_get_custom_metricRead-only
Get a single custom metric by ID, including its aggregation method and metric groups definition.
- klaviyo_get_custom_metricsRead-only
List all custom metrics (metrics with a custom aggregation definition) in the account.
- klaviyo_get_flows_triggered_by_metricRead-only
Get all Klaviyo flows that use the given metric as their trigger.
- klaviyo_get_mapped_metricRead-only
Get the account-specific metric (or custom metric) that Klaviyo has mapped to a standard conceptual metric like 'revenue' or 'started_checkout'.
- klaviyo_get_mapped_metricsRead-only
List all mapped metrics in the account — the standard conceptual metrics (revenue, started_checkout, viewed_product, etc.) and which account-specific metric or custom metric each is mapped to.
- klaviyo_get_metricRead-only
Get a single metric by ID.
- klaviyo_get_metric_propertyRead-only
Get a single metric property by ID — a property key observed on events for a metric, with its inferred type and label.
- klaviyo_list_metricsRead-only
List all metrics (event types) tracked in your Klaviyo account.
- klaviyo_query_metric_aggregatesRead-only
Aggregate raw event data for a metric, optionally grouped by dimensions (e.g. $message, $flow, $campaign_channel) and broken into hour/day/week/month intervals. IMPORTANT: aggregates by EVENT time (when the event fired), not send time — for campaign/flow performance matching the Klaviyo UI, use klaviyo_get_campaign_report or klaviyo_get_flow_report instead. Use this only for time-series/dimension breakdowns those two don't support.
Flows
7 tools6 read-only · 1 writeShowing 7 of 7 tools
- klaviyo_get_flowRead-only
Get a single Klaviyo flow's details and status.
- klaviyo_get_flow_actionRead-only
Get details of a single action/step within a Klaviyo flow.
- klaviyo_get_flow_messageRead-only
Get the content/details of a single message within a Klaviyo flow.
- klaviyo_get_flow_reportRead-only
Get flow performance data (opens, clicks, conversions, deliveries, unsubscribes, etc.) matching what the Klaviyo UI shows, based on send date. Requires conversion_metric_id — use klaviyo_list_metrics to find the metric named 'Placed Order' as a sensible default if none is specified.
- klaviyo_get_flows_triggered_by_segmentRead-only
Get all Klaviyo flows that use the given segment as their trigger.
- klaviyo_list_flowsRead-only
List all automation flows in your Klaviyo account.
- klaviyo_update_flow_statusWrite
Activate, pause (manual), or set a Klaviyo flow to draft. Cannot create or edit flow logic — Klaviyo's API doesn't support authoring flows.
Segments
7 tools4 read-only · 3 writeShowing 7 of 7 tools
- klaviyo_create_segmentWrite
Create a dynamic segment in Klaviyo from a condition definition.
- klaviyo_delete_segmentWrite
Delete a Klaviyo segment.
- klaviyo_get_segmentRead-only
Get a single Klaviyo segment's details and definition.
- klaviyo_list_segmentsRead-only
List all segments in your Klaviyo account.
- klaviyo_query_segment_seriesRead-only
Get segment membership statistics (members_added, members_removed, net_members_changed, total_members) as a time series broken into hourly/daily/weekly/monthly intervals. Data unavailable before June 1 2023; max timeframe span 1 year.
- klaviyo_query_segment_valuesRead-only
Get aggregate segment membership statistics (members_added, members_removed, net_members_changed, total_members) as totals across a timeframe, not broken into a time series. Data unavailable before June 1 2023; max timeframe span 1 year.
- klaviyo_update_segmentWrite
Update a Klaviyo segment's name or condition definition.
Lists
6 tools3 read-only · 3 writeShowing 6 of 6 tools
- klaviyo_create_listWrite
Create a new contact list in Klaviyo.
- klaviyo_delete_listWrite
Delete a Klaviyo list.
- klaviyo_get_flows_triggered_by_listRead-only
Get all Klaviyo flows that use the given list as their trigger.
- klaviyo_get_listRead-only
Get a single Klaviyo list's details by ID.
- klaviyo_list_listsRead-only
List all contact lists in your Klaviyo account.
- klaviyo_update_listWrite
Update a Klaviyo list's name or opt-in process.
Events
5 tools4 read-only · 1 writeShowing 5 of 5 tools
- klaviyo_create_eventWrite
Track a custom event for a profile in Klaviyo (e.g. Placed Order, Viewed Product).
- klaviyo_get_download_for_event_bulk_export_jobRead-only
Get the download link(s) for a completed event bulk export job's gzipped CSV file.
- klaviyo_get_eventRead-only
Get a single Klaviyo event by ID.
- klaviyo_get_event_bulk_export_jobRead-only
Get the status and details of an event bulk export job. When complete, the response includes expiration and file size of the exported events file.
- klaviyo_get_eventsRead-only
List individual Klaviyo event records for a given filter (e.g. profile_id or metric_id). For aggregated metrics, prefer report/aggregate tools instead — this returns raw event rows.
Translations
5 tools2 read-only · 3 writeShowing 5 of 5 tools
- klaviyo_create_translationWrite
BETA. Create a new translation collection linking a Klaviyo resource (campaign variation, flow message, template, or universal content block) to its localization settings for multi-language sends. Valid channel + resource combinations: email -> campaign-variation, flow-message, template, template-universal-content; sms -> campaign-variation, flow-message; mobile_push -> campaign-variation, flow-message; whatsapp -> template only.
- klaviyo_delete_translationWrite
BETA. Delete a translation collection by ID, removing all localization settings and translation values for the resource.
- klaviyo_get_translationRead-only
BETA. Get a translation collection by ID, returning its localization settings (source/target locales, channel, fallback). Pass include_values to also get the source text and per-locale translations for each translatable field.
- klaviyo_get_translationsRead-only
BETA. List all translation collections in the account. Each translation links a Klaviyo resource (campaign variation, flow message, template, or universal content block) to its localization settings. Supports filtering on channel, resource_type, and related_resource_id.
- klaviyo_update_translationWrite
BETA. Update a translation's settings and/or import translation values. All attributes are optional; only provided fields are updated. To import values, first call klaviyo_get_translation with include_values, then provide the values array with updated translations (each value has a composite id like 'scheduled_message::abc::subject' and a translations map of locale codes to translated text).
More tools
12 tools5 read-only · 7 writeShowing 10 of 10 tools
- klaviyo_create_couponWrite
Create a coupon in Klaviyo, which coupon codes can then be generated under.
- klaviyo_create_coupon_codesWrite
Bulk-generate unique coupon codes under an existing Klaviyo coupon.
- klaviyo_create_universal_contentWrite
Create a reusable universal content block in Klaviyo (button, drop_shadow, horizontal_rule, html, image, spacer, or text) that can be referenced across multiple email templates.
- klaviyo_delete_universal_contentWrite
Delete a Klaviyo universal content block.
- klaviyo_get_accountRead-only
Get your Klaviyo account details and contact information.
- klaviyo_get_all_universal_contentRead-only
List all universal content blocks in the Klaviyo account, optionally filtered by name, id, created/updated, or block type.
- klaviyo_get_imageRead-only
Get a single image from the Klaviyo image library by ID.
- klaviyo_get_universal_contentRead-only
Get a single Klaviyo universal content block by ID.
- klaviyo_list_imagesRead-only
List images in the Klaviyo account's image library.
- klaviyo_update_imageWrite
Rename an image in the Klaviyo library or hide/unhide it from the asset library.
+ 2 more more tools tools — see the full catalogue
Every tool name and description, machine-readable: /llms-full.txt
You decide what it can touch
The same model applies to every connector, and it defaults closed.
Authorize once
Connect Klaviyo through its own consent screen. Credentials are encrypted with AES-256-GCM and never returned by any API response or tool call.
Writes off by default
A new connection switches on a read-oriented default set only. Every write tool must be enabled deliberately before any client can call it.
Roles enforced server-side
READ, WRITE and ADMIN gate tool invocation on the server, not just in the UI. A READ member's token is refused any write tool.
Connect Klaviyo in minutes
No infrastructure to run. Copy one URL and one token into your client.
- 1Create a free workspace and connect Klaviyo.
- 2Choose which tools to expose — writes stay off until you enable them.
- 3Copy your MCP endpoint URL and bearer token.
- 4Paste them into Claude, Cursor, or any MCP client.
{
"mcpServers": {
"serve-mcp": {
"url": "https://servemcp.com/api/mcp/your-workspace",
"transport": "http",
"headers": {
"Authorization": "Bearer smcp_..."
}
}
}
}More in Email & Marketing
Put Klaviyo in front of your assistant
Free plan, no card required. Connect in minutes.