Marketing analytics & reporting

Klaviyo MCP: connect Klaviyo to Claude and trust the answers

A Klaviyo MCP server is a connector that lets AI tools like Claude read your Klaviyo data, and act on some of it, in plain language. 

Connecting one takes about five minutes, but getting accurate answers back from Claude is the harder piece of the puzzle.

This article covers what the official Klaviyo MCP server does, the three types of setup and what each is good for, two ways to connect Klaviyo to Claude, and a prompt library for querying email alongside everything else you run.

Whatagraph marketing reporting tool
Yamon

Aug 10 202610 min read

Share at:
LinkedIn IconFacebook IconX Icon
Summarize with:
ChatGPT IconPerplexity IconGoogle IconClaude Icon
Whatagraph marketing reporting tool

Ask Claude what your email campaigns made last month and you'll have an answer in about four seconds. Cleanly formatted, confident, specific to the dollar.

Then you open Klaviyo dashboard and the number is different, like this marketer on r/klaviyo (and all the others underneath the post):

klaviyo-mcp-reddit-numbers-are-all-off.pngThat’s not a Claude problem; it’s just reading your account directly.

What you need is not just a connector for Klaivyo to Claude, but a governed semantic layer which sits between Shopify, Klaviyo, and all other channels you use to ensure data accuracy.

With a layer like that you can unify names and dimensions, create custom metrics, blend data, and more making sure that Claude is always pulling from your cleaned and defined data, rather than making things up on the fly.

This article covers not only how you can connect Klaviyo to Claude, but also how to do it with a semantic layer so you can get back accurate answers, every time.

TL;DR

  • A Klaviyo MCP server is a connector that lets Claude and other AI tools query your Klaviyo data, and create some things in it, in plain language.
  • Klaviyo ships an official one. It's free, it's good, and it's the right choice for campaign drafting, template work, and auditing a single account.
  • There are five common reasons its numbers come back different from your Klaviyo dashboard, and none of them throw an error.
  • It also connects to one Klaviyo account at a time, and it can only see Klaviyo.
  • If you need email numbers that hold still, or you need them next to Google Ads, Meta, GA4 and Shopify, connect Klaviyo through Whatagraph's MCP instead. Full walkthrough and prompt library below.

What is the Klaviyo MCP server?

The Klaviyo MCP server is a connector that gives an AI client like Claude, ChatGPT or Cursor direct access to your Klaviyo account. You ask a question in plain language and it queries Klaviyo's APIs on your behalf: campaign data, flow performance, segments, profiles, customer data, whatever you'd normally go clicking through reports to find.

MCP stands for Model Context Protocol. It's the open standard Anthropic published in late 2024 that lets LLMs talk to outside systems without someone building a custom integration for every pair. We covered the wider picture in our guide to MCP for marketing.

Arturas Lazejevas, Whatagraph's CTPO, puts it in plain terms:

Think of MCP as a door that LLMs like Claude or ChatGPT can use to access any of your systems that you connect (through the MCP).

However, Klaviyo MCP isn't the same thing as Klaviyo AI, the AI built into the Klaviyo platform. The MCP is about getting your Klaviyo data out, into whichever AI tool your team already works in.

Three types of Klaviyo MCP setups

Not every MCP connection is built the same though. To avoid data discrepancies, before you pick one, ask a few questions:

  • Is it reading Klaviyo's raw API output, or a modeled version of your data?
  • Can it answer a question that spans Klaviyo and your ad platforms at once?
  • Who decides what counts as revenue, you or the model?
  • Do you get the same number on Monday that you got on Friday?

The answers depend entirely on which setup you're running. There are three in the market right now.

Single platform MCPStitched connector MCPsMCP over a governed semantic layer (Whatagraph)
What it isKlaviyo's official MCP server, or a community server from GitHubKlaviyo's MCP plus a Shopify MCP plus a Meta MCP plus a GA4 MCP, side by side, nothing shared between themA protocol over a unified data model. Klaviyo becomes a governed source sitting next to your other channels
What it readsKlaviyo's APIs, raw or attributed depending what gets asked forEach platform's raw API outputModeled data: metrics defined, attribution set, currencies converted, naming normalized before anything queries it
Who decides what "revenue" meansThe model, per questionThe model, per question, per platformYou, once
Cross-channel answerNot its job. Klaviyo only, by definitionClaude stitches it together at query time, and the math driftsPre-blended in the data model
Same question, same answerOnly if you ask precisely, every timeNo. Depends on the promptYes. Metrics are defined once
Multiple accountsOne connection, one Klaviyo accountOne connector per platform, per accountEvery account in one layer, scoped by client

