The short version. A Meta Ads MCP is a server that lets Claude query your ad account through Meta’s Marketing API. There are 4 ways to do it: Meta’s own MCP, a read-only connector like Data Bloo, a self-hosted open-source server, or a plain CSV export. Setup for all 4 is below. They differ mainly on whether the AI can change your account.
Why this became a real question in 2026
“Meta ads mcp” got about 30 searches a month in the US last November. In May it was 3,600.
Meta shipped its own Ads MCP server in April 2026. Reporting tools followed within weeks. Open-source servers landed on GitHub. And the conversation shifted fast: the April posts were all campaign-creation demos, while the ones from the last month are people asking how to get the analysis without handing over the account.
Search the term now and Google gives you Meta’s own documentation twice, a Reddit thread with 60+ comments, a GitHub repo and a stack of YouTube tutorials. This guide covers every route, what each one can reach, and the one question that should decide your pick.
Looking wider than Meta? We compared the best MCP servers for marketing and the best Claude connectors for marketing separately. This page is Meta-specific.
What an MCP actually is, under the hood
MCP stands for Model Context Protocol. It’s an open standard for connecting an AI model to an outside system, and it solved a boring problem neatly.
Before it existed, every AI product built its own integrations. Wanting Meta Ads inside 3 different AI tools meant somebody wrote 3 different integrations. MCP collapsed that: one server implements the protocol, and every compatible client can talk to it. Claude, Claude Code, ChatGPT, Cursor, and whatever gets built next year.
An MCP server exposes tools. A tool is a named function with a described input and output, and the model can call it. query_data is a tool. create_campaign is a tool. Ask Claude a question and it reads the list of available tools, picks one, fills in the arguments, and the server does the work.
Three consequences explain most of what follows.
What you need before you start
The 4 ways to connect Meta Ads to Claude
Method 1: Meta’s official Ads MCP
The first-party route. Authentication runs directly between you and Meta, and no third party holds a token.
Setup
https://mcp.facebook.com/ads
What you get. Meta’s documentation lists 7 tool categories: reporting, ad creation and management, catalog creation and management, signals and datasets, help and troubleshooting, A/B tests and conversion lift studies, and activity logs.
Nothing else on this page touches catalogs, lift studies or activity logs. If those are your job, this is the only option.
What to know before you commit. It’s Meta and only Meta, so no blending with Google Ads, GA4 or your store. Agencies work one account at a time, meaning 12 clients is 12 connections and 12 conversations. Access tokens expire on a schedule and don’t refresh themselves, so the connection stops returning data and waits for someone to notice. The rollout is gradual, so not every account has access yet.
Method 2: Data Bloo
Ours, so read this section with that in mind. Read-only: the server exposes 7 tools and every verb is “get” or “list”.
The difference from the other three methods is what else arrives on the same connection. Meta’s official MCP gives you Meta. A self-hosted server gives you whatever you built it for. Data Bloo connects Meta Ads alongside 15+ other sources, so the same chat can compare Meta spend against Google Ads, check whether the traffic converted in GA4, and pull the Shopify revenue behind it, without a second setup.
What else the connection carries
Setup
https://mcp.databloo.com/mcpClaude Code, one line:
claude mcp add --transport http databloo https://mcp.databloo.com/mcpWhat you get. 147 Meta Ads metrics and 45 dimensions, plus 13 other sources in the same connection: Google Ads, GA4, Search Console, Instagram, LinkedIn Ads, LinkedIn Pages, TikTok Ads, Bing Ads, Bing Webmaster, Google Business Profile, Facebook Insights, WooCommerce and PageSpeed Insights.
What to know. It can’t change anything in your ad account, which is the point for agencies and a dealbreaker if you wanted Claude running campaigns. Use Method 1 for that.

