Connect Meta Ads and Google Ads to Claude, with your store
In short
You connect an MCP server that already holds both. Platform MCPs give an assistant one ad account each; none of them has seen your store, so none can tell you what the shop actually took. Loyalz exposes ad spend and settled orders through the same tools, so one query returns both sides.
You can already connect Meta Ads to Claude. Meta ships its own MCP server, Google has one, and a dozen startups will sell you a third. Each gives an assistant a view of one platform. That is the problem, not the solution.
What an MCP server for marketing data actually is
MCP is a protocol for handing a model a set of tools it can call. An MCP server for marketing data exposes your accounts as functions — fetch this metric, over this date range, broken down this way — so the assistant queries the data instead of you pasting a screenshot of it.
What separates one from another is not the protocol. It is what sits behind the tools.
| Platform MCP | Loyalz MCP | |
|---|---|---|
| Reaches | One ad account | Every connected channel plus the store |
| Answers | What the platform reported | What the platform reported and what the store settled |
| Grain | Campaign, ad, creative | Account, by day, week or month |
| Can it change things | Depends | Yes, on dashboards, with a log |
Why one platform at a time is the wrong shape
An assistant connected to Meta can tell you Meta's version of last week. Connect Google too and it can tell you Google's version. Neither can tell you what the shop took, because neither has ever seen it.
That gap is the whole job. Ad platforms report conversions they can attribute inside their own window, using their own view of the user. Your store reports settled orders. The two count different things, so the sum of platform conversions routinely exceeds the order count — and no amount of asking Meta about Meta will surface it.
In this server, ad spend and store revenue are rows in the same table, so one query returns both. That is a data-model property, not a feature you can bolt on: an assistant holding two disconnected tools has to guess at the join, and it will guess wrong in a way that reads as confidence.
The useful question is not "what did Meta report". It is "what did we spend, what did
the shop take, and how far apart are they". A tool that can only see one side cannot
be asked.
Claude ads reporting: what you can actually ask
Eleven tools cover the Insights surface. Four read, seven write.
| Tool | What it does |
|---|---|
query_metrics | Spend, revenue, orders, ROAS and the rest, over a date range |
list_metric_catalog | What is queryable for this merchant, including custom formulas |
list_dashboards / get_dashboard | What already exists |
create_dashboard / update_dashboard | Author a view |
add_widget / update_widget / remove_widget | Put things on it |
create_calculated_metric / delete_calculated_metric | Define a ratio once, reuse it everywhere |
The read side answers questions. The write side means you can say "build me a view of paid spend against settled revenue by week" and get a dashboard rather than a wall of numbers you then have to rebuild by hand each month.
Two honest limits on the join, both worth knowing before you ask:
- It is account level. Spend and revenue meet at merchant and day, not per campaign
and not per ad. Store and CRM rows carry no campaign dimension, so a cross-source ratio asked for by campaign collapses to zero — the code emits a warning saying exactly that rather than returning a confident nothing.
- Currency conversion depends on rates being loaded. Where a rate is missing the
converter falls back to 1.0 and logs it. On a single-currency account this never matters; on a mixed one, check the rates before trusting a blended total.
AI agent ad account access: what it can change, and what records it
Read access is easy to reason about. Write access is where this gets interesting, and where most of the category is quiet.
Every write in the Insights surface leaves a row: which merchant, which tool, the arguments it was called with, and when. Seven write tools, seven log calls — dashboard creation, widget changes, calculated metrics, deletions. You can read that log back through the product.
Three things I would want to know if I were evaluating this, so they are here rather than in a footnote:
- The loyalty-side write tools do not log yet. Board and gamification writes —
nine tools between them — are not recorded. Dashboard authoring is; granting points through a board is not.
- A token has no expiry and no scopes. You mint it, it works until you delete it,
and it carries whatever access the merchant has. Treat it like a password, not like an API key with a blast radius you have tuned.
- The agent has no access to ad platforms directly. It reads the normalised layer,
not Meta's API. It cannot pause a campaign or change a budget through this server.
The third one is a design choice rather than an omission. An assistant that can query everything and change almost nothing is a much smaller problem than one holding write credentials to a live ad account.
MCP server for e-commerce data: what it does not do
- It does not fix attribution. It puts the platform's number and the store's number in
one place so the gap is visible, which is a smaller and more honest claim.
- It does not reach per-ad revenue. Joining spend to settled orders at ad level needs
campaign URLs tagged so the ad id survives to the order, and that is a configuration you do, not something the server infers.
- It does not run inside the product. Authoring happens over the MCP server with a
token you mint and your own client; the assistant in the merchant panel is read-only.
- It does not replace a dashboard. It builds them faster and answers the questions
between them.
This sits in the wider question of giving an assistant access to ad and store data without handing it the keys. For how the same layer is used to judge advertising rather than to report it, see ad measurement for e-commerce. For what the numbers mean once you have them in one place, POAS versus ROAS works through the difference between revenue and profit on the same spend.
Common questions
How do I connect Meta Ads and Google Ads to Claude?
Connect the channels to Loyalz, mint an MCP token in the merchant panel, and point your MCP client at the server. The assistant then queries the normalised layer rather than each platform's API.
Is this different from Meta's own MCP server?
Yes, in what it can see. Meta's server reaches a Meta ad account. This one reaches every connected channel and the store, so a single query can put spend and settled revenue side by side.
Can the agent change my ad campaigns?
No. It has no direct access to the ad platforms and cannot pause a campaign or move a budget through this server. It can author dashboards, widgets and calculated metrics.
Is agent activity logged?
Every write in the Insights surface is: seven write tools, seven log entries recording the merchant, the tool, the arguments and the time. Loyalty-side writes on boards and gamification are not logged yet.
What grain does the ad-to-revenue join work at?
Merchant and day, aggregated to week or month. Not per campaign and not per ad — store and CRM rows carry no campaign dimension, and asking for one returns a warning rather than a wrong number.
See it on your data
Loyalz joins ad spend to settled order lines, so POAS is a column rather than a spreadsheet you rebuild every month.
Book a demo