Remember the data discrepancies issue you saw in the introduction? With a MCP over a governed data layer like Whatagraph, these issues would be gone. As Arturas explains:

Whatagraph doesn't query separate connectors like Facebook, Google Analytics, and Google Ads on the fly and have Claude reason about it. We unify all of that data as it comes in. The MCP is just the query layer on top.

In this article, we'll share how to connect Klaviyo to Claude and other AI tools with Whatagraph so you get back answers you can trust, every time.

If you'd like a guide to use Klaviyo's official MCP, check out this documentation.

How to connect Klaviyo to Claude with Whatagraph [7 Steps]

Here's a video breakdown of how to connect platforms like Klaviyo to Claude with Whatagraph:

Step 1: Connect Klaviyo as a source in Whatagraph

In Whatagraph, go to Connect new source, search for Klaviyo, and authenticate your account.

Whatagraph's native connectors are maintained in-house by our engineers so you don't have to babysit your connectors.

klaviyo-connect-source-whatagraph.png

Historical data gets backfilled on connection, and Whatagraph Storage keeps it. As Arturas puts it:

We also provide Whatagraph storage to make sure the data is backfilled, to make sure the data is always ready, to make sure it's stored and ready for your extensive analysis.

Step 2: Set up your governed data layer

This is the semantic layer part that makes sure your data is cleaned and structured so Claude will give you accurate answers. Arturas recommends:

My suggestion would be to really embed your business logic into Whatagraph (or any tool you’re using) first, so that Claude doesn't need to reason about it. It doesn't need to figure that stuff out every time.

What to set up before you start querying:

Normalize your naming with custom dimensions. Klaviyo metrics are account-specific events, so what one client's account calls Placed Order another calls something else. Campaign naming drifts worse, and inherited accounts are the usual reason.

We've heard this described exactly by an agency running a portfolio: their own UTM convention is consistent, but accounts they took over from other agencies use different ones, so the same channel arrives as both "Facebook Paid" and "Facebook CPA" and splits into two rows that won't join to spend. A custom dimension maps them to a single value.

You describe the mapping in plain language and Whatagraph builds it. For example, I normalized campaign names from Shopify and Klaviyo with just one prompt with Whatagraph IQ. Once that’s done, Claude and all your reports and dashboards will show the normalized name you specified for all similar campaigns.

klaviyo-custom-dimension-standardize-campaign-names.png

Blend the sources that need to sit in one table. Klaviyo and Shopify don't share a report type, so a blend merges them into one virtual source on a shared join key.

For example, I built a blend joining our Klaviyo campaigns report to our Shopify sales report on date, with Revenue (Placed Order) on one side and Net sales on the other:

klaviyo-shopify-data-blend.png

Define any metric as a custom metric. Decide what counts as revenue or conversions for your business, build a custom metric once, and use it across all your reports and AI tools. This is also where you cover anything Klaviyo doesn't calculate natively: revenue per send, contribution after fees and shipping, email's share of blended revenue.

Check currency settings. Whatagraph detects each source's original currency automatically. But you can also set custom currency at the source level so you don’t have to do it manually each time.

Set currency - Klaviyo MCP.png

Organize by Space and tag your sources. One Space per client keeps access scoped and makes "compare all my ecommerce clients" a question with an answer.

Assign tags - Klaviyo MCP.png

Step 3: Add the Whatagraph MCP connector in Claude

In Claude, go to Settings, then Connectors, then Add custom connector. Name it Whatagraph and use https://mcp.whatagraph.com/mcp as the remote MCP server URL.

Step 2 of how to connect LinkedIn to Claude - Klaviyo MCP.png

Step 4: Authorize the connection

Click Connect, sign in, and pick the team you want Claude to reach. No API keys, no config file, no private key sitting in plain text.

Step 3 of how to connect LinkedIn to Claude - Klaviyo MCP.png

Step 5: Set your permissions, carefully

You'll see a list of tool permissions. For read tools, switching them to "Always allow" saves you approving every single data pull, which gets old fast.

Step 4 of how to connect LinkedIn to Claude - Klaviyo MCP.png

For write and delete, slow down. Arturas again:

I wouldn't right away click always allow for the write functions. You can always leave it as ask for approval, until you're absolutely confident that you can trust it, and you're confident that it actually does the work it's supposed to do for your organization and for your specific context.

His recommendation: leave write tools on approval, and keep the delete tools blocked entirely until you actually need to clean something up.

