100+ integrations are ready to connect to your AI.Connect your first MCP

Meta Ads MCP server for your AI

Break spend down by campaign, pause the ad sets missing their target, build a lookalike audience, and preview a creative before it exists — without opening Ads Manager.

PopMCPMeta Ads

Which campaigns spent over $500 last week and what did each cost per result

Supported Meta Ads tools

Every read and write call PopMCP exposes on Meta's Marketing API, plus the webhook and change-detection triggers it can watch on your account.

meta_ads_get_ad_account

Read the connected ad account node (status, currency, spend, capabilities).

meta_ads_add_custom_audience_users

Add hashed customer records to a customer-list audience.

meta_ads_create_custom_audience

Create a custom audience (customer list, website/engagement rule, or lookalike).

meta_ads_get_custom_audience

Read a custom audience node by id.

meta_ads_list_custom_audiences

List custom audiences (customer lists, website, engagement, lookalikes) in the account.

meta_ads_list_saved_audiences

Saved (reusable targeting) audiences in the account.

meta_ads_create_campaign

Create a campaign.

meta_ads_get_campaign

Read a campaign node by id.

meta_ads_list_campaigns

List campaigns in the connected account.

meta_ads_update_campaign

Update a campaign (rename, pause/resume, budgets, bid strategy).

meta_ads_create_adset

Create an ad set (targeting, budget, schedule, optimization).

meta_ads_get_adset

Read an ad set node by id.

meta_ads_get_adset_delivery_estimate

Estimated audience size + daily results for this ad set's current setup.

meta_ads_list_adsets

List ad sets in the connected account.

meta_ads_update_adset

Update an ad set (pause/resume, budget, bid, targeting, schedule).

meta_ads_create_ad

Create an ad from an existing creative inside an ad set.

meta_ads_get_ad

Read an ad node by id.

meta_ads_get_ad_previews

Generate preview iframes for an existing ad.

meta_ads_list_ad_leads

Leads submitted through a lead ad.

meta_ads_list_ads

List ads in the connected account.

meta_ads_list_pixels

List Meta Pixels (datasets) on the connected account.

meta_ads_send_pixel_events

Conversions API: send server-side events (web, offline/in-store, CRM) to a pixel/dataset.

meta_ads_update_ad

Update an ad (pause/resume, rename, swap creative).

meta_ads_create_ad_creative

Create an ad creative (link/image/video/carousel or dynamic asset feed).

meta_ads_generate_previews

Preview a creative SPEC before creating anything.

meta_ads_get_ad_creative

Read an ad creative node by id.

meta_ads_get_delivery_estimate

Estimated audience size + daily outcomes for a prospective targeting spec.

meta_ads_list_ad_creatives

List ad creatives in the connected account.

meta_ads_list_ad_images

Images in the account's media library.

meta_ads_search_targeting

Search targeting options: interests, behaviors, locations, schools, employers, locales.

meta_ads_upload_ad_image

Upload an image.

meta_ads_validate_targeting

Validate targeting ids/keywords before using them in an ad set.

meta_ads_create_insights_report

Start an ASYNC insights report run (for big queries that time out synchronously).

meta_ads_get_account_insights

Performance metrics for the account (roll up or break down via level/breakdowns).

meta_ads_get_ad_insights

Performance metrics for one ad.

meta_ads_get_adset_insights

Performance metrics for one ad set.

meta_ads_get_campaign_insights

Performance metrics for one campaign.

meta_ads_get_insights_report_results

Fetch the rows of a completed async report run.

meta_ads_get_insights_report_status

Poll an async report run.

meta_ads_list_form_leads

Leads submitted to one form (across all ads using it).

meta_ads_list_page_leadgen_forms

Lead forms on a Page.

meta_ads_attach_external_event_sources

Connect pixels/apps to this catalog (enables dynamic-ads retargeting).

meta_ads_check_batch_request_status

Status + per-item errors of an items_batch upload.

meta_ads_create_catalog_product

Add a single product to a catalog.

meta_ads_create_product_catalog

Create a product catalog under a business.

meta_ads_create_product_group

Create a product group (set of variants of one product).

meta_ads_create_product_set

Create a product set from a filter rule.

meta_ads_delete_product_catalog

Delete a product catalog.

meta_ads_delete_product_group

