Meta Ads MCP Server: Run Facebook & Instagram Ads From Claude
Meta Ads punishes fiddling. Every meaningful edit risks throwing an ad set back into the learning phase, which is exactly why "let an AI manage it" needs a sharper answer than it does on search. This guide covers what a Meta Ads MCP server can actually do, which operations are safe to hand over, and where Advantage+ makes the whole question moot.
On this page
What a Meta Ads MCP server is
A Meta Ads MCP server exposes the Meta Marketing API as Model Context Protocol tools, so an AI client can read insights and change Facebook and Instagram campaigns by calling those tools instead of you working through Ads Manager. Same protocol as a Google Ads MCP server, different platform underneath.
"Facebook Ads MCP" and "Meta Ads MCP" mean the same thing. Facebook and Instagram placements are bought through the same Ads Manager on the same API, so one integration covers both surfaces plus Messenger and Audience Network.
What changes versus clicking around Ads Manager is the loop time. Checking whether three ad sets are cannibalising each other is fifteen minutes of tab-switching and CSV exports. As a tool call it is one question, answered against live data, with the follow-up edit available in the same breath.
The 19 tools and what they cover
Klienta's Meta surface is 19 tools, deliberately scoped to the operations that get repeated:
| Group | Tools |
|---|---|
| Account discovery | meta_list_ad_accounts, meta_list_pages |
| Structure reads | meta_list_campaigns, meta_list_adsets, meta_list_ads, meta_get_ad_creatives |
| Performance | meta_get_insights — spend, results, CPA, ROAS, frequency, with breakdowns |
| Diagnosis | meta_diagnose_delivery — why an ad set is not spending |
| Creation | meta_create_campaign, meta_create_adset, meta_create_ad, meta_upload_image |
| Targeting | meta_search_targeting, meta_update_targeting — interests, behaviours, geo, flexible-spec groups and exclusions |
| Levers | meta_update_budget, meta_update_bid, meta_update_schedule, meta_update_status, meta_rename |
The one worth singling out is meta_diagnose_delivery. "Why isn't this ad set spending?" has maybe eight plausible causes — schedule not started, budget too low for the bid, audience too narrow, creative in review, account spending limit hit, learning-limited, overlapping ad sets, payment issue. Checking them by hand is tedious; checking them as one call is not.
Why Meta is not Google Ads
The same AI, with the same access, should behave differently on the two platforms. Three reasons.
The learning phase makes edits expensive
Meta re-enters learning after a significant edit — budget, targeting, optimization goal, creative — and exits after roughly 50 optimization events. A model that "helpfully" nudges budgets every day can keep an ad set permanently in learning, which is worse than doing nothing. On Google Search, a bid tweak is cheap. On Meta, edit frequency is itself a performance variable.
There are no search terms to mine
Most of the value on Google Ads comes from queries: the search terms report is a list of mistakes you can fix. Meta has no equivalent. Value lives in creative, audience overlap, frequency and placement — which are judgement calls, not cleanup.
Advantage+ already automated the boring part
Advantage+ campaigns hand targeting and placement to Meta's own system. An MCP server does not out-optimise that, and should not pretend to. What it is good for is the layer above: is Advantage+ eating budget that a retargeting ad set converts better, is frequency climbing past 3, is one creative carrying the whole account.
The honest framing: on Google Ads an AI agent can find and fix waste. On Meta it mostly finds and reports — the fixes are creative decisions, and the safest write operations are the boring ones: pausing, renaming, scheduling, and bounded budget moves.
Safe to delegate, risky to delegate
| Safe | Risky |
|---|---|
| Pulling insights and building comparisons | Daily budget tweaks on a learning ad set |
| Delivery diagnosis on a stalled ad set | Rewriting targeting on a proven audience |
| Pausing clearly dead ads (spend, zero results) | Changing the optimization goal on a live ad set |
| Renaming for a consistent structure | Bulk edits across many ad sets at once |
| Scheduling and drafting new campaigns paused | Anything applied without a review step |
The guardrail questions are the same four as on the Google side — scope, bounded writes, review before execution, undo — and they are covered in detail in the Google Ads MCP guide. Meta adds one more: how many edits is this agent making per week? Batch changes into one deliberate session rather than a trickle.
Connecting one
Self-hosted Meta MCP servers need your own Meta developer app, an access token with ads_management, and app review if you go beyond your own accounts. A remote server skips all of it. With Klienta, Google Ads and Meta Ads live on one endpoint:
https://klienta.co/mcp
Add it as a custom connector in Claude Desktop, or with Claude Code:
claude mcp add --transport http klienta https://klienta.co/mcp
Authorize Google for Google Ads, Facebook for Meta Ads, then ask the client to "list my Meta ad accounts". Step-by-step instructions are on the setup page.
Prompts that earn their keep
- "Pull last 14 days by ad set: spend, results, CPA, frequency. Flag anything with frequency above 3 or CPA more than 40% above account average. Report only."
- "This ad set stopped spending yesterday. Run delivery diagnostics and tell me the single most likely cause."
- "Rank every active ad by results per dollar. Which three creatives are carrying the account, and which have spent over $100 with zero results?"
- "Compare my Advantage+ campaign against my manual prospecting ad sets over 30 days — spend share, CPA, and whether the audiences overlap."
- "Compare Meta and Google Ads for last month side by side: spend, conversions, CPA, and where the next $1,000 should go."
The last one is the argument for a single endpoint. Cross-channel questions are the ones nobody answers, because answering them means two dashboards, two exports and a spreadsheet.
FAQ
What is a Meta Ads MCP server?
A service that exposes the Meta Marketing API as Model Context Protocol tools, so an AI client can pull insights and change Facebook and Instagram campaigns, ad sets and ads by calling those tools instead of you using Ads Manager.
Is a Facebook Ads MCP server the same thing?
Yes — both names describe the same integration, since Facebook and Instagram ads run through Meta Ads Manager on one API.
Can an AI break my campaigns?
It can. Significant edits push ad sets back into the learning phase and reset performance for roughly 50 conversions. Batch writes, review the diff, and keep an undo available.
Do I need a Meta developer app?
Not with a remote server — you add a connector URL and log in with Facebook. Self-hosted servers do require your own Meta app and token.
Can one server cover Google Ads and Meta Ads?
Yes. Klienta runs 104 tools on one endpoint: 83 for Google Ads, 19 for Meta Ads, 2 report renderers.
One endpoint, both platforms
Connect in about two minutes. Start with read-only questions, turn on writes when you trust it.
Connect Klienta →