There is a campaign in our Meta ad account that spent €35.61 over ninety days. We thought it had been switched off months ago. On the evening of 2 August we asked Claude to read the account, and it came back ACTIVE.
Nothing dramatic happened. It was a small boosted post, it was not draining a budget, and it is paused now. What matters is the shape of the problem: the number existed, nobody was looking at it, and Claude had no way to look at it either — because Claude cannot see a Meta ad account. Or a Google Ads account. Or Google Analytics. Not natively, and not by default.
This is not a setup guide. We already wrote that one, and if you want the step-by-step it lives in our Windsor.ai MCP walkthrough. This article answers three different questions: what is actually missing from Claude’s connector directory, why it is missing for structural reasons rather than temporary ones, and what genuinely changes — including what breaks — when you put a bridge in the middle.
Disclosure: Some links in this guide are affiliate links. If you start a plan through one of them, we may earn a commission at no extra cost to you. No vendor sees or approves our guides before they go live.
We should say this early, because it changes how you read the rest: we use one of the bridges in this article, Windsor.ai — we’re moving onto its paid plan this month — and we are in their affiliate programme. This article contains four specific criticisms of their product, all of them from our own account, and we have left every one of them in.
What we searched for, and what came back
Method first, result second — which is the opposite of how this usually gets written, and the reason you can check us.
On 2 August 2026 we ran four separate searches against Claude’s connector registry, deliberately overlapping so that a bad query in one wouldn’t hide a result in another:
- Advertising in general — ads, advertising, ad platforms
- Meta specifically — Meta, Facebook, Instagram
- Web analytics — Google Analytics, Search Console
- Everything else that distributes — TikTok, LinkedIn, YouTube, Pinterest
Across all four, not a single native connector for an individual advertising platform or web analytics product came back. Not Meta. Not Google Ads. Not GA4. Not TikTok Ads, LinkedIn Ads, or Search Console.
What did come back, in every query, was the same three names — and all three are aggregators. Not the platform itself, but a service that sits between you and the platform: Windsor.ai, Supermetrics, and Coupler.io.
Now the limit of that method, before you quote it anywhere. The registry returns the top ten results by relevance, not an exhaustive index. That means presence is proven and absence is not. We can tell you with certainty that those three aggregators are there. We cannot tell you with certainty that a native Meta connector does not exist somewhere below the tenth result of every query we tried. If you find one, we want to know, and we will update this page with the date.
That caveat is not modesty. It is the difference between a measurement and a claim, and this article is going to lean on that distinction several more times.
The contrast is what makes the result readable. Shopify has an official connector. Stripe has one. Canva has one. Notion, Slack, Gmail, Google Drive, Google Calendar — all there, all first-party. The directory is not thin. It is thin in one specific place, and that place is where your marketing numbers live.
Why the gap is structural, not a queue
The comfortable reading is that ad platforms simply haven’t got around to it yet, and that native connectors are six months away. We think that reading is wrong, and the argument is worth spelling out because it changes what you should build on. This section is reasoning, not measurement — we are telling you how we think about it, not reporting a test.
Look at who sells what to whom. Shopify and Stripe sell to people who build things. For them, an official MCP connector is distribution: it lowers the friction of using their platform and it makes their product easier to recommend. Meta and Google sell advertising space to advertisers, and their reporting interfaces are not a neutral service — they are where you are shown what is working and invited to spend more on it. A connector that lifts those numbers out of their interface and drops them into somebody else’s chat window has no obvious return for them.
The API customer is not you. Advertising APIs already exist, and they are excellent. They are also built for developers: app review, access tiers, tokens, quotas, compliance obligations. MCP was designed for the person at the other end — the operator who wants to ask a question in plain language. The gap is not between “exists” and “doesn’t exist”. It is between “exists for a developer with an approved app” and “exists for you”, and closing that gap costs the platform work it has no commercial reason to do.
And there is a precedent, which is the part that isn’t speculation. X had programmatic access, and then decided what it was worth. The free API tier closed to new developers in February 2026. In April 2026, publishing was repriced: roughly $0.015 for a normal post, and $0.20 for a post containing a link — thirteen times more, aimed squarely at exactly the automation most creators would build. The legacy $200 Basic tier was closed to new subscribers and its existing ones migrated from 1 June 2026. That is documented across five independent sources, and it is what it looks like when a distribution platform decides programmatic access is a revenue line rather than a courtesy.
One line on the obvious question: this is not a Claude limitation. ChatGPT has the same hole, for the same reasons, and so does every other assistant — the constraint sits with the platforms, not with the model. That deserves its own article and it is in our pipeline; here it deserves one sentence, and this was it.
The three bridges
A bridge is a service that holds the credentials for the platforms on your behalf and exposes all of them to Claude as a single connector. You authorise Meta, GA4 and the rest once, inside the bridge; Claude talks only to the bridge.
| Bridge | What it is | Our position |
|---|---|---|
| Windsor.ai | Aggregator with a wide source catalogue, in the official directory, read and write. | Our own account since July 2026, moving onto the paid plan this month. Everything that follows comes from it. |
| Supermetrics | The incumbent in marketing data plumbing, long-established, with an MCP connector. | Covered separately in our Supermetrics Studio write-up. Subscription under review at the time of writing. |
| Coupler.io | Aggregator, four tools exposed over MCP. | Never tested by us. We found it during this census and we are naming it because it exists, not because we can vouch for it. |
You will notice there are no prices in that table. That is deliberate. A head-to-head on cost is a real article and it deserves to be one — with every number read off the vendors’ own live pages on the same day, which is the only way that comparison is worth anything. Doing it in three lines here, while we hold an affiliate relationship with one of the three, would produce a comparison you’d be right not to trust. It is in the pipeline as its own piece.
What is worth saying about all three at once is the thing none of their marketing pages leads with. A bridge is an intermediary that sees everything. Your platform credentials live with them. Your traffic, revenue and audience numbers pass through them. Their uptime becomes your uptime, and their security posture becomes part of yours. That is not an accusation — it is the structural cost of the arrangement, it applies equally to all three, and it is the first thing to weigh rather than the last.
Added 3 August 2026. Within hours of publishing this, two more bridges surfaced — neither of them through the registry. Porter Metrics runs a Claude connector page advertising more than twenty-five marketing sources, and says it queries each source’s API directly rather than serving from a cache. Adzviser is smaller and narrower: Google Ads and Meta Ads, around $49 a month. We have tested neither, and we have not verified how either one installs — most likely as custom connectors added by URL, which is exactly the territory a directory search cannot see into. We are adding them because we said we would, and because they demonstrate the caveat above better than the caveat does: the honest sentence is “three came back from the registry”, not “three exist”.
What actually happens once the bridge is open
We connected four sources during the trial: Google Analytics 4 for site traffic, Instagram Insights for reach and saves, Pinterest Organic for a channel we were still evaluating, and Facebook Ads for the boosted posts. Four sources, four accounts, verified in our own account on 3 August 2026.
Here is the first thing nobody tells you at signup. The trial holds ten sources. The permanent free plan that follows holds one. The paid Basic plan holds three. We had four. So the arithmetic of moving off the trial is not “do I pay” — it is “which source do I drop”, and that question arrives on day thirty-one whether or not you have thought about it. Basic was $23 a month, or $19 a month on an annual commitment, when we checked on 24 July 2026. We are not putting the other two bridges’ prices next to that one: a comparison is only worth reading when every number was read on the same day, and that is a separate article.
We are dropping Facebook Ads. The reasoning is that it was the only source we were effectively paying to read twice, and Ads Manager reads it natively for free. It is the right call and there is an irony in it worth admitting: the source we are about to disconnect is the one that produced the sharpest finding in this article. We published the measurement first and are disconnecting afterwards, in that order, on purpose.
Authorising is not connecting
This one cost us an evening, and it is the single most useful paragraph here for anyone who actually installs a bridge.
On Pinterest, the OAuth flow succeeded. The token was saved. The popup closed. And the account was not connected — because the popup closes before the panel where you tick the account you want, and that panel is where the connection is actually made. There was no error message. Nothing anywhere said “not finished”.
The only reliable check is the source counter at the bottom left of the panel. If the number doesn’t go up, it didn’t happen. Authorising a platform and connecting a source are two different events, and only one of them announces itself.