Delete a product group.

meta_ads_delete_product_item

Delete one catalog product.

meta_ads_delete_product_set

Delete a product set (must not be used by live dynamic ads).

meta_ads_get_catalog_diagnostics

Catalog issue diagnostics (data quality problems and affected items).

meta_ads_get_catalog_event_stats

Pixel/app event-to-catalog match statistics (how well events match products).

meta_ads_get_product_catalog

Read a product catalog node by id.

meta_ads_get_product_group

Read a product group node by id.

meta_ads_get_product_item

Read one catalog product by its product item id.

meta_ads_get_product_set

Read a product set node by id.

meta_ads_list_catalog_products

Products in a catalog.

meta_ads_list_client_product_catalogs

Catalogs shared with this business by clients.

meta_ads_list_external_event_sources

Pixels/apps connected to this catalog as event sources.

meta_ads_list_owned_product_catalogs

Product catalogs owned by a business.

meta_ads_list_product_group_products

Products (variants) inside a product group.

meta_ads_list_product_groups

Product groups (variant clusters) in a catalog.

meta_ads_list_product_sets

Product sets (filtered slices of a catalog used by dynamic ads).

meta_ads_send_items_batch

Bulk create/update/delete catalog items (up to 5000 requests per call).

meta_ads_send_localized_items_batch

Bulk upsert language/country overrides for catalog items.

meta_ads_update_product_catalog

Update a product catalog (rename, default image).

meta_ads_update_product_group

Update a product group's variant definition.

meta_ads_update_product_item

Update one catalog product.

meta_ads_update_product_set

Update a product set (rename, change filter).

meta_ads_get_ads_volume

Running/total ad volume against the account's ad limits.

meta_ads_get_max_bid

Maximum bid amount allowed on this account.

meta_ads_get_tracking

Account-level tracking specs applied to ads by default.

meta_ads_list_account_activities

Change-history log for the account (who changed what, when).

meta_ads_list_account_ad_studies

Lift/split studies that touch this ad account.

meta_ads_list_account_instagram_accounts

Instagram accounts usable by this ad account.

meta_ads_list_account_recommendations

Delivery/setup recommendations Meta surfaces for this account.

meta_ads_list_advertisable_applications

Apps this account can promote (for app-install/app-event campaigns).

meta_ads_list_agencies

Agencies (partner businesses) with access to this ad account.

meta_ads_list_applications

Apps connected to this ad account.

meta_ads_list_assigned_users

Users assigned to this ad account with their tasks (roles).

meta_ads_list_connected_instagram_accounts

Instagram accounts connected to this ad account (via linked Pages/business).

meta_ads_list_minimum_budgets

Minimum daily budget thresholds per bid strategy/currency for this account.

meta_ads_list_promote_pages

Facebook Pages this ad account can promote.

meta_ads_list_subscribed_apps

Apps subscribed to this ad account's updates.

meta_ads_search_app_store

Search app stores for promotable apps (app ads).

meta_ads_update_ad_account

Update ad account settings (name, spend cap, notification settings).

meta_ads_create_business_ad_account

Create a NEW ad account under a business.

meta_ads_create_business_dataset

Create a dataset for CRM/offline events.

meta_ads_create_event_source_group

Create an event source group.

meta_ads_create_product_audience

Create a dynamic-ads product audience (viewed/added-to-cart retargeting).

meta_ads_delete_custom_audience

Delete a custom audience (must not be in use by active ad sets).

meta_ads_get_business

Read a business node by id.

meta_ads_get_custom_audience_health

Match-rate / health metrics for a customer-list audience.

meta_ads_get_saved_audience

Read a saved audience node by id.

meta_ads_get_token_identity

Identity of the connected token (which system user / user it is).

meta_ads_list_audience_ads

Ads currently using this audience.

meta_ads_list_audience_sessions

Upload sessions for a customer-list audience (progress + match results).

meta_ads_list_audience_shared_accounts

Ad accounts this audience is shared with.

meta_ads_list_business_datasets

Datasets (modern pixel/offline/CRM event containers) owned by a business.

meta_ads_list_business_instagram_accounts

Instagram accounts connected to a business.

meta_ads_list_business_invoices

Invoices for businesses on invoiced billing.

meta_ads_list_business_pixels

