Meta Ads MCP

Meta Ads MCP Server

Everything you need to decide whether a Meta Ads MCP server is the right way to run Facebook and Instagram ads from Claude — and how to set this one up in about five minutes.

A Meta Ads MCP server is a bridge between an AI client that speaks the Model Context Protocol — Claude, Claude Code, ChatGPT, Cursor, Codex and the rest — and the Meta Marketing API behind Ads Manager. Instead of exporting a report, pasting it into a chat and asking questions about a snapshot, the assistant calls a tool, gets live data back for the account you connected, and can make changes to it when you ask. MCP Ads is a hosted server that does exactly that for Meta Ads, with 234 Meta tools alongside Google Ads, GA4, Search Console and the other platforms it covers. This page explains what the server does, how to add it to your client, what the Meta authorisation actually asks for, what the safety defaults are, and — because the question comes up every time — when Pipeboard, Meta's own Ads MCP or an open-source server on GitHub is the better choice.
234
tools on this platform
3,189
tools in total
Browser
sign-in, no API keys

What a call looks like

These are real tool names from the live server, with the shape of what they return.

YouWhich Meta campaigns spent the most last week and what did they return?
Toolmeta_ads_campaign_performance
{
  "campaigns": [
    { "name": "Retargeting - 30d",  "spend": 4820.11, "purchases": 96, "roas": 3.71 },
    { "name": "Prospecting - Broad", "spend": 3915.60, "purchases": 41, "roas": 1.88 }
  ],
  "date_range": "2026-08-31 to 2026-09-06"
}
YouFind the ad account for the Berlin store — I do not know the ID.
Toolmeta_ads_find_account
{
  "matches": [
    { "id": "act_5647382910", "name": "EU Storefront - Berlin", "currency": "EUR", "status": "ACTIVE" }
  ],
  "searched": 132
}
YouIs anything under-delivering right now?
Toolmeta_ads_delivery_insights
{
  "ad_sets": [
    { "name": "Lookalike 1% - US", "issue": "LEARNING_LIMITED", "conversions_7d": 11,
      "note": "Under 50 conversions in 7 days keeps this ad set in the learning phase." }
  ]
}
YouFlag any campaign where frequency is above 3.
Toolmeta_ads_frequency_watcher
{
  "threshold": 3.0,
  "at_risk": [
    { "campaign": "Retargeting - 30d", "frequency": 4.6, "recommendation": "refresh_creative" }
  ]
}
YouCreate a sales campaign called "Autumn - Prospecting" with a $150 daily CBO budget.
Toolmeta_ads_create_campaign
{
  "id": "120214567890123",
  "name": "Autumn - Prospecting",
  "objective": "OUTCOME_SALES",
  "status": "PAUSED",
  "daily_budget": 15000,
  "note": "Created paused. Say 'enable it' when the ad sets and ads are in place."
}

What a Meta Ads MCP server actually does

MCP is a small, open protocol: a client lists the tools a server exposes, the model picks one based on your prompt, the server runs it against the platform API and returns structured data. The assistant never sees your token and you never see the API. For Meta that means the assistant can list campaigns, read the delivery status of an ad set, break performance down by placement, pull leads from a lead form, upload an image, build a creative from it, and create or update campaigns — all as discrete tool calls, each of which shows up in the client so you can see what was done. MCP Ads exposes 234 Meta Ads tools, split between read tools that change nothing and a smaller set of write tools that do. Roughly 90 of the 234 are writes; the rest are reads and reports.

Add the server to Claude Code, Claude Desktop or ChatGPT

The server is remote, so there is nothing to install, no Python environment, no Meta developer app and no access token to generate. Sign up at mcp-ads.com, connect Meta from the dashboard, then point your client at the endpoint. In Claude Code it is one command:

  • Claude Code: `claude mcp add --transport http mcp-ads https://mcp-ads.com/mcp-slim` — the name "mcp-ads" is just the local label. Run `/mcp` inside Claude Code to trigger the browser sign-in the first time.
  • Claude Desktop and claude.ai: Settings → Connectors → Add custom connector, paste `https://mcp-ads.com/mcp-slim`, approve the browser sign-in that opens.
  • ChatGPT: add the same URL as a connector in Developer Mode, or use the Custom GPT action documented in the docs.
  • Cursor, Windsurf, Codex, Gemini CLI: add `{ "mcpServers": { "mcp-ads": { "url": "https://mcp-ads.com/mcp-slim" } } }` to the client's MCP config. The full `/mcp` endpoint lists every tool individually; `/mcp-slim` exposes one dispatcher per platform and is faster to discover, which is why the docs recommend it.

