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.

Aug 10 2026●12 min read

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):
That’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 set your attribution window, unify names and dimensions, create custom metrics, blend data, e.t.c. 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 MCP | Stitched connector MCPs | MCP over a governed semantic layer (Whatagraph) | |
|---|---|---|---|
| What it is | Klaviyo's official MCP server, or a community server from GitHub | Klaviyo's MCP plus a Shopify MCP plus a Meta MCP plus a GA4 MCP, side by side, nothing shared between them | A protocol over a unified data model. Klaviyo becomes a governed source sitting next to your other channels |
| What it reads | Klaviyo's APIs, raw or attributed depending what gets asked for | Each platform's raw API output | Modeled data: metrics defined, attribution set, currencies converted, naming normalized before anything queries it |
| Who decides what "revenue" means | The model, per question | The model, per question, per platform | You, once |
| Cross-channel answer | Not its job. Klaviyo only, by definition | Claude stitches it together at query time, and the math drifts | Pre-blended in the data model |
| Same question, same answer | Only if you ask precisely, every time | No. Depends on the prompt | Yes. Metrics are defined once |
| Multiple accounts | One connection, one Klaviyo account | One connector per platform, per account | Every account in one layer, scoped by client |
Remember the data discrepancies issue you saw in the intro? With a MCP over a governed data layer, 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.
How to connect Klaviyo to Claude: 2 options
There are two routes here, and they're not competing. Most retention teams should end up running both.
Option 1 is Klaviyo's official MCP server, which is free and genuinely well built (with a few caveats).
Option 2 is connecting Klaviyo through Whatagraph, which is what you want if you want to see accurate, cross-channel data.
Option 1: connect Klaviyo to Claude with the official MCP server
Setup differs slightly by client, but it's the same server URL behind all of them. For a single Klaviyo account, this takes about two minutes.
In Claude, go to Settings, then Connectors, then Browse connectors. Klaviyo is listed. Click Connect, sign in, approve the permissions, and it binds to whichever Klaviyo account you're logged into.
For multiple accounts or custom settings, add it as a custom connector instead, pointing at https://mcp.klaviyo.com/mcp. That needs a paid Claude plan.
In ChatGPT, Klaviyo is a listed app. You can also add it as a custom MCP server in developer mode.
In Cursor, VS Code or Claude Code, drop the same URL into the MCP client config. For Claude Code it's one line: claude mcp add --transport http klaviyo https://mcp.klaviyo.com/mcp.
If you'd rather run it yourself, there's a local server you install with uvx and point at a Klaviyo private API key. That's the developer route, and it means managing a KLAVIYO_API_KEY in a config file.
Two things catch people out. You need an Owner, Admin or Manager role in Klaviyo, so a Member or Analyst seat won't authorize it. And the connection binds to the account you were signed into when you approved it, which matters more than it sounds like it should.
A few query parameters can be appended to the server URL, and they're useful to know about:
read-only=truestrips out every write tooldisable-tools-with-user-generated-content=trueblocks the tools that return customer-written textcore-tools-only=truelimits the server to the core set, which helps when the model gets overwhelmed by choicetoolsets=narrows it to specific groups of tools
What it's good at
Quite a lot, and let's be specific about it, because the limitations below aren't a reason to skip it.
Drafting a campaign from a brief and assigning a template to it. Building, cloning and updating email templates. Creating and updating profiles, subscribing someone to a list.
Auditing an account: which flows are live, which segments have gone stale, what a campaign's open and click rates looked like. Pulling flow performance without clicking into six reports.
If your job is inside Klaviyo, this is the right tool and Whatagraph doesn't replace it.
Where it runs out of road is everywhere else. Three limitations matter before you build a workflow on it.
Limitation 1: the numbers often don't match your Klaviyo dashboard
Remember the Reddit thread from the intro? I read through the replies, and here are two key reasons why the numbers on Claude and your Klaviyo dashboard might not match:
1. Claude pulled raw order events instead of the attributed revenue Klaviyo had already calculated

2. The attribution window it assumed didn't match the account's Klaviyo settings