Pixels owned by a business.

meta_ads_list_business_users

People in the business with their roles.

meta_ads_list_client_ad_accounts

Client ad accounts shared with this business (agency view).

meta_ads_list_client_pages

Client pages shared with this business (agency view).

meta_ads_list_event_source_groups

Event source groups (bundled pixels/apps) in a business.

meta_ads_list_my_businesses

Business portfolios the token can access (source of {businessId} for catalog/business ops).

meta_ads_list_owned_ad_accounts

Ad accounts owned by a business.

meta_ads_list_owned_pages

Pages owned by a business.

meta_ads_list_system_users

System users in the business.

meta_ads_remove_custom_audience_users

Remove hashed customer records from a customer-list audience.

meta_ads_replace_custom_audience_users

Atomically replace ALL members of a customer-list audience with a new upload.

meta_ads_share_custom_audience

Share this audience with other ad accounts (within the business relationship).

meta_ads_unshare_custom_audience

Revoke this audience from ad accounts it was shared with.

meta_ads_update_custom_audience

Update a custom audience (name, description, rule).

meta_ads_bulk_delete_campaigns

Bulk-delete campaigns by strategy (oldest / archived-before-date).

meta_ads_copy_campaign

Duplicate a campaign (optionally deep-copying its ad sets and ads).

meta_ads_create_budget_schedule

Schedule a temporary budget increase for a high-demand period.

meta_ads_delete_campaign

Delete a campaign (and its ad sets/ads).

meta_ads_list_budget_schedules

High-demand budget schedule periods on a campaign or ad set.

meta_ads_list_campaign_ads

Ads under a campaign.

meta_ads_list_campaign_adsets

Ad sets under a campaign.

meta_ads_list_campaign_copies

Copies made of this campaign.

meta_ads_copy_adset

Duplicate an ad set (optionally into another campaign, with its ads).

meta_ads_delete_adset

Delete an ad set (and its ads).

meta_ads_get_adset_targeting_sentence_lines

Human-readable summary of the ad set's targeting.

meta_ads_list_adset_activities

Change-history log for one ad set.

meta_ads_list_adset_ads

Ads under an ad set.

meta_ads_list_adset_copies

Copies made of this ad set.

meta_ads_copy_ad

Duplicate an ad (optionally into another ad set).

meta_ads_create_feed_rule

Add a transform rule to a feed (remap/normalize columns at ingestion).

meta_ads_create_feed_upload

Trigger an immediate fetch of the feed file from a URL.

meta_ads_create_pixel

Create a Meta Pixel on the connected account.

meta_ads_create_product_feed

Create a product feed (scheduled fetch of a CSV/TSV/XML file).

meta_ads_delete_ad

Delete an ad.

meta_ads_delete_product_feed

Delete a product feed.

meta_ads_get_ad_targeting_sentence_lines

Human-readable summary of the targeting reaching this ad.

meta_ads_get_pixel

Read a pixel node by id.

meta_ads_get_pixel_da_checks

Dynamic-ads setup checks for a pixel (event coverage, catalog match).

meta_ads_get_pixel_stats

Pixel fire statistics (events received over time).

meta_ads_get_product_feed

Read a product feed node by id.

meta_ads_list_ad_copies

Copies made of this ad.

meta_ads_list_feed_rules

Transform rules applied to a feed during ingestion.

meta_ads_list_feed_upload_errors

Errors/warnings from one feed upload.

meta_ads_list_feed_uploads

Upload history for a feed.

meta_ads_list_pixel_shared_accounts

Ad accounts this pixel is shared with.

meta_ads_list_pixel_shared_agencies

Agencies (partner businesses) this pixel is shared with.

meta_ads_list_product_feeds

Scheduled product feeds of a catalog.

meta_ads_share_pixel_with_account

Share this pixel with another ad account in the business.

meta_ads_update_pixel

Update a pixel (rename, data use setting).

meta_ads_update_product_feed

Update a product feed (name, schedule).

meta_ads_browse_targeting

Browse the targeting category tree (demographics/interests/behaviors hierarchy).

meta_ads_create_ad_rule

Create an automated rule (pause/notify/adjust budget when conditions hit).

meta_ads_delete_ad_creative

Delete an ad creative (must not be in use by an active ad).