Step 6: Test it

Ask Claude what it can see: "What do you have access to in my Whatagraph account?" You should get your connected sources, Spaces and account details back.

Step 5 of how to connect LinkedIn to Claude - Klaviyo MCP.png

Then run the test that actually matters for this article. Ask for last month's Klaviyo campaign revenue and check it against your Klaviyo dashboard. If your layer is set up properly, those two numbers are the same number.

Step 7: Add your own context with Claude skills

Whatagraph's MCP ships with its own skills, loaded on demand, that you can use to analyze your Klaviyo data and cross-channel performance.

Once you type in a prompt on Claude, Whatagraph MCP will automatically pull up the relevant skill on the backend to answer your query in the most accurate way possible.

whatagraph-mcp-bundled-skills.png

That said, Arturas still recommends creating your own skills on top of Whatagraph's with your own business logic.

I especially recommend starting a chat with Claude, getting to the result you want to get, and then say, now Skill Creator, create a skill so we can embody this for the future chats. These are the conversions I care about, this is the source group you need to query, these are the filters for the campaigns that matter.

Klaviyo MCP prompt library by use case

Every prompt below assumes Klaviyo is connected through Whatagraph, with your metrics and attribution already defined. Natural language prompts are the point of an MCP, but vague ones get vague answers, so these name the metric, the date range and the breakdown.

The first group stays inside Klaviyo. The second is where it gets interesting.

Single-channel: Klaviyo on its own

Campaign and flow performance

"Show me every campaign sent in the last 30 days with open rate, click rate and revenue. Sort by revenue, highest first."

"Compare my welcome flow and abandoned cart flow over the last quarter. Revenue, conversion rate and revenue per recipient."

"Which of my active flows haven't triggered in the last 14 days?"

"Show me campaign revenue for the last 90 days, broken down by week and campaign type."

"Which flows have declining revenue month over month for the last three months? Show me the trend, not just the totals."

"What's my revenue per send this month versus the same month last year?"

List health, deliverability and growth

"What's my unsubscribe rate by campaign over the last 60 days? Flag anything above 0.5%."

"Show me bounced and dropped email counts for the last month, broken down by campaign."

"Which segments have the highest engagement in the last 90 days, and which have gone quiet?"

"How has my list grown over the last six months? Show net growth after unsubscribes."

"Compare SMS consent rate and SMS click performance against email for the same period."

Across client accounts

Still Klaviyo data, just more than one account at a time. These are the ones a single-account connection can't do at all.

"Rank all of my clients by email revenue growth this quarter versus last."

"Which client had the worst unsubscribe rate last month, and what campaigns drove it?"

"Show me every client where email revenue dropped more than 20% month over month, with the campaigns and flows behind the drop."

"Across all accounts, which flow type generates the most revenue per recipient?"

"Which clients haven't sent a campaign in the last three weeks?"

Cross-channel: Klaviyo next to everything else

Email next to paid

"What was our blended MER last month? Break it down by channel and show me email's share of total revenue."

"Compare Google Ads spend, Meta Ads spend and email revenue for the last six months. Where did the ratio shift?"

"Show me total revenue by channel for Q3 with email, paid search, paid social and organic side by side. Flag anything that moved more than 15% versus Q2."

"Our paid social spend went up 40% in July. Did email revenue move with it, or independently?"

"Which channel is bringing in the customers who go on to open our emails? Compare list growth against acquisition source."

Ecommerce: Klaviyo, Shopify and GA4

"Pull Shopify orders, GA4 sessions and Klaviyo email revenue for last month. Show me conversion rate, average order value and email's contribution to each."

"How many of last month's repeat purchases came from customers who clicked an email in the 30 days before?"

"Show me new versus returning customer revenue for the last 90 days, and which marketing automation flows touched each group."

"Our conversion rate dropped last week. Walk me through it: sessions, add-to-carts, orders, average order value, and what changed in each channel."

"Which product categories does email sell best, and how does that compare to what paid search sells?"

Reconciliation and troubleshooting

"Klaviyo revenue and Shopify revenue disagree for last month. Break both down by day and show me where they diverge."

"Check the health of all my connected sources. Anything not syncing, anything with gaps in the last 30 days?"

"Total revenue this month doesn't match what I expected. Break it down by channel and show me which one moved."

Client reporting

"Write an executive summary of last month's performance for this client. Cover email, paid and organic, lead with what changed, and keep it under 200 words."

"What are the three things I should tell this client about their email program this month, and what's the evidence for each?"

