Shop MCP

Connect a module

Klaviyo

ShopMCP's Klaviyo integration is built directly against Klaviyo's versioned REST API. It covers every authenticated mutation in the 2026-07-15 GA specification—including campaigns, flows, profile custom properties, catalogs, webhooks, and Custom Objects—behind one private API key and a separate workspace write gate.

Why the first-party integration

Klaviyo offers its own expanding MCP server at mcp.klaviyo.com, and ShopMCP still supports pointing at it as a fallback. The native ShopMCP integration is for teams that want a pinned API revision, complete stable write coverage, workspace-level write gating, multi-account routing, and cross-integration playbooks in the same runtime.

Current capability snapshot
CategoryKlaviyo's official MCPShopMCP KlaviyoWhy it matters
ProfilesSelected profile tools5 reads + 14 profile/subscription writesMerge dedupes duplicate people; bulk import is the tool you need for migrations from another platform.
ListsAvailable toolset varies by server flags4 reads + 5 writes — full lifecycle + membershipYou can build and maintain lists directly from a chat, not just read them.
SegmentsAvailable toolset varies by server flags5 reads + 3 writes — full lifecycleCreate and maintain rule-based audiences directly from an approved workflow.
CampaignsCore and extended tools6 reads + 10 writes incl. send, cancel, and estimation refreshThe full lifecycle is available behind ShopMCP’s write gate, including real sends and cancellation.
FlowsCore and extended tools6 reads + 6 writes across flows and action nodesBuild, update, pause, activate, or delete flows and mutate their action nodes.
Reporting2 canned reports6 report endpoints + raw metric aggregatesAny metric, any time window, any grouping — no longer limited to campaign and flow canned reports.
CouponsVaries by enabled toolsets11 tools — coupon and code lifecycle + bulk mintingGenerate single-use discount codes at scale directly from chat-driven workflows.
ReviewsVaries by enabled toolsets3 tools — read + moderationTriage incoming product reviews without opening the Klaviyo UI.
TemplatesTemplate APIs3 reads + 9 gated writes, including governed visual-editor link changesPreview an exact button, image, header, coupon, product, or social link change before replacing the native editor definition.
FormsVaries by enabled toolsets5 tools — read + create / deletePopup, embed, and flyout forms — readable and deletable via MCP.
WebhooksVaries by enabled toolsets5 tools — full lifecycleWire Klaviyo event streams into your own systems programmatically.
Custom ObjectsVaries by account and enabled toolsets21 tools — complete GA schema, mapping, ingestion, relationship, and deletion surfaceModel off-platform data (subscriptions, loyalty tiers, SKU catalogues) and personalise on it.
Bulk importsVaries by enabled toolsetsUp to 10,000 profiles or 1,000 events per jobOnboard from another platform or backfill historical events without custom ETL.
Composite playbooksNo ShopMCP cross-module playbooks9 multi-step playbooks (morning dashboard, flow health, deliverability snapshot…)One prompt, one response — instead of chaining 5–10 calls yourself.
Total toolsA broad, changing set of core, default, and beta tools206 total; 122 gated writes, including approved profile-property plansA durable API-completeness claim rather than a frozen comparison to another server's changing catalogue.

Custom profile properties

Klaviyo stores custom profile properties as case-sensitive keys inside profile.attributes.properties. ShopMCP previews the exact key, selected profiles, existing values, and proposed values before a workspace owner or admin approves a property plan. Clearing a value with null and removing the key with meta.patch_properties.unset are separate operations.

Per-profile values, not a global field registry

Klaviyo does not expose account-level custom-property definition CRUD or an API operation that purges a property key from every profile. Removing a property account-wide requires controlled profile-by-profile updates or Klaviyo Support. A custom property, including one namedAccepts Marketing, does not change subscription consent.

1. Create a private API key in Klaviyo

Log in to Klaviyo and go to Account → Settings → API keys → Create private API key. Give the key a name (ShopMCP works) and pick the scope recipe that matches how you intend to use the integration:

  • Read-only recipe — grant Readon every resource (Accounts, Campaigns, Catalogs, Coupons, Events, Flows, Forms, Images, Lists, Metrics, Profiles, Reviews, Segments, Subscriptions, Tags, Templates, Webhooks). Registers every read tool plus the composite playbooks. Writes stay off regardless of this key’s scope — that’s gated by a separate toggle (step 3 below).
  • Operational recipe — grant Full on every resource above. This is what the write tools need to work once you turn them on in the ShopMCP dashboard. You can always rotate the key to widen or narrow scope later.

Scope ≠ access

Klaviyo API key scopes gate what’s physically possible upstream. If you mint a read-only key, no amount of ShopMCP configuration will let a write succeed — Klaviyo will return a 403. ShopMCP surfaces that error cleanly (“key is missing X scope”) rather than failing silently.

2. Paste the key into ShopMCP

Open Settings → Integrations → Klaviyo and paste the key (it starts with pk_). We validate it with a single round-trip to GET /api/accounts, populate the connection label from your account’s company name, and stash the key in encrypted storage — it never leaves your workspace and never gets logged.

3. (Optional) Enable writes

Flip Allow writes on the same settings page when you want the write tools active. Defaults to off — even an operational-recipe key cannot modify Klaviyo data until this toggle is on. Consequential operations add explicit confirmation and preflight checks before the upstream call.

Sending campaigns hits real people

klaviyo_send_campaign ships real emails or SMS to real recipients. Use klaviyo_get_campaign_recipient_estimation first to see the audience size, and verify the subject line + send time on the draft before confirming the send. ShopMCP is not responsible for over-sends, bounced deliverability, or billing from SMS segments.

4. Multi-account setups (agencies)

Klaviyo API keys are scoped to a single account — there’s no MCA equivalent. If you manage multiple Klaviyo accounts (typical for agencies on our Team / Agency tiers), mint one private API key per account and connect each as its own ShopMCP connection. When two or more are active, every klaviyo_* tool gets a store parameter that targets a specific account — by label, account name, account ID, or connection ID.

5. Keeping the legacy integration

If you already OAuthed into Klaviyo’s official MCP server (mcp.klaviyo.com/mcp) and prefer to keep that path, you can still do so via the external-MCP wizard — we’ll record the URL, probe its tool list, and route playbook steps through it. But the available tool set and behavior differ from ShopMCP’s native connector. Use the native integration when you need stable full-write coverage, cross-module playbooks, or ShopMCP’s workspace write gate.

Our coverage pledge

Klaviyo ships new API endpoints regularly. We track its GA OpenAPI specification and deprecation calendar, pin the revision header in @shopmcp/klaviyo-mcp, and keep beta or client-side endpoints outside the production completeness claim until they fit this server-side integration.