This is why it's important to have a governed data layer that cleans and normalizes your Klaviyo data rather than pulling data from a raw API directly.
Limitation 2: one connection, one Klaviyo account
The OAuth connection binds to a single account. If you manage retention for twelve brands, Klaviyo's own agency guidance is to create a separately named custom connector for each client, keep a separate Claude project per client, and turn on only the relevant connector before each new chat.
That works. It's also twelve connectors, twelve projects and a manual toggle you have to remember, and it means "which of my clients had the worst unsubscribe rate last month" isn't a question you can ask at all.
Limitation 3: it can only see Klaviyo
A Klaviyo MCP server reads Klaviyo. That's the whole design.
The trouble is that email doesn't perform in isolation, and the questions that decide budget almost never stop at the inbox. Whether the abandoned cart flow closed the sale or the retargeting ad did. What email contributed to blended MER. Whether your list is growing because of paid acquisition or in spite of it.
The obvious move is to run Klaviyo's MCP next to a Shopify MCP, a Meta Ads MCP and a GA4 MCP, and let Claude put the pieces together. That's the stitched setup from the table above, and it works until it doesn't. Every platform hands over its own raw numbers with its own definitions, its own attribution windows and its own currency, and the reconciliation lands on the model.
Laurynas Arminas, Whatagraph's Product Manager, has watched several marketing teams go down this path:
It's easy to get something 80% done and think you're there. But then you realize how hard that remaining 20% is. Once you're working with seven different channels, seven different places pulling data from MCPs, things start getting confusing. Every time you add a client or a channel, you need to update everything, and things slip through the cracks.
The 80% arrives in an afternoon. The last 20% is metric definitions, attribution rules, currency conversion and naming that means the same thing across accounts, and none of that gets easier by adding another MCP server.
Option 2: connect Klaviyo to Claude through Whatagraph's MCP
This is the same idea from a different starting point. Instead of Claude reaching into Klaviyo and working out what it's looking at, Klaviyo becomes one governed source in a data layer you've already defined, and Claude queries that.
It answers the three limitations above in order.
The discrepancies stop happening. Your conversion metric is a custom metric you defined once, with your business logic inside it. Your dimensions are cleaned up so campaign and flow naming means the same thing across every account you run.
By the time Claude asks for last month's campaign revenue, there's nothing left for it to decide. It reads the number you already defined, which is the same number in your report, which is the same number your colleague gets when they ask on Friday.
Custom metrics cover what Klaviyo doesn't. You're not limited to the metrics Klaviyo reports natively. If the number your business actually runs on is email revenue per send, or contribution after fees and shipping, or repeat purchase rate by flow, you build it once as a custom metric and it works everywhere: in your reports, and in every answer Claude gives you from then on.
This also fixes something Klaviyo's MCP structurally can't. Klaviyo metrics are account-specific events, so one client's account calls it Placed Order and another's calls it something else entirely. A single-account connector has no way to reconcile that, because it never sees two accounts at once. Custom dimensions normalize it once, in the layer.
Every account sits in one place. Client accounts are organized into Spaces rather than separate connectors you toggle per chat. "Which of my clients had the worst unsubscribe rate last month" becomes a question with an answer.
Klaviyo sits next to everything else. Google Ads, Meta Ads, GA4, Google Search Console, Shopify, all mapped to the same metrics and dimensions. Cross-channel MER, blended ROAS, email's share of total revenue, the flow-versus-retargeting question, all answerable in one conversation rather than four.
Claude can build the layer, not just read it. Whatagraph's MCP writes as well as reads. You can ask Claude to create a custom metric with your formula in it, build a custom dimension that normalizes naming across clients, tag sources, set a goal, convert currencies, or build a widget, a tab or a whole report.
Sit with that difference for a second. Writing into Klaviyo changes a campaign. Writing into the governed layer changes what every future answer is built on, for everyone on your team.
And soon, work that happens without you asking. IQ Agents are Whatagraph's AI agents, currently in early access. Where the MCP waits for you to ask a question, agents work in the background: watching for anomalies across your channels, surfacing what changed and why, and drafting the analysis before you've opened the tab.
Request early access to IQ Agents.
Which option fits which job
| If you want to... | Use |
|---|---|
| Draft a campaign, build or clone a template, update profiles | Klaviyo's official MCP |
| Audit one account's flows and segments | Klaviyo's official MCP |
| Get a Klaviyo revenue number that matches your dashboard every time | Whatagraph MCP |
| Report on a metric Klaviyo doesn't calculate natively | Whatagraph MCP |
| Ask what email contributed to blended revenue | Whatagraph MCP |
| Compare twenty Klaviyo accounts in a single question | Whatagraph MCP |
| Have the layer maintained without prompting for it | Whatagraph IQ Agents (early access) |
7 steps to connect Klaviyo to Claude with Whatagraph MCP
The connection itself is steps 4 to 6 and takes about two minutes. Step 3 is the one that decides whether the answers are any good.
Step 1: Connect Klaviyo as a source in Whatagraph
In Whatagraph, go to Connect new source, search for Klaviyo, and authenticate with a Klaviyo private API key, which you generate in your Klaviyo account settings.

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.

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:

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.

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.

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 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 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.

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.

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.

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. Klaviyo's official MCP server is free, it takes two minutes, and for work you do inside Klaviyo it's the right tool.
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.

WRITTEN BY
YamonYamon 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.