What the Meta OAuth screen asks for

Connecting Meta is a standard Facebook Login consent screen, the same one Business Manager uses for any third-party tool. It asks for permission to manage ads on the ad accounts your Meta login can already reach (the ads_management and ads_read permissions), to read the Pages and Instagram accounts you administer so the server can post from them and read page insights, and to read business assets so it can list the ad accounts under your Business Manager. It does not ask for your personal profile beyond the basic identity Meta always includes, and it cannot reach any ad account your login does not already have a role on. The token Meta returns is stored encrypted on the MCP Ads side and is never sent to your AI client; the client only ever holds the connector URL. You can revoke the grant from the MCP Ads dashboard or from Meta's Business Integrations settings at any time, and revoking one Meta login does not affect any other platform you have connected. Several Meta logins can be connected at once — useful when an agency has some clients under its own Business Manager and others as guest access — and each write is routed back through the login that owns the account.

Tool categories in the Meta Ads server

The 234 tools cover the parts of Ads Manager people actually use between reports. The names below are the real tool names, so you can search for them in the API reference.

  • Accounts and structure — meta_ads_list_ad_accounts, meta_ads_find_account, meta_ads_account_diagnostics, meta_ads_account_change_history, meta_ads_account_spending_limit
  • Campaigns, ad sets and ads — meta_ads_create_campaign, meta_ads_create_adset, meta_ads_create_adset_with_dayparting, meta_ads_duplicate_adset, meta_ads_copy_ad_to_adset, meta_ads_update_budget, meta_ads_update_adset_budget, meta_ads_switch_budget_mode, meta_ads_set_adset_budget_guardrails
  • Creatives and media — meta_ads_upload_image_to_meta, meta_ads_upload_ad_video, meta_ads_create_ad_creative, meta_ads_create_carousel_ad_creative, meta_ads_create_video_ad_creative, meta_ads_create_story_ad_creative, meta_ads_create_advantage_plus_creative, meta_ads_creative_previews
  • Audiences — meta_ads_create_website_audience, meta_ads_create_engagement_audience, meta_ads_create_saved_audience, meta_ads_upload_customer_list_to_audience, meta_ads_update_audience
  • Lead ads — meta_ads_create_lead_form, meta_ads_create_lead_campaign, meta_ads_create_lead_form_and_paused_ad, meta_ads_leadgen_forms, meta_ads_lead_export
  • Reporting and diagnostics — meta_ads_overview, meta_ads_campaign_performance, meta_ads_adset_performance, meta_ads_ad_performance (with age, gender, country, placement and device breakdowns), meta_ads_placements, meta_ads_delivery_insights, meta_ads_frequency_watcher, meta_ads_attribution_report, meta_ads_cross_account_report, meta_ads_render_report_pdf
  • Pages and Instagram — meta_ads_page_insights, meta_ads_instagram_insights, meta_ads_instagram_post_insights, plus the organic post and comment tools

Safety defaults: what the server will and will not do on its own

The write tools are the reason to be careful with any Meta Ads MCP server, and the defaults are chosen so a loosely worded prompt cannot spend money. meta_ads_create_campaign, meta_ads_create_adset and the lead-ad helpers all default to status PAUSED; you have to say "enable it" or pass ACTIVE explicitly. Budget changes are separate, explicit tools (meta_ads_update_budget for campaign-level CBO budgets and meta_ads_update_adset_budget for ad-set budgets), and meta_ads_set_adset_budget_guardrails lets you put a ceiling on an ad set that later prompts cannot silently exceed. Reads and writes are split, so a user with the viewer role in an MCP Ads workspace can run every report and cannot call a single write tool. Delete tools do exist for Meta (meta_ads_delete_campaign, meta_ads_delete_adset, meta_ads_delete_ad) because Meta's own API supports archiving cleanly, but they are writes like any other: blocked for viewers and never chosen by the model without an explicit instruction. Every call is visible in your client as it happens, and the account change history tool shows what was changed and when if you want to audit it afterwards.