The write actions toggle, and where it lives
Windsor’s connector can do more than read. It can pause and enable campaigns and set budgets — actions that reach through to the platform and change something real.
That capability ships switched off. It is controlled by a toggle called “Enable write actions via API”, and it lives at onboard.windsor.ai/app/team-management, in the API Access section, underneath the API key.
Credit where it is due, because this matters: the explanation attached to that toggle is genuinely good. It names MCP explicitly, it gives concrete examples of what write access allows, it states plainly that the setting applies across the whole account, and it tells you that switching it back off returns everything to read-only. Whoever wrote it understood that a user needs to know the blast radius before flipping a switch. We have seen far worse from far bigger products.
The explanation is excellent. The location is not. Nobody connecting Windsor to Claude passes through team management — you go to the source panel, you authorise, you go back to Claude. And the marketing is running ahead of the onboarding: the company’s own social channels promote read-and-write, “post to Instagram right from Claude”, while the feature arrives disabled and the switch sits on a page the setup flow never shows you. The predictable outcome is a user concluding the connector is broken when it is doing precisely what it was configured to do.
Two more notes on that page. The toggle is a single global lever — all write actions, all connected sources, on or off. Compare that with Make’s consent model, which offers nine entity types across view, modify and run permissions. These are two philosophies, not a winner and a loser: the global lever is comprehensible in ten seconds and gives you no granularity, the permission matrix gives you granularity and almost nobody reads it. Pick according to how much you trust yourself to read a matrix.
And Historical Data Storage is also off by default, on the same page. Given that the free plan retains thirty days of history, that is a setting worth understanding before you assume you have a backlog. We have not tested whether enabling it changes what you are charged, so we are not going to tell you that it doesn’t.


