How to Set Up the Meta Ads MCP in 3 Steps

By Nico
May 8, 2026·7 min read

TL;DR: Paste https://mcp.facebook.com/ads into your AI tool's MCP settings, authorize with Meta, done. Free, ~15 minutes, works with Claude, ChatGPT, Cursor, and any MCP client. No API keys needed. But this gives your AI full write access to your live ad account: budget changes, targeting edits, campaign creation. No undo, no draft mode, no confirmation screen. Read the limitations before you connect.

Meta's official MCP server gives AI agents direct access to your ad account. 29 tools, free, open beta since April 29, 2026.

1. Add the MCP Server

You need a Meta Business Manager account with admin access, and a paid AI tool that supports MCP connectors (Claude Pro/Max, ChatGPT Plus, Cursor Pro, etc.). No developer account, no API token, no app registration. Meta's own announcement says "no developer credentials, API setup, or coding required."

Open Settings > Connectors and click the + button. See Anthropic's MCP connectors documentation for details.

Claude Settings showing the Connectors panel with arrows pointing to the Connectors nav item and the + button

Fill in the fields and click Add:

  • Name: Meta Ads MCP
  • Remote MCP server URL: https://mcp.facebook.com/ads

2. Authorize Your Account

Your AI tool opens Meta's OAuth authorization screen in a browser window. This is the same flow for all tools.

Click Continue, then select Opt in for current business only and pick your Business Manager. This limits the AI to one portfolio instead of every account tied to your personal profile.

Meta auto-grants four permission scopes. You can't pick and choose, just review and click Save:

  • Manage your product catalogues
  • Manage ads for ad accounts that you have access to
  • Access your Facebook ads and related stats
  • Manage your business (the selected Business Manager portfolio)

Meta OAuth permissions review screen showing four auto-granted scopes

Tip: You can verify your token's scopes anytime with Meta's Access Token Debugger, and revoke MCP access from Business Manager > Settings > Business Integrations.

If you're using Claude Code (the terminal CLI, not claude.ai), this step will fail with a redirect_uris are not registered for this client error. Meta hasn't whitelisted Claude Code's callback URLs yet.

Use claude.ai (the web version) instead. See troubleshooting for details.

3. Verify the Connection

Ask your AI something simple: "What ad accounts do I have access to?" or "Audit my ad account."

If it pulls your account data, you're done.

Claude responding to "Audit my ad account" with account metrics including spend, impressions, clicks, CTR, and CPC

If an account shows is_ads_mcp_enabled: false, that account hasn't been enabled yet. Meta is rolling out access account-by-account, US and higher-spend accounts first. See troubleshooting below.

Three steps, no API keys, no developer account. Your AI agent can now read and write to your entire ad account.

Prompt Examples and Tool Reference

The MCP loads 29 tools into your AI agent, organized in five categories: Campaign Management (5), Product Catalog (10), Assets (3), Diagnostics (4), and Insights (7).

Most of the value is in Insights and Diagnostics. These are read-only: they pull data, compare metrics, and flag problems without touching anything. Campaign Management is the write side, where the AI can create, edit, and pause campaigns on your live account.

"How are my ads doing?" gets a vague summary. Prompts with time ranges, metrics, and thresholds get actionable numbers.

Pro Tip: Always include a date range, specific metrics, and a threshold in your prompts. "Show ads where CPA exceeded $30 in the last 7 days" beats "which ads are underperforming?" every time.

Prompt Examples

Spot creative fatigue:

Show me every ad running for more than 14 days where CTR dropped
more than 20% compared to its first week. Include current frequency
for each.

Claude response showing a table of ads with first-week CTR, recent CTR, percentage drop, and current frequency

In Ads Manager, finding these means exporting data and cross-referencing frequency manually. The AI scans every ad and flags the dying ones.

Find where your budget is leaking:

Break down all active campaigns by placement. Show spend and cost
per conversion for Facebook Feed, Instagram Stories, Instagram Reels,
and Audience Network separately.

In Ads Manager you'd open each campaign, click Breakdown > Placement, and compare manually. This does it across your entire account in one pass.

Check if your tracking is broken:

Check my Meta Pixel health and event match quality. Are all standard
events firing? What's my match quality rating?

Broken tracking means you optimize toward bad data for weeks. This check is buried 5 clicks deep in Events Manager.

Monday morning comparison:

Compare my account performance this week vs. last week. Total spend,
conversions, CPA, and ROAS. Flag anything that changed more than 20%.

Instead of switching date ranges and squinting at numbers, you get a side-by-side with changes flagged. Model the ROAS impact with the ROAS calculator.

Find ad sets burning money:

Which active ad sets have spent more than $50 in the last 7 days
with zero conversions? Show targeting and total spend for each.

Claude response showing ad sets with $50+ spend and zero conversions, with targeting and spend breakdown

The kind of waste you don't catch until month-end reporting. Kill these, or fix the landing page.

Run a full health check:

Quick audit: any active campaigns with zero impressions this week,
ad sets with frequency above 4, disapproved ads, and total account
spend vs. yesterday.

Four checks across separate Ads Manager screens, one prompt. Use the ads profit calculator to check if your spend-to-conversion ratio actually makes money.

Every prompt above is a read-only operation. The MCP handles reads well. The moment you ask it to create, edit, or pause something, every action hits your live account.

All 29 Tools

View the full tool reference table (as of May 2026)
CategoryToolWhat It Does
Campaigncreate_campaignCreate a new campaign with objective, budget, schedule
create_ad_setCreate an ad set with targeting, placement, optimization
create_adCreate an ad with creative, copy, CTA
edit_campaignModify an existing campaign's settings
manage_campaign_statusPause, activate, or archive campaigns
Catalogcreate_catalogCreate a new product catalog
add_productsAdd products to a catalog
update_productsUpdate existing product information
delete_productsRemove products from a catalog
get_catalog_issuesCheck for feed errors and warnings
get_product_setsList product sets and their filters
create_product_setCreate filtered product groups
update_product_setModify product set filters
get_catalog_permissionsCheck who has access
manage_catalog_permissionsGrant or revoke catalog access
Assetsget_ad_accountsList all ad accounts you can access
get_pagesList connected Facebook pages
get_business_assetsList business portfolio assets
Diagnosticsget_pixel_healthCheck Meta Pixel event quality
get_event_match_qualityView event match quality scores
get_capi_diagnosticsCheck Conversions API setup
get_dataset_issuesSurface tracking problems
Insightsget_campaign_insightsPull ROAS, CPC, CTR, CPM at campaign level
get_adset_insightsPull metrics at ad set level
get_ad_insightsPull metrics at individual ad level
get_account_insightsPull account-wide metrics
get_audience_insightsAnalyze audience performance
compare_campaignsSide-by-side campaign comparison
get_breakdownBreak down metrics by age, gender, placement, etc.

Tool names and capabilities may change during beta. See Meta's official AI Connectors help page and Marketing API documentation for the latest reference.

Before You Trust It...

Good news: Reads work well. Bad news: Writes have no safety net: every action hits your live account immediately.

AI Agents Make Mistakes

AI agents hallucinate, misinterpret prompts, and take actions you didn't ask for, and are notoriously unreliable: In May 2026, one deleted a company's entire database because it misunderstood the task.

Tweet from @lifeof_jer: "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing." with 7.1M views

With Meta's MCP, every write action goes straight to your live account. If the AI changes a daily budget from $100 to $10,000, it's done.

Meta does pause all MCP-created campaigns as a safety measure, but edits to existing campaigns go live immediately, there is no "draft" like you normally have in the ads manager.

So if the AI's judgement was wrong, your account can get messy and your CPA increase without you noticing.

Tools like AdKit solve this with a draft layer: the AI proposes changes, you review them in a dashboard, nothing goes live until you approve.

AdKit Agent Drafts screen showing pending campaign changes with approve and reject controls

The more you use it, the Worse It Gets

I asked Claude to audit my ad account using Meta Ads MCP. One question used 27% of the AI's working memory (often called "context window").

After a single "audit my account" prompt, 27% of the AI's working memory is already used

Meta dumps everything into every response: settings, raw API fields, stuff you didn't ask for. A few more questions and you're past 50% working memory and AI becomes exponentially dumber.

It's usually not a big deal, but the problem is that it has write access to your ad account, with no guardrails.

AdKit's MCP filters out the noise: 6 tools instead of 29, only the data the AI needs.

Tip: On Claude, toggle the connector off in Settings > Connectors between sessions. Auth persists, reconnects instantly.

Meta Only

The MCP covers Meta (Facebook and Instagram) ads. No Google Ads, no LinkedIn, no TikTok.

If you run ads across multiple platforms, you need separate tools for each. Google has an official Ads MCP, but it's read-only: no campaign creation or edits. AdKit's MCP covers both Meta and Google Ads in one connection with 6 tools instead of 29, keeping context lean enough that your agent stays sharp.