meta_ads_delete_ad_image

Delete an image from the library by hash.

meta_ads_delete_ad_rule

Delete an automated rule.

meta_ads_delete_video

Delete a video.

meta_ads_execute_ad_rule

Run a rule immediately (instead of waiting for its schedule).

meta_ads_get_ad_rule

Read an automated rule by id.

meta_ads_get_creative_previews

Generate preview iframes for a creative.

meta_ads_get_reach_estimate

Quick audience-size bounds for a targeting spec.

meta_ads_get_targeting_suggestions

Suggest related targeting options from a seed list.

meta_ads_get_video

Read a video node (processing status, thumbnails).

meta_ads_list_ad_rule_history

Past executions of a rule and what they changed.

meta_ads_list_ad_rules

Automated rules in the account.

meta_ads_list_ad_videos

Videos in the account's media library.

meta_ads_list_adrules_governed

Rules governing one campaign/ad set/ad.

meta_ads_list_creatives_by_labels

Creatives carrying the given ad labels.

meta_ads_list_video_thumbnails

Thumbnails of a video.

meta_ads_preview_targeting_sentence_lines

Human-readable description of an arbitrary targeting spec (before saving it).

meta_ads_search_account_targeting

Account-context targeting search.

meta_ads_update_ad_creative

Update a creative's mutable fields.

meta_ads_update_ad_rule

Update an automated rule.

meta_ads_upload_ad_video

Upload a video from a URL.

meta_ads_create_ad_label

Create an ad label.

meta_ads_create_async_ad_creative

Create an ad creative asynchronously.

meta_ads_create_async_ad_request_set

Create many ads asynchronously in one batch.

meta_ads_create_async_batch_request

Run a batch of ad-object writes asynchronously.

meta_ads_create_leadgen_form

Create a lead form on a Page.

meta_ads_delete_ad_label

Delete an ad label.

meta_ads_delete_lead