Four things we found in one evening
Everything in this section was measured in our own account on the evening of 2 August 2026, on campaign 120249553695340183 — the boosted Instagram post mentioned at the top, €35.61 spent over ninety days, believed closed, found active.
The sequence, in order:
- We asked Claude to pause the campaign. It refused — write actions were off, correctly.
- We enabled the toggle in team management.
- We asked again. Claude called
pause_campaignand reported success. - We asked Claude to re-read the campaign. It came back ACTIVE.
- We opened Ads Manager. The campaign was paused.
1. Writes are instant, reads are six hours stale
The write went straight through to Meta. The read came out of a cache with a six-hour refresh. Both behaved exactly as designed, and together they produce a genuinely awkward property: the assistant cannot verify its own action through the same connector it used to perform it.
On a pause, that is harmless. The dangerous version is the loop it invites — execute, fail to see the effect, execute again — on something like setting a budget, where running the same instruction twice is not idempotent in any way you’d enjoy.
The rule that falls out of this is short enough to remember: the source of truth for a write is the native platform, never the bridge.
2. The read returned one campaign out of thirty-eight
This is the hardest finding in the article and we are not going to soften it. Asked to list the campaigns in the account, get_data returned one. The account contains thirty-eight. Widening the date range to two years changed nothing.
The behaviour is explicable — the endpoint returns campaigns with delivery data in the requested window, not campaigns that exist — and once you know that, it is consistent. But nothing in the response says so. There is no note, no count, no “37 campaigns had no delivery data in this period”. A plain-language question produces a confident, well-formatted, incomplete answer, and the incompleteness is invisible.
If you are going to ask an assistant what is running in your ad account, know that this is the failure mode: not a wrong number, an absent one.
3. The asymmetry (reasoned, not tested)
Put those two findings together and something follows. Reads are filtered and cached. Writes take an ID and go straight to Meta’s API. Which implies that a campaign ID is sufficient to act on a campaign the connector will not show you.
We did not test this. The campaign we acted on was one the read returned. We are stating it as an inference from mechanics we observed, and we are labelling it as such rather than dressing it up. It is the kind of thing that would be worth a vendor confirming or denying, and if Windsor tells us we’re wrong we will say so here.
4. “Pause the campaign” pauses the campaign, and only the campaign
pause_campaign operates at campaign level. The ad set underneath stays enabled. Re-enable the campaign and delivery resumes immediately, because nothing below it was ever stopped.
That is not a bug — it is the level the API operates at, and it is correct. But someone telling an assistant “turn this off” in plain English is describing an outcome, and what they get is an operation. The two are not the same shape, and the gap between them is where automation accidents live.

The counterweight, because it is owed
The write worked on the first attempt. No error, no retry, no partial state. Ads Manager showed the campaign paused, exactly as instructed, within seconds. The problem in this section is not that the feature doesn’t work. It is that you cannot confirm it worked from the place you launched it — which is a different criticism, and a fairer one.
If you’re going to open a bridge anyway
We are, so this is not a warning label. It is the checklist we wish we’d had on day one.
- Check the source counter after every authorisation. A closed popup is not a connected account.
- Count the sources you actually need against what the plan holds after the trial. Ten during, one after, three on the cheapest paid tier. Do that arithmetic on day one, not day thirty-one.
- Leave write actions off until you need them, then switch them off again. It’s one toggle in both directions.
- Never ask the assistant to confirm its own write through the same connector. Open the platform.
- Check what level a command acts on before trusting the word “pause”.
- Watch for sources that are free inside the bridge and metered underneath it. Windsor’s X Organic source looks like one more row in a plan you’ve already bought; connecting it asks for your own X developer credentials, which puts you on X’s pay-per-use meter — the one with the $0.20 link posts. The bridge isn’t hiding that, but it isn’t the shape the source list suggests either.
If a bridge is the right answer for you, Windsor.ai is the one we’re paying for from this month, with the four caveats above attached and not detachable. If your reporting lives in Looker Studio or spreadsheets, or you’re operating at agency volumes, look at Supermetrics before you decide — that comparison is a separate piece and we’ll link it here when it’s live.
What this actually tells you
The hole in Claude’s directory is real, it is where your marketing data lives, and we don’t expect the platforms to fill it — the incentives point the other way, and X spent 2026 demonstrating what happens when a platform reprices access it once gave away.
Bridges close the gap, and they close it well enough that we found a live campaign we’d forgotten about. They also introduce an intermediary that holds your credentials, a cache that lies about the present tense, and a read path that can return one row where thirty-eight exist without telling you.
None of that is a reason not to use one. It is a reason to know which register each thing you’re told belongs to — measured, documented, or inferred — before you build a workflow on top of it.
The Claude MCP Playbook
One comparable page per connector: what it does, what it actually costs, how many minutes the setup takes, and the trap nobody mentions — plus ready-made stacks for four kinds of business. In progress.
Founding price is $19 for the first readers on the list. Join the waitlist here.
You Might Also Like
More from our testing on connectors, costs and what vendors don’t put on the pricing page.





