Klaviyo MCP server

OfficialKlaviyoConfig last verified Jun 1, 2026

Klaviyo's official MCP server lets agents read and manage profiles, campaigns, flows, lists, segments, events, metrics, and templates with reporting built in.

The Klaviyo MCP server is Klaviyo's official integration that connects an AI client directly to your Klaviyo account so it can both analyze and act on your marketing data. It covers the major Klaviyo objects end to end: list and inspect profiles, campaigns, flows, lists, segments, catalog items, events, and metrics; create and update profiles; subscribe or unsubscribe people from marketing on a given channel and list; create campaigns and assign templates; and author, clone, render, and manage HTML and drag-and-drop email templates. Reporting tools return campaign and flow performance so an agent can summarize results, and an aggregation tool lets it query event data behind a metric. There is also a translations surface for localizing campaigns, flows, and templates.

Klaviyo ships two ways to run it. The local stdio server is published to PyPI and launched with uvx klaviyo-mcp-server@latest, authenticated with a Klaviyo private API key via the PRIVATE_API_KEY environment variable, with optional READ_ONLY and ALLOW_USER_GENERATED_CONTENT toggles. A hosted remote endpoint at https://mcp.klaviyo.com/mcp uses OAuth with dynamic client registration for broader, browser-based access. It is available to all Klaviyo customers.

Quick install

Copy-paste configs are provided for all 8 supported clients. Pick your client below.

Add to ~/.claude.json

~/.claude.json
json
{
  "mcpServers": {
    "klaviyo": {
      "type": "http",
      "url": "https://mcp.klaviyo.com/mcp"
    }
  }
}
Or via CLI
bash
claude mcp add --transport http klaviyo https://mcp.klaviyo.com/mcp

Heads up

  • First tool call opens a browser to authorize.

Available tools

ToolDescription
get_account_detailsGets details of your Klaviyo account.
get_campaignsLists your campaigns.
get_campaignGets details of a campaign.
create_campaignCreates a campaign.
assign_template_to_campaign_messageAssigns an email template to a campaign message.
get_catalog_itemsLists your catalog items.
get_eventsLists events.
create_eventCreates an event for a profile.
get_metricsLists event metrics.
get_metricGets details of an event metric.
query_metric_aggregatesQueries and aggregates event data associated with a metric.
get_flowsLists your flows.
get_flowGets details of a flow.
get_listsLists your lists.
get_listGets details of a list.
get_segmentsLists your segments.
get_segmentGets details of a segment.
upload_image_from_fileUploads an image from a local file.
upload_image_from_urlUploads an image from a URL.
get_profilesLists your profiles.
get_profileGets details of a profile.
create_profileCreates a profile.
update_profileUpdates a profile.
subscribe_profile_to_marketingSubscribes a profile to marketing for a given channel and list.
unsubscribe_profile_from_marketingUnsubscribes a profile from marketing for a given channel and list.
get_campaign_reportGets a report of your campaign performance.
get_flow_reportGets a report of your flow performance.
create_email_templateCreates an HTML email template.
get_email_templateGets the details of an email template.
create_dnd_email_templateCreates a drag-and-drop (DND) email template from a structured definition.
update_dnd_email_templateUpdates an existing drag-and-drop (DND) email template.
list_email_templatesLists your email templates.
update_email_templateUpdates an HTML email template.
clone_email_templateClones an email template.
delete_email_templateDeletes an email template.
render_email_templateRenders an email template with provided context.
get_translationsLists all translation collections.
get_translationGets a translation collection by ID.
create_translationCreates a translation collection for campaigns, flows, or templates.
update_translationUpdates translation settings (locales) and/or imports translated values.
delete_translationDeletes a translation collection and all its localized values.

Required configuration

  • PRIVATE_API_KEYOptional

    Klaviyo private API key for the local stdio server. Not needed when using OAuth on the remote endpoint.

  • READ_ONLYOptional

    Set to true to expose only read tools on the local server. Defaults to false.

  • ALLOW_USER_GENERATED_CONTENTOptional

    Set to false to block tools that render user-generated content on the local server. Defaults to true.

What you can do with it

Build and analyze a campaign in one place

An agent creates a campaign, assigns an email template, and after it sends pulls the campaign report to summarize open, click, and revenue performance — no dashboard hopping.

Segment and message the right audience

The agent inspects profiles, lists, and segments, queries metric aggregates to find high-intent customers, and subscribes the right people to a marketing channel before launching a flow.

FAQ

Is it free?
Yes. The MCP server is free and available to all Klaviyo customers; you connect it to your existing account. Usage is governed by your Klaviyo plan and API limits.
Does it support remote/OAuth?
Yes. A hosted remote endpoint at https://mcp.klaviyo.com/mcp uses OAuth with dynamic client registration. A local stdio server (uvx klaviyo-mcp-server@latest) authenticates with a private API key instead.
Can I run it read-only?
Yes. The local server honors a READ_ONLY environment variable; set it to true to expose only the read tools and prevent any writes to your Klaviyo account.
← Browse all marketing servers