Delete one lead (e.g.

meta_ads_get_async_ad_request_set

Status of one async ad-creation batch.

meta_ads_get_lead

Read one lead by id.

meta_ads_get_leadgen_form

Read a lead form node by id.

meta_ads_get_page

Read a Page node by id.

meta_ads_get_page_backed_instagram_accounts

Page-backed Instagram account (used when no real IG account is connected).

meta_ads_list_ad_labels

Ad labels in the account (organize campaigns/ad sets/ads/creatives).

meta_ads_list_ads_by_labels

Ads carrying the given labels.

meta_ads_list_adsets_by_labels

Ad sets carrying the given labels.

meta_ads_list_async_ad_request_sets

Async ad-creation batches on the account.

meta_ads_list_async_ad_requests

Individual requests inside an async batch (per-ad status + errors).

meta_ads_list_async_requests

Status of the account's async requests.

meta_ads_list_campaigns_by_labels

Campaigns carrying the given labels.

meta_ads_list_my_pages

Pages the token can act on.

meta_ads_list_page_ads_posts

Ad posts of a Page (posts created for/by ads).

meta_ads_list_page_posts

Posts on a Page.

meta_ads_list_page_subscribed_apps

Apps subscribed to this Page's webhooks (e.g.

meta_ads_subscribe_page_app

Subscribe the app to Page webhook fields.

meta_ads_update_ad_label

Rename an ad label.

meta_ads_update_leadgen_form

Update a lead form's status.

meta_ads_create_ad_study

Create an A/B (split) test or conversion-lift study.

meta_ads_create_custom_conversion

Create a custom conversion from pixel events + URL/parameter rules.

meta_ads_delete_ad_study

Delete an ad study.

meta_ads_delete_custom_conversion

Delete a custom conversion.

meta_ads_get_ad_study

Read an ad study by id.

meta_ads_get_custom_conversion

Read a custom conversion node by id.

meta_ads_get_custom_conversion_stats

Fire statistics for a custom conversion.

meta_ads_list_ad_studies

A/B tests + lift studies in a business.

meta_ads_list_ad_study_cells

Cells (test arms) of an ad study.

meta_ads_list_custom_conversions

List custom conversions on the connected account.

meta_ads_update_ad_study

Update an ad study.

meta_ads_update_custom_conversion

Update a custom conversion (name, default value, description).

meta_ads_create_publisher_block_list

Create a publisher block list (add URLs via its append edge).

meta_ads_create_reach_frequency_prediction

Create a reach & frequency prediction (quote), or reserve/cancel an existing one.

meta_ads_get_instagram_user

Read an Instagram user node.

meta_ads_get_reach_frequency_prediction

Read a reach & frequency prediction by id.

meta_ads_list_ig_authorized_ad_accounts

Ad accounts authorized to advertise with this Instagram account.

meta_ads_list_instagram_media

Media on an Instagram account.

meta_ads_list_publisher_block_lists

Publisher block lists on the account (Audience Network / in-stream exclusions).

meta_ads_list_reach_frequency_predictions

Reach & frequency predictions on the account (reserved-buying campaigns).

meta_ads_set_brand_safety_filter

Set the account's inventory filter level (brand safety).

meta_ads_batch_request

Run up to 50 Graph API calls in one round trip.

meta_ads_search_ads_archive

Search the public Ad Library (competitors' running ads).

Connect Meta Ads to your AI

Credentials off one Meta Ads screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste a System User access token generated in your own Business portfolio, plus an App Secret if you want to supply one. Then pick which ad accounts the connection covers and which workspace each one belongs in.

System User access token••••••••••••3f7a
App Secret (optional)••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Which campaigns spent over $500 last week and what did each cost per result

    • get_ad_account
    • list_campaigns
    • get_campaign_insights
  • Pause every ad set in the Q4 Prospecting campaign with cost per result over $40

    • list_adsets
    • get_adset_insights
    • update_adset
  • Create a 1% lookalike from our existing customer list audience and target a new ad set at it

    • list_custom_audiences
    • create_custom_audience
    • create_adset
  • How many leads did each lead form bring in and what did those ads cost us

    • list_form_leads
    • list_ads
    • get_ad_insights

Use Meta Ads from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Meta Ads MCP server questions

What teams ask before putting Meta Ads behind an AI client.

What do I need to paste in to connect a Meta Ads account?

Two fields, one of them optional. Paste a System User access token generated in your own Business portfolio, and an App Secret if you want to supply one — the connect form marks that second field optional. Once the token is accepted you choose which ad accounts the connection covers and which workspace each one belongs in.

How many operations does this expose, and do they all load into my AI client at once?

224 operations across 25 API modules, split 142 read and 82 write. Only 41 load by default so your client's tool list stays workable; the rest are searchable and get pulled in when a request actually needs them. There are also 22 triggers PopMCP can watch on the account.

Can the agent change live campaigns, or only read them?

Both, depending on the access mode you pick. Full access covers create_campaign, create_adset, create_ad_creative and create_ad, plus update_campaign, update_adset and update_ad for renames, pause and resume, budget and bid strategy changes, targeting edits and creative swaps. Before anything goes live it can check ids with validate_targeting and size the audience with get_delivery_estimate. Read-only drops all of that and leaves reporting.

My insights query is too big and times out. What then?

That is what the async report path is for. create_insights_report starts a run, get_insights_report_status polls it, and get_insights_report_results fetches the rows once it finishes — which is how long date ranges and heavy breakdowns get through. Smaller pulls resolve synchronously with get_account_insights, get_campaign_insights, get_adset_insights or get_ad_insights.

Can it pick up lead ad submissions in real time?

Yes. New lead is a webhook trigger that fires the moment someone submits a lead form on a Facebook or Instagram ad, and Lead recorded on a form and Lead form added are change-detection triggers on the same surface. For history rather than live events, list_ad_leads returns the leads from one lead ad and list_form_leads returns everything submitted to a form across every ad using it.

Does this go beyond campaigns — pixels, catalogs, product feeds?

Yes. list_pixels reads the datasets on the account and send_pixel_events posts server-side web, offline and in-store, and CRM events through the Conversions API. Catalogs and Feeds are two of the larger modules here, and there are triggers for a catalog picking up a new diagnostic warning and for a scheduled product feed upload coming back with errors.

Do I have to run or host the Meta Ads MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 41 of the 224 tools load by default?

Loading 224 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 41-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 224 here. A trigger is something PopMCP watches for you: 22 Meta Ads events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Meta Ads.

Connect Meta Ads to your AI in minutes

Launch a hosted MCP endpoint for Meta Ads, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP