Back to the MCP Gateway catalog

MCP Gateway · Catalog

Klaviyo icon

Klaviyo MCP server

Official

Klaviyo MCP is the official Model Context Protocol server for Klaviyo, with OAuth and tools that let agents read campaigns, flows, lists, segments, and metrics, manage profiles and subscriptions, and pull campaign and flow reports. Connect it through the Speakeasy MCP Gateway and agents such as Claude, Cursor, and ChatGPT get one governed URL for it, with SSO, RBAC, and a full audit trail.

Sales & CRM27 toolsAuth: oauth

Behind the MCP Gateway

Run Klaviyo MCP behind the MCP Gateway

One URL for every agent, sign-in through your IdP, RBAC down to the tool, and every Klaviyo call inspected and logged.

Deploy on MCP Gateway

Tools · 27

Each tool below can be allowed or denied per team and role at the MCP Gateway, and every call is inspected and logged.

klaviyo_get_account_details

Get the details of the account. You can view and edit your account details flow in the Klaviyo UI at https://www.klaviyo.com/settings/account

klaviyo_get_campaigns

Returns some or all campaigns based on filters. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard. Do not use this for queries related to the status of campaigns, reporting on campaigns, or campaign performance data. For those use cases, use the get_campaign_report tool.

klaviyo_get_campaign

Returns a specific campaign based on a required id. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard

klaviyo_create_campaign

Creates a new draft campaign. For email campaigns, this can be used with the create_email_template tool for template creation and then assign_template_to_campaign_message to assign the template to the email campaign. You can view and edit a campaign in the Klaviyo UI at https://www.klaviyo.com/campaign/{CAMPAIGN_ID}/wizard

klaviyo_assign_template_to_campaign_message

Assigns an email template to a campaign message. This should be used after creating a template with the create_email_template tool and creating an email campaign.

klaviyo_get_flows

Returns some or all flows based on filters. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/flow/{FLOW_ID}/edit. Do not use this for queries related to the status of flows, reporting on flows, or flow performance data. For those use cases, use the get_flow_report tool.

klaviyo_get_flow

Returns a flow by ID. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/flow/{FLOW_ID}/edit.

klaviyo_get_lists

Get all lists in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for the 'tags' property in the response. You can view and edit a list in the Klaviyo UI at https://www.klaviyo.com/lists/{LIST_ID}

klaviyo_get_list

Get a list with the given list ID. You can view and edit a list in the Klaviyo UI at https://www.klaviyo.com/lists/{LIST_ID}

klaviyo_get_events

Get individual event records for a given filter such as a profile ID or metric ID. For aggregated data, prefer get_campaign_report or get_flow_report (performance metrics) or query_metric_aggregates (counts, sums, unique profiles). Only use this tool to inspect specific events or when the other tools don't support the dimension you need — in that case, only a small sample of events can be processed in context, so clearly tell the user the results are based on a limited sample.

klaviyo_get_catalog_items

Get all catalog items in an account. (Also known as products)

klaviyo_get_email_template

Get an email template with the given data. Returns attributes including the html or amp. You can view and edit a template in the Klaviyo UI at https://www.klaviyo.com/email-editor/{TEMPLATE_ID}/edit.

klaviyo_create_email_template

Create a new email template from the given HTML. Returns the ID of the template. You can view and edit a template in the Klaviyo UI at https://www.klaviyo.com/email-editor/{TEMPLATE_ID}/edit.

klaviyo_get_profiles

Get all profiles in an account. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

klaviyo_get_profile

Get details of the profile with the given profile ID. Includes additional information about their subscriptions. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

klaviyo_create_profile

Create a new profile. Must include either email, phone_number, or external_id. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

klaviyo_update_profile

Update the profile with the given profile ID. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{PROFILE_ID}

klaviyo_get_segments

Get all segments in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for the 'tags' property in the response. You can view and edit a segment in the Klaviyo UI at https://www.klaviyo.com/lists/{SEGMENT_ID}

klaviyo_get_segment

Get a segment with the given segment ID. You can view and edit a segment in the Klaviyo UI at https://www.klaviyo.com/lists/{SEGMENT_ID}

klaviyo_get_metrics

Get all metrics in an account. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metric/{METRIC_ID}/{METRIC_NAME}

klaviyo_get_metric