"Build me a report tab comparing email and paid performance for the last six months, with a revenue trend chart and a channel breakdown table."

If you'd rather start from something pre-built, our Klaviyo dashboard template covers the standard email reporting view and you can point Claude at it from there.

Wrapping up

Connecting Klaviyo to Claude is the easy part. The harder part is getting an answer you can trust.

This means setting up a semantic data layer with your business logic in a marketing intelligence platform like Whatagraph.

That layer is also what powers your Klaviyo dashboards and marketing reports, so the number Claude gives you and the number your client sees come from the same place.

Start a free trial and connect Klaviyo alongside the rest of your stack, or book a demo and we'll show you what a governed layer looks like for your accounts.

Published on Aug 10 2026

Share at:
LinkedIn IconFacebook IconX Icon
Summarize with:
ChatGPT IconPerplexity IconGoogle IconClaude Icon
Whatagraph marketing reporting tool

WRITTEN BY

Yamon

Yamon is a Senior Content Marketing Manager at Whatagraph. With an eye for detail and a knack for always considering context, audience, and business goals to guide the narrative, she's on a mission to create genuinely helpful content for marketers. When she’s not working, she’s hiking, meditating, or practicing yoga.

Save 100+ hours a month on reporting with Whatagraph

Frequently Asked Questions

All your questions answered. And if you can’t find it here, chat to our friendly team.

What is the Klaviyo MCP server?

The Klaviyo MCP server is a connector that lets AI tools query and act on your Klaviyo account in plain language, without exports or custom code. It runs on the Model Context Protocol, the open standard Anthropic published in late 2024 so that AI clients and outside systems can talk to each other without a bespoke integration for every pair. Klaviyo's version is generally available to all customers and free to use.
 

How do I connect Klaviyo to Claude?

There are two routes, and which one you want depends on whether the question you're asking stops at Klaviyo.

 

Through Klaviyo's own MCP, for work inside Klaviyo: in Claude, go to Settings, then Connectors, then Browse connectors, find Klaviyo and click Connect. Sign in with an Owner, Admin or Manager account. The connection binds to whichever Klaviyo account you were signed into.

 

Through Whatagraph's MCP, for anything cross-channel or multi-client:

 

1. Connect Klaviyo as a source in Whatagraph using a Klaviyo private API key

 

2. Connect the channels around it, and define your metrics and attribution

 

3. In Claude, add a custom connector pointing at https://mcp.whatagraph.com/mcp

 

4. Authorize and pick your team. No API keys on the Claude side

 

The second option makes sure that the answers Claude gives you matches your Klaviyo dashboard.

Is the Klaviyo MCP server free?

Depends on what you mean by "free".

 

Technically the official Klaviyo MCP is free if you're already a Klaviyo customer, which means you still have to pay for Klaviyo.

 

Same goes for Whatagraph. Whatagraph's MCP for Klaviyo and other 65+ channels is free, if you're already a customer of Whatagraph. Check out our full pricing here. 

 

But with Whatagraph, you won't just have a MCP server, but also native connections with 65+ other platforms for cross-channel analysis, governed data layer, white-label reporting, and AI agents. 

Does the Klaviyo MCP work with ChatGPT, Cursor and Claude Code?

Yes. It works with any of the common MCP clients:

 

ChatGPT: Klaviyo ships a listed app, or you can add it as a custom MCP server in developer mode

 

Cursor and VS Code: add https://mcp.klaviyo.com/mcp to your MCP config

 

Claude Code: claude mcp add --transport http klaviyo https://mcp.klaviyo.com/mcp

 

Local: install the server with uvx and point it at a Klaviyo private API key

 

Whatagraph's MCP works with the same clients, since it's the same protocol. Add https://mcp.whatagraph.com/mcp as a custom connector or drop it into your MCP config.
 

Why don't the Klaviyo MCP's numbers match my Klaviyo dashboard?

This is the most common complaint from people who've connected it, and there isn't one cause. The usual five:

 

- The AI queried raw order events instead of the attributed revenue Klaviyo had already calculated


- It picked a different conversion metric than your dashboard uses


- The attribution window it assumed doesn't match your Klaviyo settings


- Revenue got grouped by purchase date rather than message send date


- Klaviyo's revenue fields landed in the wrong place in what the AI reported back
 

None of these throw an error. You get a clean, confident number that happens to be wrong, and the only signal is that it disagrees with your dashboard.
 

Can I report on a Klaviyo metric that Klaviyo doesn't calculate natively?