Where it is the wrong choice
Method 3: a self-hosted open-source server
There are open-source Meta Ads MCP servers on GitHub. You clone one, supply your own Meta app credentials, and run it wherever you like. Credentials never leave your infrastructure, and you can change the code.
Setup
What to know. Token refresh, Meta API version deprecations, rate limiting and uptime all become yours. Meta retires Marketing API versions on a published schedule, and when yours goes, the fix is your Tuesday morning.
Method 4: a manual CSV export
No connector at all. Export the report from Ads Manager and drop the file into the chat.
Setup
What to know. Free, no setup, and genuinely fine for one question. If you want the same data on a schedule instead, connecting Facebook Ads to Data Studio is the reporting route. Two limits: you redo the export every time you want a fresh answer, and Claude is doing the arithmetic itself rather than receiving totals from the API, so check the maths on very large files.
Two variations worth knowing about
Neither is a fifth method exactly. Both are ways of feeding the same data in when the straightforward route runs out of road.
A live Google Sheet. Push Meta Ads into a sheet on a schedule and let Claude read the sheet. Underrated for two reasons: you can eyeball the data before an AI touches it, which finance teams like, and you can add columns Meta has never heard of. Targets, budgets, margin, naming conventions. Claude can then compare actuals against plan, which no API-only route can do, because the plan doesn’t live in Meta. The trade is the same as the CSV: the model does the aggregation, so check the maths on very large sheets.
A warehouse, for scale. Once you’re running 10 or more accounts, or one very large advertiser, live API calls start timing out on long date ranges. The fix is to load the data into BigQuery on a schedule, pre-aggregate it into small summary tables, and point the AI at those. Slower to set up, and worth doing exactly once. It’s also the only route where you can blend ad data with things no ad platform knows about: product margin, subscription churn, support tickets.
Both are read paths. Neither lets an AI act on the account, which for a lot of teams is the point.
Read-only, and why it protects your ad account
Two of the four methods can change your ad account and two cannot. That’s the real fork, and it deserves more than a line in a comparison table.
Look at what Google surfaces beneath the results for this term. The perspectives panel fills with agency people and founders working through the same hesitation in public: they’ve seen the demos, they’re impressed, and they’re still not putting a write-capable MCP on an account spending real budget. One of the Reddit threads ranking here is that exact conversation.
The risk isn’t that the AI turns evil. It’s that it’s confidently wrong, quickly.
Give a model write access and you’ve handed it a set of buttons that cost money. Most of the time it presses the right ones. The failure cases are what matter:
The consequence isn’t a rejected API call. It’s an ad account restriction, an appeals form, and a client asking why their campaigns stopped on a Friday.
What a read query can and can’t do
A query that returns numbers cannot publish an ad, cannot move a budget, and cannot violate an advertising policy. Those categories of risk need a write tool, and a read-only server doesn’t have one to disable.
Being straight about it. Read-only isn’t a force field. You can still hit Meta’s rate limits with an over-eager query loop, and a rate limit is a temporary block rather than a ban. What read-only removes is the class of mistake that actually gets accounts restricted: spend, policy and bulk change.
Why this matters more on a client account
If it’s your own account, you’re weighing convenience against your own risk. On a client’s account you’re weighing it against someone else’s revenue, and you’re the one who has to explain it.
“It can only read” is a sentence a client understands in one go. “It can write, but we’ve configured permissions carefully and there’s a review step” starts a conversation, and usually a security questionnaire.
The 60-second test. After you connect any MCP, open its tool list in Claude. That list is the complete set of things the server can do. If there’s no verb that writes, it can’t write. Run it on whichever option you pick, including ours.
Meta Ads plus 13 more sources in one connection. Nothing in the server can create, pause or spend. Free to start, no card.
What Meta Ads data you can actually pull
Most pages claim a metric count and print nothing. Here are all 192 fields, grouped the way the connector groups them, so you can check them against your reporting before you sign up for anything.
Note how many of those are cost-per and rate metrics that Meta doesn’t hand you directly. Cost per add to cart, cost per lead form submission, trial started ROAS: each one is a calculation you’d otherwise build by hand in a spreadsheet, and each is a field you can just ask for. If you’re deciding which of them actually matter, we went through that in the Facebook Ads KPIs worth reporting on.
45 dimensions for slicing it
The creative dimensions are the ones people don’t expect. Ad headline, primary text, call to action and the creative preview image mean you can ask which hook is working, not just which ad ID. Same for the three quality rankings, which is Meta’s own read on how your ad compares to competitors in the same auction.
Full reference, every field named: the Facebook Ads field list.
Instagram, included. Meta ads run across Facebook and Instagram placements, so both come through this connection. Split them with the publisher platform dimension. A connector that merges them silently will make an Instagram-heavy account look strange.
Prompts to paste into Claude
Once you’re connected, these are the questions worth starting with. They work on any of the read routes above.
Run this first. It confirms Claude can see your accounts.
List my connected accounts and tell me which Meta ad accounts you can see.Find out what you can actually ask for before you ask for it.
What Meta Ads metrics and dimensions can you pull for my account?The everyday one.
Show me Meta Ads spend, link clicks, CPC and purchases for the last 30 days,
broken down by campaign. Sort by spend and state the exact dates you used.The question a dashboard makes you work for.
Which Meta Ads campaigns spent more than 500 last month with no purchases?
Show spend, impressions, frequency and CTR for each, and flag anything with
frequency above 4.Where the Instagram split matters.
Split last month’s Meta Ads spend and purchases by publisher platform and
device platform. Where is the money going and where are the conversions
coming from?The one a Meta-only connector cannot answer.
Compare Meta Ads and Google Ads for the last 30 days: spend, clicks,
conversions and cost per conversion. Then pull GA4 sessions by source and
tell me whether the picture agrees.Turns the data into something you can send.
Write a one-page summary of last month’s Meta Ads performance versus the
month before. Lead with what changed and why, then the numbers. Write it for
a client who does not read dashboards.The cross-channel one is where a Meta-only connector stops being enough. Asking whether Meta or Google produced the cheaper conversion is one question when both live in the same connection, and three exports when they don’t.
A worked example, from question to client answer
Here’s what a real Monday morning looks like once it’s connected. Four prompts, about 3 minutes, and the last one produces something you can send.
1. Start with the shape of the month. Ask for spend, purchases and ROAS for last month against the month before, broken down by campaign. Claude pulls both windows in one call and returns a table with the deltas already calculated.
2. Chase the thing that moved. One campaign is up 40% in spend and flat in purchases. Ask why, and let it break that campaign down by publisher platform, device and age. This is the step that used to mean rebuilding a dashboard view.
3. Sanity-check before you believe it. Ask which exact dates and which metric it used. If the answer says “purchases” where you report on “website purchases”, you’ve caught a mismatch that would otherwise have gone into a deck.
4. Ask for the client version. “Write that as a short update for the client, lead with what changed and why, no jargon.” You get prose you can edit rather than a chart you have to explain. For what that should contain, see our guide to Facebook Ads reporting.
The time saved isn’t in the pulling. It’s in step 2, where following a question wherever it goes costs one sentence instead of a new chart.
Beyond answers: decks, audits and summaries
Everything above stops at an answer in a chat window. Useful for you, but a client does not want a transcript. This is the part that changes what the connection is worth.
Because Data Bloo returns structured data rather than a screenshot, Claude can build the deliverable directly from it:
The practical test: ask “build me a client-ready deck on last month’s Meta performance, flag the two worst ad sets and recommend a budget shift.” That is one prompt replacing an afternoon.
Can you trust the numbers it gives you?
Fair question, and the honest answer has two halves that fail differently.
The arithmetic is usually safe. A proper MCP sends your request to Meta’s API and gets back numbers that are already aggregated. Claude receives a total, not 90,000 rows to add up, so a 30-day spend figure matches what Ads Manager would show you. The CSV route is the exception: there the model really is doing the summing, and it can drift on long exports.
The interpretation is where you stay awake. Claude will call a campaign “underperforming” on the strength of a week with 40 clicks in it. It’ll compare a 28-day window against a 30-day one without mentioning that it did. It’ll reach for the metric whose name best matches your phrasing, which is not always the metric you meant.
Three habits that catch nearly all of it
How to evaluate any Meta Ads MCP
Seven checks, in the order we’d run them. They work on any connector, including this one.
Claude or Claude Code?
A second decision that changes the output more than the choice of server, and it rarely appears in these guides because it isn’t a product feature.
Rule of thumb: if the job is “look at last week”, use the chat. If the job is “watch this every day from now on”, use Claude Code.
The read-only question sharpens here. A routine running unattended at 6am is exactly the situation where you want a server that structurally cannot spend money. In the chat you’re sitting there to catch a bad call. The scheduled job isn’t.
Worth checking your Claude plan before you invest time, since connector support differs across the web app, desktop and Code, and those lines have been moving.
Who gets the most out of this
The setup is the same for everyone. What changes is the question you end up asking every week.
Several client accounts in one conversation, and a permissions story that fits in one sentence. Monthly reporting stops being a build and starts being a question, the same shift we covered in agency reporting tools. The read-only argument matters most here, because the account isn’t yours.
Purchase value sitting next to spend, so ROAS is one question rather than a spreadsheet. Add the store connector and Claude can compare what Meta reported against what actually shipped, the same picture as our Facebook Ads ecommerce report.
Leads and cost per lead by campaign, ad set and creative, then GA4 in the same answer to see which of those leads went anywhere. The gap between platform-reported leads and real pipeline is the whole job.
The common thread: every one of those is a follow-up question. Dashboards answer the first question well and the second one badly, because the second one always needs a breakdown that was never built. That’s why the two work together: keep the Facebook Ads template for the numbers you check every week, and use the chat for everything it can’t anticipate. That’s the part this changes.
What breaks on Meta specifically
Meta access tokens expire on a schedule. Meta’s own MCP doesn’t refresh them automatically, so the symptom is data quietly stopping rather than an error. First thing to check when numbers go stale.
Meta deprecates Marketing API versions on a published timetable. Hosted connectors absorb this. Self-hosted ones don’t.
Long date ranges across many accounts hit Meta’s limits. The symptom is a query that hangs or times out. Narrow the range, or aggregate at a higher level, and it comes back.
The most common reason a number disagrees with Ads Manager. Ads Manager’s default window isn’t always the API’s. Ask Claude to state the exact dates and window it queried before assuming anything is broken.
There are reports of cost per add to cart and some custom conversions being absent from the official MCP. Check the metrics you actually report on before you migrate reporting onto any of these.
Which method should you pick?
FAQs
Meta's official endpoint is https://mcp.facebook.com/ads. Data Bloo's is https://mcp.databloo.com/mcp, which covers Meta Ads plus 13 other sources in the same connection.
Meta's is free during the beta, with post-beta pricing unannounced. Data Bloo is free to start, and paid plans raise your limits and connected accounts.
Per Meta's documentation: reporting, ad creation and management, catalog management, signals and datasets, troubleshooting, A/B tests and lift studies, and activity logs.
Reading data is low risk. The actions that get accounts restricted are spend errors, policy-breaking creative and high-volume bulk changes, and all three need write access. A read-only server has no tool that can do any of them. You can still hit a rate limit with an aggressive query loop, which is a temporary block rather than a ban.
Through Meta's official MCP, yes. Through a read-only connector, no, by design.
MCP is an open standard, so any client that speaks it can use these servers. We have a ChatGPT version of this connector too.
Almost always an expired access token. Reconnect the source.
Yes, since Meta ads run across both placements. Split them with the publisher platform dimension.
Yes. Claude holds several connectors, and pairing Meta's official MCP for operations with a read-only connector for cross-channel reporting is a reasonable setup.
Live at query time for the API-based routes, within Meta's own API freshness and your plan's refresh limits. A CSV is only as fresh as the moment you exported it.
Meta's official MCP works one account at a time. Data Bloo handles several in one conversation, which is the setup most agencies run.

Marketing data specialist at Data Bloo, the #1 contributor on Google’s Data Studio gallery. Stef has spent 9+ years helping agencies and marketers turn messy platform data into clean, shareable reports.