Still in Beta

The MCP launched April 29, 2026. It's an open beta. Tools will change, things will break.

Rate limits sit at roughly 200 calls per hour per ad account, in line with Meta's Marketing API rate limiting policy. Heavy analysis on large accounts hits that fast.

Not every account is enabled yet. Meta is rolling out access gradually, US and higher-spend accounts first. See troubleshooting if yours shows is_ads_mcp_enabled: false.

Troubleshooting

"is_ads_mcp_enabled: false"

The most common issue right now. You authenticate fine, see your accounts listed, but some return is_ads_mcp_enabled: false and the AI can't access their data.

Meta is enabling MCP access account-by-account. US accounts go first, higher-spend accounts are prioritized, and some regions (ANZ, parts of EU) are still waiting. There's no fix and no way to request early access.

You can use an external MCP in the meantime, like Adkit's Meta MCP .

Free Plan Can't Add MCP

The "Add custom connector" option doesn't appear on free plans. You need Claude Pro or Max ($20+/mo), ChatGPT Plus, or another paid AI client with MCP support. This is a limitation of the AI tools, not Meta's server.

"Insufficient Permissions" (Error 200)

Your token is missing one of the required scopes. This can happen if the OAuth flow was interrupted or if Meta changed the permission grant screen.

Fix: disconnect the MCP, reconnect, and complete the full OAuth flow again. You can verify your token's scopes with Meta's Access Token Debugger. For a full list of error codes related to permissions, see the Marketing API error reference.

Rate Limit Exceeded (Error 4 / 429)

Meta throttles at roughly 200 API calls per hour per ad account. AI agents that fire multiple parallel queries hit this fast, especially on accounts with many campaigns.

Fix: ask for smaller date ranges, fewer metrics per query, and avoid requesting everything at once. For custom tooling, check the x-fb-ads-insights-throttle response header. Meta's rate limiting documentation explains the throttle tiers in detail.

Local File Uploads Fail

The MCP needs publicly accessible URLs for images and videos. Local file paths (/Users/you/creative.jpg), private Google Drive links, and localhost URLs won't work.

Fix: upload creatives to a CDN or any public URL first, then reference that URL in your prompt.

AI-Created Campaigns Are Always PAUSED

Not a bug. Meta forces all campaigns, ad sets, and ads created through the MCP to start paused. You activate them manually in Ads Manager.

This is a safety feature. It prevents the "AI accidentally launched a $10,000/day campaign" scenario.

Answers Getting Worse Over a Session

Meta's MCP sends unfiltered API data with every response. After several questions, AI performance can drop by half.

Fix: disconnect the MCP between sessions. On Claude, toggle it off in Settings > Connectors. Auth persists.

OAuth Redirect Error in Claude Code
redirect_uris are not registered for this client

Happens specifically in Claude Code (the terminal/CLI version). Meta's OAuth doesn't have Claude Code's localhost callback URLs registered. Multiple GitHub issues filed and closed, no fix.

Workaround: use Claude.ai (the web version) instead of Claude Code for Meta Ads MCP.

"Terms of Service Not Accepted" (Error 100 / 1815089)

A cryptic VALIDATION error when creating lead generation campaigns. Meta requires separate acceptance of the Lead Ads Terms of Service.

Fix: go to facebook.com/legal/leadgen/tos, accept the TOS, then try again. Similar TOS gates may exist for custom audiences and other ad types.

Known bug: some accounts still get this error after accepting the TOS. Meta support has confirmed it can be an internal issue on their end. If accepting the TOS doesn't fix it, contact Meta Business support.

Token Expired / Silent Failures

Access tokens last roughly 60 days and don't auto-refresh in all clients. You'll be working normally, then tools start returning empty results or generic errors with no warning.

Fix: disconnect and reconnect the MCP to get a fresh token. Set yourself a reminder for 50 days.

Final Thoughts

Start with read-only prompts: creative fatigue checks, placement breakdowns, pixel health. Keep write operations in Ads Manager for now, or use AdKit to add a review layer before anything goes live.

If you also run Google Ads, check our Google Ads MCP guide for a similar setup walkthrough.

Got questions about the setup? Ping me on X or LinkedIn.

Share on:
Photo of Nico

Article by

Nico Jeannen

Hey! I'm the founder of AdKit. I've been doing ads for almost 10 years. I grew and sold my 2 previous startup using ads. Then I created AdKit to make ads accessible to everyone.