MCP server
Meta Ads MCP Server
https://mcp.getmcpads.com/meta-ads/mcpThis 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.
6 questions
One exchange
You type the sentence into your assistant. Meta Ads answers through the tools named here, and nothing else is called.
“Why has this Meta ad set stopped spending its budget?”
- 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_resultsSpend, 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_reportWhich 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_adsWhich 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_insightsPause 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_statusPlaybooks
The work it does every week.
- Audit an ad accountSpend, delivery and recent changes, read in one turn instead of four exports.
- One table, every platformFour ad platforms and two analytics sources, lined up in one answer.
- Move budget safelyBudget changes that preview first and need a second, explicit call.
- Spot creative fatigueFrequency, CTR decay and the refresh recipes TikTok's own diagnostics imply.
The ledger
Every Meta Ads tool, as the gateway ships 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_itemswriteCreate 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_adwriteCreate 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_adcreativewriteCreate 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_adsetwriteCreate 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_campaignwriteCreate 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_audiencewriteCreate 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_setwriteCreate 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_tokenInspect 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_adsetwriteDuplicate 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_detailsGet detailed information for a specific Meta ad account: name, currency, timezone, spend cap, status, business info.
meta_get_ad_activityRead ad account activity logs from /{ad_account_id}/activities with object, event, actor, timestamp, and extra_data fields.
meta_get_ad_studiesList conversion lift studies and A/B tests (Ad Studies) for an ad account. Includes study type, status, and cells.
meta_get_adsList ads for a Meta ad account, optionally filtered by ad set. Returns ad ID, name, status, and creative reference.
meta_get_adset_configurationRead an existing ad set, its parent campaign budget/objective and account currency before preparing an edit. Returns native settings; no mutation.
meta_get_adsetsList ad sets for a Meta ad account, optionally filtered by campaign. Returns targeting, budget, optimization, and schedule info.
meta_get_audience_detailsRead detailed custom, saved, and lookalike audiences with pagination and rich fields where permissions allow.
meta_get_audiencesList custom, saved, and lookalike audiences for a Meta ad account.
meta_get_brand_safety_controlsRead brand safety, suitability, placement, and context-control signals from ad account/ad set targeting and optional block-list edges.
meta_get_business_assetsDiscover accessible Meta Business assets read-only: businesses, pages, Instagram accounts, pixels, and datasets when permissions allow.
meta_get_campaign_structureGet hierarchical campaign structure: campaigns -> ad sets -> ads. Useful for understanding account organization.
meta_get_campaignsList campaigns for a Meta ad account. Returns campaign ID, name, status, objective, budget, and bid strategy.
meta_get_catalog_batch_statusRead 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_productsRead Product Catalogs and Product Items when catalog access is available. Returns join-ready product metadata without creating or updating catalog assets.
meta_get_creative_assetsReturn 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_creativesGet ad creative content: text, images, videos, links, call-to-action. Returns creative details for specified ads.
meta_get_delivery_diagnosticsAggregate read-only delivery diagnostics across campaigns, ad sets, and ads using status/effective_status/issues_info where available plus simple delivery insights.
meta_get_insightsMeta 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_accountsList Instagram accounts linked to accessible Pages, Business Manager assets, or an ad account when permissions allow.
meta_get_organic_content_enrichmentRead 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_postsRead 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_pagesList accessible Facebook Pages with id, name, category, tasks, picture, and linked Instagram account references when available.
meta_get_pixelsList pixels and datasets from an ad account or Business Manager when accessible, returning actionable warnings for permission-limited edges.
meta_get_study_resultsGet detailed results for a conversion lift or A/B test study. Returns objectives, cells, and lift results.
meta_get_uploaded_videoCheck 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_sourcesResolve 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_checkRead-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_entityRead 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_resultsRead and interpret A/B test or conversion lift study results with confidence guardrails, cells, objectives, and optional cell entities.
meta_join_product_insightsQuery product-breakdown insights and enrich rows with Product Catalog metadata when catalog access is available.
meta_list_ad_accountsList all Meta ad accounts accessible with the current token. Returns account ID, name, currency, timezone, and status.
meta_list_ad_imagesList 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_videosList 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_adwriteRename a Meta ad. The name is the only thing that changes. Previews by default.
meta_rename_adsetwriteRename a Meta ad set. The name is the only thing that changes. Previews by default.
meta_rename_campaignwriteRename a Meta campaign. The name is the only thing that changes. Previews by default.
meta_search_entitiesSearch campaigns, ad sets, or ads by name within an ad account. Useful for finding specific entities.
meta_update_ad_creativewriteReplace 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_statuswritePause or reactivate a Meta ad. Previews by default: without confirm: true, the tool describes the change without applying it.
meta_update_adset_budgetwriteChange 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_configurationwriteUpdate 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_schedulewriteChange 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_statuswritePause or reactivate a Meta ad set. Previews by default: without confirm: true, the tool describes the change without applying it.
meta_update_campaign_budgetwriteChange 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_statuswritePause or reactivate a Meta campaign. Previews by default: without confirm: true, the tool describes the change without applying it.
meta_update_custom_audiencewriteUpdate 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_setwriteReplace 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_imagewriteUpload 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_videowriteImport 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_queryValidate 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.
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
Open source
Or run Meta Ads yourself.
npx -y @getmcpads/meta-ads-mcp-server- Smithery
- Meta Ads on Smithery
- MCP Registry
- com.getmcpads/meta-ads
- Licence
- Apache 2.0
Reference