Skip to content
Get MCP AdsGet MCP Ads, home

MCP server

Meta Ads MCP Server

Facebook and Instagram delivery, creatives, audiences, lift studies, catalogue joins.
https://mcp.getmcpads.com/meta-ads/mcp
Start free

This endpoint serves Meta Ads on its own. One shared URL reaches every platform you connect.

59
Tools
23
That write
190
Metrics
143
Dimensions

Ask it

What you can ask it.

Real questions, with the tools each one resolves to. Every tool named below is in the catalogue on this page.

6 questions

One exchange

You type the sentence into your assistant. Meta Ads answers through the tools named here, and nothing else is called.

Every question, every platform

Claude

“Why has this Meta ad set stopped spending its budget?”

Resolves to3 tools
  • meta_get_delivery_diagnostics
  • meta_get_adsets
  • meta_get_insights

Reads Meta's own delivery diagnostics for the ad set, then the audience size, the schedule and the recent insights, and names the constraint rather than guessing at it.

5 more

Did our brand lift study actually prove anything?

Pulls the study, its results and the confidence intervals, then reads them back in plain language, including when the answer is that the test was underpowered.

meta_get_ad_studiesmeta_get_study_resultsmeta_interpret_experiment_results

Spend, CPA and ROAS by campaign across all four platforms, last 7 days against the 7 before.

One request, four APIs. Each platform's insights tool plans its own query, then the assistant lines the rows up in a single table.

meta_get_insightsgoogle_ads_get_insightstiktok_get_insightspinterest_run_report

Which Meta creatives carried last week, and which ones should we retire?

Reads ad-level insights against the creative behind each ad, so the table names the asset and the hook rather than an ad ID.

meta_get_creativesmeta_get_insightsmeta_get_ads

Which catalogue products are our Meta ads actually selling?

Joins product-level insights to the catalogue, so the report names the product, its brand and its custom labels instead of returning item IDs.

meta_join_product_insightsmeta_get_catalog_productsmeta_get_insights

Pause every Meta ad set above $60 CPA over the last 14 days.

Reads the insights first, then returns the exact list of ad sets it would pause and stops. It only applies the change when you confirm.

meta_get_insightsmeta_get_adsetsmeta_update_adset_status

The ledger

Every Meta Ads tool, as the gateway ships it.

Each description is the one the tool reports to your assistant during discovery, which is what it reads before deciding to call it.

23 write

What it can change: Pause or resume a campaign, ad set or single ad. Rename any of the three. Change an ad set or campaign budget, and an ad set schedule. Create a campaign, always paused. Every write previews first.

