Meta Ads MCP and CLI: Inside Meta's Official AI Connectors
On April 29, 2026, Meta opened the beta of two new artifacts: an HTTP MCP server at mcp.facebook.com/ads and a local Python CLI. Same 29-tool surface, two shapes — one for Claude Desktop and ChatGPT, one for Claude Code and Codex. This is the developer-grade tour: the OAuth handshake, the tool catalog, the gotchas the launch posts skipped, and how it stacks up to the community servers you may already be running.

On this page · 16 sections▾
One-sentence definition
Meta’s Ads AI Connectors are an HTTP MCP server at mcp.facebook.com/ads and a local Python CLI that wrap the Meta Marketing API behind Meta Business OAuth, expose 29 tools across reporting, campaign management, catalog, and signal diagnostics, and let any MCP client or terminal agent edit a Meta ad account without registering a Developer App.
That sentence is the whole launch. Everything below is a deeper read of one of its words.
Why Meta shipped this
Before April 29, 2026, automating Meta Ads from an AI client meant one of three painful paths. Register a Meta Developer App, wait one to three days for app review, then copy a long-lived access token into a community MCP like Pipeboard’s or brijr/meta-mcp — and pray Meta’s account-integrity systems did not flag the request pattern as automation. Use a hosted third-party connector and accept their token-isolation model. Or skip automation entirely and copy CSVs out of Ads Manager by hand.
The risk in path one was not theoretical. Through 2025, multiple agency operators reported permanent ad-account restrictions after pointing Claude or Codex at Meta’s Marketing API through unofficial connectors — Cody Schneider documented one such case involving a third-party MCP and a personal-use marketing token. Meta never confirmed the connection officially, but the chilling effect on agency adoption was real.
The official launch resolves that ambiguity in governance terms. The Meta Ads AI Connectors are Meta-authored, Meta-hosted, OAuth-authed, and explicitly positioned as “the authorized, official connection” — language Meta employee David Parrottino reportedly used to steer advertisers away from the Claude for Chrome browser extension and toward the new connector during launch discussions captured by PPC Land. Setup that previously took days now takes minutes.
This does not unlock Meta’s optimization layer
The connectors expose Marketing API capabilities — query, edit, create, diagnose. They do not give your AI client access to Meta’s bidding algorithm, Advantage+ features, or auction internals. Acadia’s Alan Carroll told Digiday that performance optimization — Meta’s strongest area — is “least likely to open up to third-party access.” This is plumbing, not a new brain.
Mental model: the four named pieces
Once you know these four pieces, every doc page on developers.facebook.com is a deeper read of one of them.
┌──────────────┐ ┌─────────────────────────┐
│ Claude │ │ mcp.facebook.com/ads │
│ Desktop │ ── streamable ────▶│ │
│ ChatGPT │ http │ ┌─────────────────┐ │
│ │ ◀── tool result ───│ │ 29 tools │ │
└──────────────┘ │ │ ───────────── │ │
│ │ campaigns (5) │ │
┌──────────────┐ │ │ catalog (10) │ │
│ Claude Code │ meta CLI │ │ accounts (3) │ │
│ Codex │ ── subprocess ────▶│ │ datasets (4) │ │
│ CI runner │ pipe │ │ insights (7) │ │
│ │ ◀── stdout JSON ───│ └─────────────────┘ │
└──────────────┘ │ │
│ Meta Business OAuth │
│ (no Developer App) │
└─────────────────────────┘- The MCP server — an HTTP endpoint Meta hosts at
mcp.facebook.com/ads. Speak the standard MCP wire format. Used by Claude Desktop, ChatGPT, Cursor, and any client that takes a remote MCP URL. Meta-managed; you don’t deploy it. - The CLI binary — a local Python package, invoked as
meta. Used by Claude Code, OpenAI Codex, custom agents, and CI pipelines. Outputs table, JSON, or TSV. Same Marketing API surface as the MCP, different consumption shape. - Meta Business OAuth — the auth primitive both surfaces share. The same flow Shopify or Mailchimp use. No Developer App, no app review queue, no long-lived tokens for you to leak. Three scope tiers at consent time: read-only, read/write, and read/write/financial.
- The 29-tool catalog — what both surfaces actually expose. Five groups: campaign management, product catalog, accounts and pages, dataset quality, and insights. Inventory in a moment.
One more concept matters the moment you ship anything live: the PAUSED default. Every campaign, ad set, and ad created via either surface lands in PAUSED status. A human flips them on. The CLI’s --no-input and --force flags do not override that — they suppress prompts, not the paused state. This is a deliberate safety net, and you should not try to defeat it.
Smallest end-to-end example
Two paths. Pick the surface that matches your client.
Path A: MCP in Claude Desktop or ChatGPT
- Open Claude Desktop → Settings → Connectors → Add custom connector.
- Paste
https://mcp.facebook.com/adsas the remote URL. - Click Connect. The Facebook OAuth dialog opens. Sign in with the Facebook account that owns Business Manager access.
- Pick the ad accounts and Pages you want exposed. Choose the scope tier — pick the narrowest. For reporting-only work, read-only is enough.
- Back in Claude, ask: “Show me my Meta ad accounts.” The model picks the
ads_get_ad_accountstool, the result lands in the chat.
Path B: CLI for Claude Code, Codex, or CI
# install
pip install meta-ads-cli # Python 3.12+
# one-time auth (opens Facebook OAuth in a browser)
meta auth login
# pick a default account (act_xxx is your ad-account ID)
meta config set default_account act_1234567890
# query — table output by default
meta ads campaign list
# get insights as JSON, pipe into jq
meta ads insights get \
--campaign_id 23847123456789 \
--date-preset last_7d \
--fields impressions,spend,conversions \
--format json | jq '.[] | {id, conversions}'
# create a campaign (lands PAUSED by default)
meta ads campaign create \
--name "Summer Sale 2026" \
--objective OUTCOME_SALES \
--daily-budget 5000
# exit codes for scripting
# 0 = success, 3 = auth error, 4 = API error
In Claude Code, you can now ask: “Run meta ads insights get for every campaign that spent over $500 yesterday and write a CHANGELOG.md entry about which one was the worst CTR.” Claude Code resolves the spec, runs the CLI for each campaign, parses JSON output, writes the file. The exit codes mean it knows when to stop.
Specifics drawn from Meta’s Ads CLI announcement (John Holstein, Matt Mayberry, Andrew Kutsy, and Sanjay Patel, April 29, 2026).
The 29 tools, grouped
Both surfaces share the same Marketing API tool catalog. Here is the full inventory, grouped by capability area, as published by Meta and inventoried by Pasquale Pillitteri.
Campaign management · 5
ads_create_campaignads_create_ad_setads_create_adads_update_entityads_activate_entity
Accounts, Pages, assets · 3
ads_get_ad_accountsads_get_ad_entitiesads_get_pages_for_business
Product catalog · 10
ads_catalog_createads_catalog_get_catalogsads_catalog_get_detailsads_catalog_get_diagnosticsads_catalog_get_feed_rulesads_catalog_get_product_detailsads_catalog_get_product_feed_detailsads_catalog_get_product_set_productsads_catalog_get_product_setsads_catalog_get_products
Dataset quality · 4
ads_get_dataset_detailsads_get_dataset_qualityads_get_dataset_statsads_get_errors
Insights and benchmarks · 7
ads_insights_advertiser_contextads_insights_anomaly_signalads_insights_auction_ranking_benchmarksads_insights_industry_benchmarkads_insights_performance_trendads_get_opportunity_scoreads_get_help_article
Opinion: ten of the twenty-nine tools are catalog operations. That weighting tells you Meta is taking commerce ads seriously as the wedge use case. If you sell physical products, you get the most leverage. If you only run lead gen or app-install, eight or nine tools are dead weight that still ship in your tool descriptions and burn input tokens (more on that in Common Mistakes).
CLI vs MCP: which one to use
Same Marketing API. Different consumption shapes. The right surface depends on what you want from the AI: a conversation or a script.
| MCP server | CLI binary | |
|---|---|---|
| Lives where | Meta-hosted endpoint | Your machine, your CI |
| Used by | Claude Desktop, ChatGPT, Cursor | Claude Code, Codex, CI scripts |
| Auth | OAuth in client UI | meta auth login once |
| Output | Conversational prose | Table, JSON, TSV |
| Best at | Reporting, exploration, ad-hoc “show me” | Bulk ops, repeatable launches, CI |
| Reproducibility | Chat history only | Spec files, exit codes, jq pipelines |
| Local file access | No — needs public URLs | Reads filesystem directly |
The single most useful framing comes from the Ads Uploader team in their April 2026 critique: “MCP for analysis, CLI for execution.” The MCP path is excellent at “tell me which campaign spent the most yesterday and why” because that is a read-and-summarize workflow. The CLI path is excellent at “launch ten ad sets from this CSV with these creatives” because that is a deterministic, multi-step operation that benefits from spec files and exit codes.
Opinion: pick the MCP for first-time exploration and reporting; graduate to the CLI when a workflow has repeated three times. The chat surface buys you fast learning. The CLI buys you durable artefacts — specs, scripts, version-controlled operations.
Official vs community: what changes for existing setups
Pre-launch, the directory’s most-installed Meta connector was pipeboard-co/meta-ads-mcp, which exposes a similar surface area through a Pipeboard-hosted remote MCP at mcp.pipeboard.co/meta-ads-mcp. There are others: GoMarble’s cross-platform MCP that joins Meta with Google Ads and Shopify; brijr/meta-mcp as a bare Marketing API wrapper; and Madgicx as the paid enterprise option.
Here is what actually changes for each of those if you migrate to Meta’s official surface.
What you gain on the official surface
- Free during open beta. Community options often charge $25–$99/month.
- No API token to copy, store, or rotate. The OAuth flow is per-user.
- Three Meta-managed scope tiers (read-only, read/write, financial), picked granularly per ad account.
- Meta-blessed compliance — the “will this ban my account?” question is settled.
What community keeps its edge on
- Cross-platform joins. GoMarble joins Meta with Google Ads, GA4, and Shopify in a single tool surface.
- Multi-account auto-discovery for agency rollups; the official MCP requires per-integration scope.
- Per-client token isolation a regulated-industries setup may need.
- White-label client reporting that the official tools do not expose.
Opinion: keep the community connector if you actually use its cross-platform features. If you installed it just to talk to Meta and the cross-account dashboard never made it into your workflow, rip it out. The official MCP is simpler, free, and removes the token-leak risk surface.
What I got wrong
Three assumptions I made when I first tested the connectors that turned out to be incorrect.
1. I thought the CLI was for power users only. It is not. The CLI is the agency’s durable artefact. A spec file written once becomes a versioned, diffable, reusable launch template that an agent can run repeatedly. The MCP chat is great for the first time you do something; by the third time, you want a CLI invocation under version control. I was thinking about humans typing commands; the actual user is Claude Code or Codex calling the CLI as a subprocess.
2. I thought “free during beta” meant the whole thing was free. Only the connector subscription is free. You still pay normal Meta ad spend — the Marketing API is not a discount on impressions. This is obvious in retrospect and not obvious in the launch copy, which leans hard on the “no fee” framing.
3. I underestimated the tool-description token tax. The Ads Uploader team measured roughly 55,000 input tokens consumed by a 58-tool MCP profile in a single chat session — context they could not use for reasoning or output. With Meta’s 29 tools enabled alongside any non-trivial second connector, you are paying real money in input tokens before the model writes a single word back. Scope down. Disable the catalog tools when you are not doing commerce work. The MCP-side scope tiers help, but they are coarser than tool-level toggles, which the official surface does not yet offer.
Common mistakes
Bot resets bids every 15 minutes
Root cause: violating Meta’s learning phase. Each structural change — budget, audience, creative swap — resets the per-ad-set 50-event learning window. Brody K., a Meta Client Partner, told PPC Land at launch: “Just be sure to remind your agent about the learning phase.” Put a system prompt in front of your agent that says: “Do not edit budgets or audiences more than once per 24 hours.”
Trying to upload local creatives via MCP
Root cause: the MCP path needs publicly reachable URLs for image and video creatives. Local-disk files, Google Drive, and Dropbox folders without public sharing fail. Use the CLI for creative upload — it reads the filesystem directly — or stage creatives on a public URL first.
Granting financial scope by default
Root cause: the OAuth picker offers three scope tiers, and the largest is read/write/financial. Pick the narrowest scope your task needs. Reporting work is read-only. Most campaign edits are read/write — only payment-method or billing changes need financial.
Asking the AI to “optimize” the campaign
Root cause: Meta’s own bidding algorithm is the optimizer; your AI sees the surface, not the auction. Ask the AI to investigate, summarize, and propose structural changes. Let Meta optimize the bids. Tucker Matheson of Markacy framed this for Digiday: Meta’s algorithms remain paramount.
Expecting sub-second bid edits
Root cause: write tools on the MCP path are synchronous, and conversational latency is in seconds. As Pasquale Pillitteri observed in his April 2026 audit, Claude does not have optimal latency for sub-second changes. Real-time programmatic bidding still belongs in a deterministic Marketing API client, not in an LLM-mediated loop.
Who this is for, who it isn’t
Use the official connectors if
- You manage one or more Meta ad accounts manually today.
- You already use Claude or ChatGPT for marketing analysis.
- You want a Meta-blessed automation path with no Developer App registration.
- You run agency reporting workflows you currently rebuild every Monday.
- You sell physical products and want catalog tooling in the AI loop.
Skip the official connectors if
- You rely on a community connector’s cross-platform features (Google Ads + GA4 + Shopify joins).
- You need real-time programmatic bid management at sub-second latency.
- You require white-labeled client reporting the official surface does not expose.
- Your compliance posture demands per-client token isolation rather than per-user OAuth.
- You actively prefer paid hosted alternatives for support SLAs.
Community signal
The launch hit a chord with practitioners who had been living with the Marketing-API-and-token approach. Bryan Cano captured the immediate reaction:
🚨 Meta released their Ads MCP and CLI today – if you use Claude or ChatGPT you should install this asap (resources in comments).
— Bryan Cano (@BryanECano) April 29, 2026
What makes this announcement so interesting is that it gives AI tools direct, authorized access to help manage your Meta Ads account through natural language.
Jason Yim’s read leaned on the natural-language creation angle — the part Meta’s launch copy was loudest about:
you can now create and edit meta ad campaigns by talking to chatgpt or claude
— jason yim (@jasonyimco) April 29, 2026
meta just launched the Meta Ads AI Connectors in open beta
connect your ad account to your ai agent, and you can build campaigns, edit ad sets, and launch ads using natural language.
The contrarian reading deserves equal airtime. Three threads of skepticism showed up across the launch discussion:
The bans haven’t been formally retracted. Francis Teo, in the launch comment thread captured by PPC Land, wrote that the connectors are “absolutely worthless unless Meta addresses the concerns officially and clearly that people are getting banned for using automation solutions.” John Gargiulo amplified that as “the most important comment on the internet right here.” Meta’s implicit answer is that the official path is the safe path; whether that retroactively clears third-party-tool history is unclear.
Launching is harder than reporting. The Ads Uploader team’s breakdown of the MCP path argues that reporting workloads are well-served and launching workloads are structurally fragile — multi-step API calls in a chat surface lose transcripts, fail without good error handling, and require public URLs for creatives that most production workflows do not have. Their pitch is “MCP for analysis, CLI for execution.” That tracks.
Meta keeps the optimization layer. The Common Thread Collective writeup put the boundary cleanly: “Meta’s own AI and algorithm will always be paramount for performance optimization.” The connectors give your agent access to the steering wheel, not the engine.
The verdict
Our take
Default to the official MCP for reporting and exploration in Claude Desktop or ChatGPT. Pair it with the official CLI inside Claude Code for repeatable launches, bulk catalog work, and CI. The combination is the best Meta-Ads-from-AI workflow available today, and it costs nothing during the open beta.
Keep your existing Pipeboard, GoMarble, or Madgicx setup if you depend on cross-platform joins, multi-account agency dashboards, or white-labeled client reporting — the official surface is intentionally Meta-only and will not replace those workflows. And whatever you pick, do not point an AI at the auction. Use it for structure and reporting; let Meta’s algorithm optimize bids.
The bigger picture
Three trends converge at this launch and are worth tracking past it.
Ads platforms are standardizing on MCP. Google shipped its Ads MCP in October 2025; Amazon Advertising followed in November 2025; Google Analytics got a read-only MCP in July 2025. Meta’s April 2026 launch is the third major ads platform to ship an official agent connector and the first to ship full read-and-write at launch. This is becoming a platform feature, not a community add-on. If you maintain ads tooling, expect every major surface to have one within twelve months.
Compliance is the unlock. The ban-or-not-ban question dominated agency conversations through 2025. Cody Schneider’s widely-shared post about a banned ad account using a third-party MCP was cited by half the agency operators we talked to. The official path is a legal-and-policy answer first and a tooling answer second — the new feature is permission, the wire format is incidental.
The agency artefact is the spec file. The open question for 2026 is whether the durable artefact in agency workflows is a Claude chat history, a Claude Code skill, or a CLI spec file. The CLI tilts the answer toward spec file. We expect the agency winners will be the ones who treat ad operations the way platform engineers treat infrastructure: declarative specs in git, applied through a tool that returns exit codes.
Frequently asked questions
What is the Meta Ads MCP server URL?
The official endpoint is https://mcp.facebook.com/ads. You add it as a custom connector in Claude Desktop, ChatGPT, or any MCP-compatible client, then sign in with Facebook. Meta opened the beta on April 29, 2026.
Do I need a Meta Developer App or Marketing API approval?
No. The official MCP and CLI use the standard Meta Business OAuth flow — the same login Shopify and Mailchimp use. There is no Developer App registration, no app review wait, and no token to copy or rotate.
Will using Claude or ChatGPT to manage Meta Ads get my account banned?
Using the official MCP or CLI is the Meta-blessed path and does not trigger automation flags by itself. Bans for unauthorized automation usually came from third-party tools driving the Marketing API with a personal access token. Stick to the official connector and you avoid that class of risk.
Should I use Meta's official MCP or the Pipeboard community server?
Default to the official MCP for Meta-only workflows — it is free, OAuth-authed, and Meta-blessed. Keep Pipeboard or GoMarble if you need cross-account dashboards, multi-platform joins (Google Ads + GA4 + Shopify), or per-client token isolation that the official surface does not yet provide.
What is the difference between the Meta Ads MCP and the Meta Ads CLI?
Same Marketing API surface, different shape. The MCP is an HTTP server you point Claude Desktop or ChatGPT at, used through chat. The CLI is a local Python binary you call from Claude Code, OpenAI Codex, or a CI runner — output is table, JSON, or TSV, with proper exit codes for scripting.
Is the Meta Ads connector free?
The connector itself is free during the open beta. You still pay your normal Meta ads spend; only the integration layer is no-cost. Meta has not announced a post-beta fee structure as of this writing.
Can the AI launch live ads, or are they paused by default?
By default, both surfaces create campaigns, ad sets, and ads in PAUSED status. A human flips them live. The CLI exposes --no-input and --force flags for non-interactive runs, but the paused-by-default rule still applies — you must opt out explicitly.
Glossary
Meta Ads MCP
HTTP MCP server hosted by Meta at mcp.facebook.com/ads.
Meta Ads CLI
Local Python binary `meta` that wraps the same Marketing API surface.
Meta Business OAuth
The standard Meta login flow Shopify and Mailchimp use; powers both surfaces.
Marketing API
Meta's underlying REST API for ad management; both connectors wrap it.
Developer App
Legacy Meta-app object that previously had to be registered for API access — not needed for the official connector.
Learning phase
Per-ad-set window of about 50 conversions during which Meta's algorithm stabilizes; resets on structural edits.
Campaign objective
The optimization goal Meta drives toward (OUTCOME_SALES, OUTCOME_TRAFFIC, etc.).
Ad set
Layer between campaign and ad — owns budget, schedule, audience, optimization.
Catalog
Meta's product feed for shopping ads; ten of the 29 tools manage it.
Conversions API
Server-side event-tracking pipe; signal-quality tools surface its health.
Read / Write / Financial
The three OAuth scope tiers picked at consent time.
PAUSED
Default status for AI-created campaigns, ad sets, and ads — a human must flip live.
All sources
Primary — Meta
- Introducing Ads CLI — Meta’s April 29, 2026 launch post (Holstein, Mayberry, Kutsy, Patel).
- Ads CLI: Get started — setup, prerequisites, auth flow.
- Ads CLI overview — capability map.
- Ads CLI command reference.
- Manage Ads from an AI Agent with Meta Ads AI connectors — Business Help Center article.
- Manage Your Meta Ads From the AI Tools You Already Use — Meta Business news announcement.
Community and analysis
- Bryan Cano on X — launch reaction with resources thread.
- Jason Yim on X — natural-language framing.
- Cody Schneider on X — pre-launch context on third-party-MCP bans.
- Pasquale Pillitteri: Official Meta Ads MCP for Claude — All 29 Tools.
- Thomas Eccel: Meta Ads Official MCP is now out.
- Ryze: Meta’s Official MCP + CLI Just Shipped — technical and limitations writeup.
- Common Thread Collective on the launch — ecommerce angle.
Contrarian and risk
- Ads Uploader: Meta Ads MCP — Right for Reporting, Wrong for Launching Ads — structural critique of MCP-for-launches.
- PPC Land: Meta opens its ad system to Claude and ChatGPT — including Francis Teo, John Gargiulo, Brody K. on bans and learning phase.
- Digiday: Meta opens its ad ecosystem to third-party AI tools — agency reactions, including Tucker Matheson on algorithm sovereignty.
- Madgicx: Safe ways to connect AI assistants to Meta Ads — pre-launch compliance perspective.
Internal — on MCP.Directory
- Meta Ads MCP server (community: Pipeboard) — the pre-launch standard
- What is the Model Context Protocol? A Developer’s Map
- Claude Code Best Practices — how skills, hooks, and MCP fit together.
- Claude Desktop client guide
- Claude Code client guide
- Cursor client guide
- Best MCP servers (2026)
- Browse 3,000+ MCP servers