Pipeboard, Meta's own Ads MCP, and open-source servers — when each is the better pick

MCP Ads is not the only way to connect Meta Ads to an AI client, and it is not the right one for everybody. Pipeboard runs a Meta Ads MCP server and also publishes it as open source, so you can run it yourself with your own Meta app and token, or use their hosted version with browser sign-in. Meta has also released its own Ads MCP for developers building on the Marketing API. There are further community servers on GitHub that wrap the Marketing API in a local stdio server. The honest split is this:

  • Pick Pipeboard or a self-hosted open-source server if Meta is the only platform you care about, you are comfortable creating a Meta developer app and keeping a system-user token alive, and you want to run the server locally so nothing leaves your machine. Self-hosting costs nothing but your time.
  • Pick Meta's own Ads MCP if you are a developer building on the Marketing API and want a first-party surface that tracks Meta's API changes directly. It is aimed at builders rather than at a media buyer who wants to ask questions in Claude.
  • Pick MCP Ads if you manage Meta alongside Google Ads, GA4, Search Console, TikTok, LinkedIn or Microsoft and want one connector and one sign-in for all of them; if you run more than one ad account or Business Manager and do not want to rotate tokens; if you need viewer-versus-editor roles for a team; or if you want the safety defaults above without configuring them. It is a paid product — the free plan covers 30 tool calls a month and the unlimited plan is a flat $49/month regardless of how many accounts you connect — so a single-account solo advertiser who is happy on the free tier of an open-source server will not gain much from it.

Which clients it works with

Anything that supports remote MCP over HTTP: Claude Desktop, claude.ai, Claude Code, ChatGPT, Cursor, Windsurf, Codex, Gemini CLI and Grok. One connector URL covers all of them, the tools behave identically in each, and the OAuth grant persists so you connect Meta once and add the URL to as many clients as you use. The marketing skills library on this site — weekly Meta report, creative fatigue detector, audience overlap detector, funnel analysis — assumes this server is connected and runs against the live account rather than giving general advice.

Pricing

The free plan includes 30 tool calls a month with no time limit, which is enough to run a full audit end to end and decide whether it fits. The unlimited plan is $49/month, flat, for every account and platform you connect — there is no per-account or per-seat line, which is the thing agencies ask about first. You can upgrade without reconnecting anything and cancel from the dashboard.

Questions

Is there a free Meta Ads MCP?

Yes, in two senses. MCP Ads has a free plan with 30 tool calls a month. If you want unlimited use for free, Pipeboard's Meta Ads MCP and several community servers on GitHub are open source and can be self-hosted with your own Meta developer app and access token; the cost is setting up and maintaining that app and token yourself.

Does it work with Claude Code?

Yes. Run `claude mcp add --transport http mcp-ads https://mcp-ads.com/mcp-slim`, then `/mcp` inside Claude Code to complete the browser sign-in. The same tools are then available in Claude Code, Claude Desktop and claude.ai.

Do I need a Meta developer app or an access token?

No. You authorise through Meta in the browser and MCP Ads holds the token, encrypted. There is nothing to create in developers.facebook.com and no key to paste into your AI client. If you would rather own the app and token yourself, that is the case for a self-hosted open-source server instead.

Can it change budgets?

Yes, but only through explicit tools: meta_ads_update_budget for campaign-level budgets and meta_ads_update_adset_budget for ad-set budgets. Neither is called unless you ask for a budget change, and meta_ads_set_adset_budget_guardrails can cap what later changes are allowed to do. Viewer-role users cannot call either.

Are new campaigns created live?

No. meta_ads_create_campaign and meta_ads_create_adset default to PAUSED. You review the structure in Ads Manager or ask the assistant to enable it when the ad sets and ads are in place.

What happens with multiple ad accounts or multiple Business Managers?

Both are supported. Connect each Meta login once; every ad account is mapped to the login that owns it, and a write is always sent with the token that actually has permission on that account. meta_ads_find_account searches across all of them by partial name, ID fragment or currency.

Does the assistant see my Meta credentials?

No. Tool results go into the conversation the way any answer does, but the OAuth token stays on the MCP Ads side and is never exposed to the client or the model.

Related

Connect an account and try it

Add MCP Ads to Claude or ChatGPT with one URL, authorise an ad account in the browser, and ask it something.