Get a metric with the given metric ID. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metric/{METRIC_ID}/{METRIC_NAME}

klaviyo_query_metric_aggregates

Query and aggregate event data for a specific metric, with optional grouping by dimensions such as flows, campaigns, messages, etc. IMPORTANT: This endpoint returns data based on EVENT TIME (when events occurred), NOT send date. For campaign/flow performance data that matches the Klaviyo UI (which uses send date), use get_campaign_report or get_flow_report instead. Only use this tool when: - You need to aggregate raw event data by dimensions not supported by the Reporting API, but supported by this endpoint - You need time-series data broken down by hour/day/week/month - The Reporting API tools (get_campaign_report, get_flow_report) don't fulfill your specific requirements - You need to query custom metrics or non-standard aggregations Results from this endpoint are not directly comparable to get_campaign_report or get_flow_report due to different time semantics and uniqueness definitions (not attribution — both use the same attribution framework). If cross-referencing, clearly caveat this to the user. Examples of appropriate use cases: - Sum of revenue by flow over a time period (use sum_value measurement with $attributed_flow grouping) - Count of events per day/week/month for trend analysis - Unique profile counts grouped by campaign or message - Custom metric aggregations not available in standard reports

klaviyo_subscribe_profile_to_marketing

Subscribe a profile to marketing for a given channel. If a profile doesn't already exist, it will be created. Returns 'Success' if successful.

klaviyo_unsubscribe_profile_from_marketing

Unsubscribe a profile from marketing for a given channel. Returns 'Success' if successful.

klaviyo_upload_image_from_url

Upload an image from a URL or data URI.

klaviyo_get_campaign_report

Returns metrics data for campaigns with the given filters and within the given timeframe. Can return performance data such as opens, clicks, and conversions, etc. This tool will also give you information about each campaign in the report, such as: audience names and IDs for the campaign (included audiences are audiences sent the campaign, excluded audiences are audiences not sent the campaign), campaign name, send time, send channel, and campaign ID.

klaviyo_get_flow_report

Returns metrics data for flows with the given filters and within the given timeframe. Can return performance data such as opens, clicks, and conversions, etc. This tool will also give you information about each flow in the report, such as: flow name, trigger type, and flow ID.

Questions

What is a Klaviyo MCP server?
A Klaviyo MCP server exposes Klaviyo to AI agents as Model Context Protocol tools. Instead of a custom integration per agent, any MCP client can connect to the server and call tools such as klaviyo_get_account_details or klaviyo_get_campaigns to work with Klaviyo. The server in this catalog is the official Klaviyo MCP server, which authenticates with OAuth.
What can you do with Klaviyo MCP?
Agents can read campaigns, flows, lists, segments, and metrics, manage profiles and subscriptions, and pull campaign and flow reports. The catalog lists 27 tools for this server, including klaviyo_get_account_details, klaviyo_get_campaigns, and klaviyo_get_campaign. The full list with descriptions is on this page.
Why put Klaviyo MCP behind an MCP gateway?
Connecting the Klaviyo MCP server directly to each client means a separate credential per developer, no inventory of who can reach Klaviyo through an agent, and no record of what agents did with it. An MCP gateway sits between every agent and the Klaviyo server, so sign-in runs through your identity provider, role-based access decides which teams can call which Klaviyo tools, and every call is inspected and logged in one place. The Speakeasy MCP Gateway applies those controls to Klaviyo and to every other server in your catalog.
How do you connect Klaviyo MCP through a gateway?
Add the Klaviyo server from the Speakeasy MCP catalog and every agent reaches it through one gateway URL, next to the rest of your approved servers. Authentication uses OAuth 2.1 with PKCE and dynamic client registration, sign-in runs through your identity provider, and role-based access controls decide which teams can use which Klaviyo tools. Every prompt, response, and tool call is inspected and logged at the gateway.
How is this different from an unofficial Klaviyo MCP?
Community-built Klaviyo MCP servers wrap the same Klaviyo surface but are not vendor-maintained, and most authenticate with a static credential that gives an agent everything the credential owner can touch. This catalog lists the official Klaviyo MCP server, which uses OAuth. Running it behind the Speakeasy MCP Gateway adds SSO, role-based access, and an audit trail of every call.

AI everywhere.

Control here.