Yes, through Whatagraph's custom metrics. You build the formula once, save it, and it works everywhere: in your reports, and in every answer Claude gives from then on. Common ones teams build:

 

- Email revenue per send

 

- Contribution after fees, shipping and cost of goods

 

- Email's share of blended revenue

 

- Repeat purchase rate by flow

 

- Revenue per subscriber, by segment
 

When two people on my team ask Claude the same question, do they get the same number?

Not reliably with a direct API connection. The answer depends on how each person phrased the question, which metric the model chose, and which endpoint it hit.

 

With metrics defined once in a governed layer like Whatagraph, the definition doesn't change based on who's asking or how they worded it.
 

Can an agency use the Klaviyo MCP across multiple client accounts?

Only with a workaround, because one OAuth connection binds to one account. Klaviyo's own guidance is:

 

- Create a separately named custom connector for each client

 

- Keep a separate Claude project per client

 

- Enable only the relevant connector before each new chat

 

That works for one client at a time. What it can't do is answer a question that spans clients, like which account had the worst unsubscribe rate last month, and it means twelve clients is twelve connectors and a manual toggle you have to remember.

 

Through Whatagraph, it's simple as 1-2-3. You:

 

- connect all your sources for every Klaviyo client account plus 65 other marketing channels 

 

- organize these sources into folders by client

 

- clean and normalize your data

 

- connect to Claude through Whatagraph MCP and ask any questions you want about your Klaviyo and cross-channel data

Can Claude read Klaviyo alongside Shopify, Meta and GA4 in one answer?

Not through Klaviyo's MCP, which reads Klaviyo and nothing else. You can run several platform MCPs side by side and let the model stitch them together, but each one hands over its own raw numbers with its own definitions, attribution windows and currency, so the reconciliation falls to the model and the math drifts.

 

Connect them all through Whatagraph instead and the reconciliation has already happened before the question gets asked, because every source was mapped to the same metrics and dimensions on the way in.

Can Claude write to my Klaviyo account?

Yes. Whatagraph's MCP reads and writes, so Claude can build the reporting layer rather than only querying it:

 

- Create custom metrics with your own formulas

 

- Create custom dimensions to normalize naming across accounts

 

- Tag sources, set goals and convert currencies

 

- Build widgets, tabs and whole reports

 

The difference matters. Writing into Klaviyo changes a campaign. Writing into the governed layer changes what every future answer is built on, for everyone on the team.

What Klaviyo data can I query through Whatagraph?

Klaviyo comes in as three report types through the integration: account, campaigns and flows. Between them you get engagement data (sends, opens, clicks, bounces, unsubscribes), SMS consent and delivery, subscriber and list growth, and revenue, which appears on the campaigns report type as Revenue (Placed Order).

 

On top of that, anything you define as a custom metric or custom dimension is queryable too, which is how teams cover numbers Klaviyo doesn't calculate natively and how they normalize naming across client accounts.

Do I still need a reporting tool if I have the Klaviyo MCP?

If email is your only channel, you work in one account and nobody else sees the numbers, probably not.

 

If any of the following are true, you still need a reporting tool (ideally one with a governed data layer) where your definitions and reporting live:

 

- You report on more than one channel

 

- You manage more than one account or client

 

- Anyone besides you sees the output

 

- The same question needs the same answer next month

 

Does this work for SMS as well as email?

Yes. Klaviyo's SMS data comes through the same connection either way, so sends, clicks, consent and unsubscribes are all queryable.

 

Through Whatagraph you can also put SMS next to paid and organic in one question, which is where the comparison usually needs to end up.

Is my customer data safe with an MCP connection?

Whatagraph's MCP connection uses the same authentication and access controls as your Whatagraph account:

 

- Each user only accesses the accounts and data they're already authorized to see

 

- No data is stored by the AI application

 

- Queries are resolved in real time against your Whatagraph data

 

So connecting it doesn't widen anyone's access. Whatever a team member can see when they log in is exactly what they can reach through Claude.

 

Whatagraph is also GDPR compliant and ISO 27001 certified and there's SSO/SAML available. 

What's the difference between Klaviyo's official MCP server and the ones on GitHub?

They're not the same category of thing:

 

Official: hosted by Klaviyo, OAuth authentication, maintained alongside the API, your key never leaves Klaviyo

 

Community servers: usually run locally against a KLAVIYO_API_KEY in a plain-text config file, maintained by whoever built them

 

Third-party MCP platforms: route your credentials through their own infrastructure

 

For your own store, a community server might be fine. For a client's account, the official one exists and there's little reason to use anything else.