# @getmcpads/meta-ads-mcp-server

Open-source MCP server for the Meta (Facebook & Instagram) Ads Marketing API. 34 read tools and 10 write tools that preview before they apply, 190 metrics, 56 breakdowns. Self-hosted, bring your own token.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.0.2
- **Author:** GetMCPAds
- **License:** Apache-2.0
- **npm:** @getmcpads/meta-ads-mcp-server
- **Source:** https://github.com/getmcpads-com/meta-ads-mcp-server
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 2 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-08-31T13:40:53.875Z
- **Version scanned:** 1.0.2
- **CVEs:** none found by OSV at scan time

## Tools

38 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `meta_get_node_fields` — Read arbitrary flat fields from one Meta Graph node. This GET-only escape hatch covers newly released campaign, ad set, ad, creative, audience, catalog, Page, I
- `meta_list_edge_raw` — List an allowlisted read-only Meta Graph edge with caller-selected flat fields, filters, and cursor pagination. Use this for broad metadata/entity discovery whe
- `meta_get_insights_raw` — Query the Meta Insights edge with validated native field names, breakdowns, action breakdowns, attribution windows, filters, sort, summary, and pagination. This
- `meta_search_targeting_options` — Search Meta's read-only targeting metadata for interests, validated interests, geographies, locales, countries, cities, regions, markets, or postal codes.
- `meta_get_ad_preview` — Get the read-only preview markup for an existing Meta ad in a requested placement format. The response may contain an iframe body but never creates or edits a c
- `meta_health_check` — Agent-ready read-only health check: validates token metadata, lists accessible ad accounts, and warns about missing read scopes without exposing the access toke
- `meta_get_business_assets` — Discover accessible Meta Business assets read-only: businesses, pages, Instagram accounts, pixels, and datasets when permissions allow.
- `meta_get_pages` — List accessible Facebook Pages with id, name, category, tasks, picture, and linked Instagram account references when available.
- `meta_get_instagram_accounts` — List Instagram accounts linked to accessible Pages, Business Manager assets, or an ad account when permissions allow.
- `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_ad_activity` — Read ad account activity logs from /{ad_account_id}/activities with object, event, actor, timestamp, and extra_data fields.
- `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 insig
- `meta_get_creative_assets` — Return normalized creative asset metadata for ads or creative IDs: thumbnail, object_story_spec, asset_feed_spec, video/image/link URL, CTA, and page/IG referen
- `meta_get_audience_details` — Read detailed custom, saved, and lookalike audiences with pagination and rich fields where permissions allow.
- `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_join_product_insights` — Query product-breakdown insights and enrich rows with Product Catalog metadata when catalog access is available.
- `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_interpret_experiment_results` — Read and interpret A/B test or conversion lift study results with confidence guardrails, cells, objectives, and optional cell entities.
- `meta_get_organic_content_enrichment` — Enrich Facebook Page posts and Instagram organic media with media URLs, permalinks, counts, attachments, and optional read-only insights.
- `meta_list_ad_accounts` — List all Meta ad accounts accessible with the current token. Returns account ID, name, currency, timezone, and status.
- `meta_get_account_details` — Get detailed information for a specific Meta ad account: name, currency, timezone, spend cap, status, business info.
- `meta_get_campaigns` — List campaigns for a Meta ad account. Returns campaign ID, name, status, objective, budget, and bid strategy.
- `meta_get_adsets` — List ad sets for a Meta ad account, optionally filtered by campaign. Returns targeting, budget, optimization, and schedule info.
- `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_insights` — Query Meta Ads performance insights. Supports 170+ metrics, 43+ breakdowns with intelligent query planning. Use meta://metrics resource to see available metrics
- `meta_get_campaign_structure` — Get hierarchical campaign structure: campaigns -> ad sets -> ads. Useful for understanding account organization.
- `meta_get_creatives` — Get ad creative content: text, images, videos, links, call-to-action. Returns creative details for specified ads.
- `meta_get_audiences` — List custom, saved, and lookalike audiences for a Meta ad account.
- `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_study_results` — Get detailed results for a conversion lift or A/B test study. Returns objectives, cells, and lift results.
- `meta_validate_query` — Validate a metric/breakdown combination BEFORE executing. Returns errors and warnings. Use this to check if your query will work.
- `meta_get_page_posts` — Get recent posts from a connected Facebook/Instagram page. Requires page access.
- `meta_debug_token` — Check the current access token validity, expiration, and granted scopes. Useful for diagnosing auth issues.
- `meta_search_entities` — Search campaigns, ad sets, or ads by name within an ad account. Useful for finding specific entities.
- `meta_create_campaign` — Create a Meta campaign. It is always created PAUSED and there is no option to create it active. Previews by default.
- `meta_update_adset_budget` — Change the daily or lifetime budget of a Meta ad set. Amount in the account currency (12.50 for 12.50 EUR). Meta expects minor units, the conversion is done her
- `meta_update_campaign_budget` — Change the budget of a Meta campaign that holds its budget at campaign level (Advantage campaign budget). On a campaign without one, Meta refuses and the ad set
- `meta_update_adset_schedule` — Change the start or end time of a Meta ad set. Times are ISO 8601 with an offset, for example 2026-09-01T00:00:00+0200. Previews by default.

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"meta-ads-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@getmcpads/meta-ads-mcp-server\"\n      ],\n      \"env\": {\n        \"META_ACCESS_TOKEN\": \"<YOUR_META_ACCESS_TOKEN>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `META_ACCESS_TOKEN` — Meta Access Token (required)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (1 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Moderate blast radius — holds an api key; runs on your machine.
- Floor 23, ceiling 23 (tier: moderate)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40getmcpads%2Fmeta-ads-mcp-server
- Install plan: https://forgeregistry.com/api/v1/packages/%40getmcpads%2Fmeta-ads-mcp-server/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40getmcpads%2Fmeta-ads-mcp-server
- HTML page: https://forgeregistry.com/registry/%40getmcpads%2Fmeta-ads-mcp-server
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