59 tools

  • meta_batch_catalog_itemswrite

    Create or update up to 50 catalog products by retailer_id. Returns asynchronous batch handles; acceptance is not completion. No deletion or automatic upsert. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_adwrite

    Create a PAUSED ad using an existing ad set and creative from the selected account. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_adcreativewrite

    Create an ad creative from an existing post or an explicit object_story_spec and optional asset_feed_spec. Supports image, video, carousel, collection and flexible specs. Does not launch an ad. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_adsetwrite

    Create a PAUSED Meta ad set with explicit targeting, optimization, placements, attribution, bidding and schedule. Amounts use major account-currency units. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_campaignwrite

    Create a PAUSED Meta campaign with either ad set budgets (omit campaign budget), a daily campaign budget, or a lifetime campaign budget. Supports native validate_only. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_custom_audiencewrite

    Create a website, engagement, customer-list container or lookalike audience. Does not upload customer data. Terms and eligibility are enforced by Meta. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_create_product_setwrite

    Create a filtered product set in a catalog owned by the same Business as the selected ad account. Never publishes to Shops. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_debug_token

    Inspect token identity, validity, expiry and scopes using server app credentials. If privileged inspection is unavailable, independently check the connecting user and granted permissions; token/app metadata remains unknown.

  • meta_duplicate_adsetwrite

    Duplicate a known-good ad set within the selected account, preserving complex native configuration. Always PAUSED and WITHOUT copying ads. Rename it afterwards with meta_rename_adset. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_get_account_details

    Get detailed information for a specific Meta ad account: name, currency, timezone, spend cap, status, business info.

  • meta_get_ad_activity

    Read ad account activity logs from /{ad_account_id}/activities with object, event, actor, timestamp, and extra_data fields.

  • meta_get_ad_studies

    List conversion lift studies and A/B tests (Ad Studies) for an ad account. Includes study type, status, and cells.

  • meta_get_ads

    List ads for a Meta ad account, optionally filtered by ad set. Returns ad ID, name, status, and creative reference.

  • meta_get_adset_configuration

    Read an existing ad set, its parent campaign budget/objective and account currency before preparing an edit. Returns native settings; no mutation.

  • meta_get_adsets

    List ad sets for a Meta ad account, optionally filtered by campaign. Returns targeting, budget, optimization, and schedule info.

  • meta_get_audience_details

    Read detailed custom, saved, and lookalike audiences with pagination and rich fields where permissions allow.

  • meta_get_audiences

    List custom, saved, and lookalike audiences for a Meta ad account.

  • meta_get_brand_safety_controls

    Read brand safety, suitability, placement, and context-control signals from ad account/ad set targeting and optional block-list edges.

  • meta_get_business_assets

    Discover accessible Meta Business assets read-only: businesses, pages, Instagram accounts, pixels, and datasets when permissions allow.

  • meta_get_campaign_structure

    Get hierarchical campaign structure: campaigns -> ad sets -> ads. Useful for understanding account organization.

  • meta_get_campaigns

    List campaigns for a Meta ad account. Returns campaign ID, name, status, objective, budget, and bid strategy.

  • meta_get_catalog_batch_status

    Read the completion and per-item errors for a catalog batch handle. Acceptance of a batch is not proof that every product succeeded.

  • meta_get_catalog_products

    Read Product Catalogs and Product Items when catalog access is available. Returns join-ready product metadata without creating or updating catalog assets.

  • meta_get_creative_assets

    Return ad-linked creative media with actual ad names, collection covers, all carousel/flexible components, resolved image hashes and video URLs. Catalog-only ads are classified separately; use get_creative_gallery for a visual gallery. Raw creative metadata remains available for diagnostics.

  • meta_get_creatives

    Get ad creative content: text, images, videos, links, call-to-action. Returns creative details for specified ads.

  • meta_get_delivery_diagnostics

    Aggregate read-only delivery diagnostics across campaigns, ad sets, and ads using status/effective_status/issues_info where available plus simple delivery insights.

  • meta_get_insights

    Meta performance. For purchases, leads or conversion analysis request actions (and action_values for revenue), or explicit metrics such as purchases/omni_purchases/leads. The native conversions field is not a universal conversion total; its absence does not mean purchases or leads are unavailable. Label the exact action_type and never sum overlapping purchase types. Fields: meta://metrics, meta://dimensions, meta://breakdowns. Compatible query results are merged.

  • meta_get_instagram_accounts

    List Instagram accounts linked to accessible Pages, Business Manager assets, or an ad account when permissions allow.

  • meta_get_organic_content_enrichment

    Read Facebook Page posts and Instagram media with URLs, native periods and optional insights. These are content insights, not Ads Insights; do not infer an organic-only breakdown.

  • meta_get_page_posts

    Read published Facebook Page posts using a Page token resolved from the connected user. Returns exact PageID_PostID, message, permalink and media attachments. Use postId for an exact existing-post ad preflight. No Instagram media, comments, likes or insights are requested; this read alone does not establish advertising eligibility.

  • meta_get_pages

    List accessible Facebook Pages with id, name, category, tasks, picture, and linked Instagram account references when available.

  • meta_get_pixels

    List pixels and datasets from an ad account or Business Manager when accessible, returning actionable warnings for permission-limited edges.

  • meta_get_study_results

    Get detailed results for a conversion lift or A/B test study. Returns objectives, cells, and lift results.

  • meta_get_uploaded_video

    Check video processing and membership in the selected account library. If the first page misses the ID, use the video title to narrow the account-scoped lookup. A direct video read alone never proves membership or readiness. Bounded pagination; not_found is not success.

  • meta_get_video_sources

    Resolve fresh download URLs (source) and thumbnails for specific ad videos. Call this at download time: the returned URLs are signed and expire quickly.

  • meta_health_check

    Read-only connection diagnostic: inspects token identity and granted permissions, and lists accessible selected ad accounts. Unavailable checks remain unknown; granted scopes do not prove app access level or clearance of Meta security checkpoints.

  • meta_inspect_launcher_entity

    Read a specific acknowledged Launcher entity in its ad account for reconciliation. Read-only; never creates, changes or retries the entity. Missing or normalized fields must be inspected before claiming an exact match.

  • meta_interpret_experiment_results

    Read and interpret A/B test or conversion lift study results with confidence guardrails, cells, objectives, and optional cell entities.

  • meta_join_product_insights

    Query product-breakdown insights and enrich rows with Product Catalog metadata when catalog access is available.

  • meta_list_ad_accounts

    List all Meta ad accounts accessible with the current token. Returns account ID, name, currency, timezone, and status.

  • meta_list_ad_images

    List the ad account image library (/adimages): hash, name, dimensions, status, a permanent publicly served display URL (permalink_url), short-lived CDN URLs, and optionally the creatives using each image.

  • meta_list_ad_videos

    List the ad account video library (/advideos): title, duration, processing status, and publicly served thumbnails (preferred and largest sizes). Source file URLs are returned only on request because they expire quickly.

  • meta_rename_adwrite

    Rename a Meta ad. The name is the only thing that changes. Previews by default.

  • meta_rename_adsetwrite

    Rename a Meta ad set. The name is the only thing that changes. Previews by default.

  • meta_rename_campaignwrite

    Rename a Meta campaign. The name is the only thing that changes. Previews by default.

  • meta_search_entities

    Search campaigns, ad sets, or ads by name within an ad account. Useful for finding specific entities.

  • meta_update_ad_creativewrite

    Replace an ad’s creative with another existing creative from the same account. The ad status is unchanged. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_ad_statuswrite

    Pause or reactivate a Meta ad. Previews by default: without confirm: true, the tool describes the change without applying it.

  • meta_update_adset_budgetwrite

    Change an ad set daily or lifetime budget after checking its parent budget and existing schedule. Status stays unchanged. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_adset_configurationwrite

    Update targeting, optimization, placements, attribution, bidding, budget or schedule. Targeting is a COMPLETE replacement, not a partial merge. Status is unchanged. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_adset_schedulewrite

    Change start and/or end time using ISO 8601 with an explicit offset. Check the resulting range against existing dates before any mutation. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_adset_statuswrite

    Pause or reactivate a Meta ad set. Previews by default: without confirm: true, the tool describes the change without applying it.

  • meta_update_campaign_budgetwrite

    Change an existing campaign-owned budget after verifying currency and ownership. Does not convert an ad-set-budget campaign or change status. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_campaign_statuswrite

    Pause or reactivate a Meta campaign. Previews by default: without confirm: true, the tool describes the change without applying it.

  • meta_update_custom_audiencewrite

    Update an existing custom audience name, description, retention or complete rule. Does not change audience membership directly. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_update_product_setwrite

    Replace a product set filter or rename it. Catalog ownership and set membership are checked before writing. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_upload_ad_imagewrite

    Upload an image into the selected ad account using base64 bytes (up to 5 MiB decoded). Preview reports size only, never the file body. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_upload_ad_videowrite

    Import a video from a publicly reachable HTTPS URL or base64 MP4 bytes (up to 5 MiB decoded). Meta processes it asynchronously. No campaign is launched. Local preview by default. No automatic retry. Account ownership is checked before Meta validation or mutation.

  • meta_validate_query

    Validate a metric/breakdown combination BEFORE executing. Returns errors and warnings. Use this to check if your query will work.

Catalogues

What you can measure, and how you can cut it.

The full catalogues live in the reference, where every entry carries the API field it maps to and the constraints that come with it. Here is their shape.

Metrics

190

Conversion
87
Video
32
Cost
27
Delivery
27
Engagement
17

All 190 metrics

Dimensions

143

Creative
28
Adset
26
Campaign
18
Action
14
Ad
12
Product
10
Skan
7
Account
6
Time
5
Label
4
Platform
4
Attribution
3
Geographic
3
Demographic
2
Audience
1

All 143 dimensions

Open source

Or run Meta Ads yourself.

This server is published under Apache 2.0. Read every line, fork it, or run it on your own machine with your own credentials. Nothing is proxied through us.
npx -y @getmcpads/meta-ads-mcp-server
MCP Registry
com.getmcpads/meta-ads
Licence
Apache 2.0