Typed beats prompted
A tool with a schema cannot invent a field, target the wrong account or misplace a zero the way generated API calls can. The model chooses which tool to call; it does not compose the request.
Meta Ads MCP
Meta's Marketing API can read every campaign and change any budget. Handing that to an AI through free-form prompts is how a typo becomes a five-figure mistake. MCP is the alternative: the API is exposed to the model as a small set of typed, permissioned tools, every write waits for a human, and everything is logged.
A Meta Ads MCP server exposes Meta's Marketing API to an AI agent through the Model Context Protocol: instead of generating raw API calls, the model calls a fixed set of typed tools – read spend, read insights, pause an ad set, set a budget – each with validated parameters and its own permission. The agent can propose any change it can justify, but a write tool only executes after a human approves that specific call.
A small surface is a security feature: every tool the agent does not have is a mistake it cannot make. Reads run freely – that is how the case gets built. Writes wait for you.
| Tool | Access | What it does |
|---|---|---|
| get_campaigns | read | Campaign structure, status and budgets across the account |
| get_insights | read | Spend, impressions and platform-reported results per ad set and ad |
| pause_ad_set | write · approval | Stop delivery on one ad set – the most common fix for a verified leak |
| set_budget | write · approval | Change a daily or lifetime budget, bounded by limits you set |
| set_bid_cap | write · approval | Adjust a bid cap without touching anything else on the ad set |
A tool with a schema cannot invent a field, target the wrong account or misplace a zero the way generated API calls can. The model chooses which tool to call; it does not compose the request.
Read tools run freely – that is how the AI builds its case. Write tools stop at an approval step naming the exact change. Our terms commit to this; it is not a setting that can drift.
Every executed call stores who approved it, the evidence cited, Meta's response and the state it replaced. Undo is one click, not an archaeology exercise.
This is the demo’s own Meta Ads verdict, followed from the first read to the log entry – real numbers, no hypotheticals.
get_insights pulls 30 days on Prospecting – Interests: €9,220 spent, Meta-reported ROAS 2.8. So far the campaign looks like a keeper – which is exactly why platform numbers alone cannot be the judge.
Kepra matches the clicks against real orders: €6,450 actually returned, and 71% of those buyers never came back. The platform graded its own homework; the order book disagrees.
After COGS the campaign is €5,200/mo underwater. The proposal names one call – pause_ad_set – and attaches every number it used to get there.
The exact call sits in AI Actions waiting. Nothing has touched the ad account yet, and nothing will until a human clicks approve on this specific change.
On approval the call executes against the Marketing API in about a second. The log stores who approved it, the evidence cited, Meta's response and the previous state – revert is one click.
Different jobs, not just different quality – which is why the comparison has columns instead of a winner’s podium. Some accounts run all three.
| MCP + approval | Advantage+ | Automated rules | |
|---|---|---|---|
| Who defines "working" | Profit after COGS and repeat behaviour, from your orders | Meta's own conversion counting | Whatever metric you hardcoded |
| Sees your margins | Yes – COGS from Shopify, refunds and fees included | No | No |
| Human approval | Every write, per call | None once enabled | None once enabled |
| Scope of action | Pause, budget, bid – bounded by limits you set | Broad automation inside Meta's own goals | Only what each rule names |
| Audit trail | Full: approver, evidence, response, one-click revert | Meta's change history | Meta's change history |
The loop, on Meta Ads – from the demo
Meta Ads → Kepra
Reading
spend + matched orders
Deciding
profit after COGS and LTV
Your call
nothing moves until you say so
Pushing
executed over MCP, logged
Verdict: Prospecting – Interests spends €9,220/mo. Meta reports ROAS 2.8; matched against real orders it returned €6,450, and 71% of those buyers never came back. After COGS it is €5,200/mo underwater.
A system that only claims wins is a brochure. These are the boundaries, stated as plainly as the features.
A server that exposes Meta's Marketing API to AI agents as typed tools over the Model Context Protocol, an open standard introduced by Anthropic in 2024. The agent calls tools like get_insights or pause_ad_set with validated parameters instead of generating raw API requests, and write tools require human approval per call.
Because generated API calls fail in expensive ways: a wrong account id, a misplaced zero in a budget, a paused campaign that should have been an ad set. Typed tools make those mistakes structurally impossible, and the approval gate catches the ones judgement can still make.
No. Read tools run freely to build the analysis; every write stops at an approval naming the exact change. That commitment is in our terms, not in a toggle.
Kepra is in private development. The demo is open and shows the full loop on sample data; the waitlist is the way in when access opens.
Campaign structure, spend and insights – what the ads_read permission covers. Kepra matches that against your orders to judge campaigns on profit after COGS rather than platform-reported ROAS.
Safer than the alternatives, if it is done through typed tools: the agent cannot compose raw API calls, every write carries hard bounds and stops at a human approval, and every executed change is logged with one-click revert. The unsafe versions are the other ones – pasting API keys into a chat, or a browser agent clicking around Ads Manager unsupervised.
They do different jobs and can coexist. Advantage+ optimises delivery inside Meta's own attribution and goals; it will never know your COGS or whether customers return. An MCP setup judges from profit and executes decisions you approve. Many accounts run Advantage+ for delivery and use the profit verdicts to decide what deserves budget at all.
The demo is open – no signup. AI Actions shows a proposal, the evidence, and the approval step exactly as it ships.
Also running Google Ads? Google Ads MCP →