@mikusnuz/meta-ads-mcp

MCPcommunity
v1.5.0mikusnuzMITUpdated 5d agonpmGitHub

MCP server for Meta Marketing API v26.0 — 134 tools for Facebook & Instagram ad campaign management

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
859Downloads/wk
84GitHub stars
21Forks
5d agoLast update
Needs 1 credential before it runs
  • META_ADS_ACCESS_TOKENAPI keyrequired

    Meta Marketing API access token

  • META_APP_SECRETAPI keyoptional

    Meta App Secret

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
Authormikusnuz
LicenseMIT
Version1.5.0
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/20
→ Publisher: run `forge publish` from the package repo to claim ownership
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
—npm Trusted Publishing (Sigstore)+0/5
→ Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
—npm maintainer match+0/5
→ Earned once your identity is verified above and that login is an npm maintainer of this package
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · 4 privileged
Security scan✓ Cleanv1.5.0 · todayHow well does this scan work?
EvalsNone
IndexedOct 11, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · 4 privileged
Statically extracted from the published packagev1.5.0 · 7h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

get_ad_accountGet details of the configured ad account including status, balance, currency, timezone, and spend info.

Get details of the configured ad account including status, balance, currency, timezone, and spend info.

No input schema was published for this tool.

list_ad_accountsList all ad accounts accessible by the current user. Returns paginated results.

List all ad accounts accessible by the current user. Returns paginated results.

No input schema was published for this tool.

update_ad_accountUpdate the configured ad account settings. Only provided fields will be modified.

Update the configured ad account settings. Only provided fields will be modified.

No input schema was published for this tool.

get_account_activitiesGet activity log for the ad account. Shows changes made to campaigns, ad sets, ads, etc.

Get activity log for the ad account. Shows changes made to campaigns, ad sets, ads, etc.

No input schema was published for this tool.

list_account_usersList users who have access to the ad account with their roles and permissions.

List users who have access to the ad account with their roles and permissions.

No input schema was published for this tool.

search_ad_librarySearch the Meta Ad Library for ads. Allows searching by keywords, countries, and ad type. Useful for competitive research and transparency.

Search the Meta Ad Library for ads. Allows searching by keywords, countries, and ad type. Useful for competitive research and transparency.

No input schema was published for this tool.

list_adsList ads in the ad account. Optionally filter by campaign, ad set, or status.

List ads in the ad account. Optionally filter by campaign, ad set, or status.

No input schema was published for this tool.

get_adGet details of a specific ad by ID.

Get details of a specific ad by ID.

No input schema was published for this tool.

create_adCreate a new ad. Requires name, adset_id, and creative (JSON object_story_spec). Defaults to PAUSED status.

Create a new ad. Requires name, adset_id, and creative (JSON object_story_spec). Defaults to PAUSED status.

No input schema was published for this tool.

update_adUpdate an existing ad. Only provided fields will be modified.

Update an existing ad. Only provided fields will be modified.

No input schema was published for this tool.

delete_adprivilegedDelete an ad. This action is irreversible.

Delete an ad. This action is irreversible.

No input schema was published for this tool.

copy_adCopy an existing ad. Creates a duplicate within the same or different ad set.

Copy an existing ad. Creates a duplicate within the same or different ad set.

No input schema was published for this tool.

get_ad_previewGet a preview of an ad in a specific format. Returns HTML iframe for rendering.

Get a preview of an ad in a specific format. Returns HTML iframe for rendering.

No input schema was published for this tool.

get_delivery_estimateGet delivery estimate for an ad set, including estimated daily reach. Note: the delivery_estimate edge exists on the ad set (and ad account) node, not on individual ads. Also note: as of v26.0, the daily_outcomes_curve, budget_guardrail, and estimate_dau fields are no longer returned (removed with…

Get delivery estimate for an ad set, including estimated daily reach. Note: the delivery_estimate edge exists on the ad set (and ad account) node, not on individual ads. Also note: as of v26.0, the daily_outcomes_curve, budget_guardrail, and estimate_dau fields are no longer returned (removed with…

No input schema was published for this tool.

list_adsetsList ad sets in the ad account. Optionally filter by campaign or status.

List ad sets in the ad account. Optionally filter by campaign or status.

No input schema was published for this tool.

get_adsetGet details of a specific ad set by ID.

Get details of a specific ad set by ID.

No input schema was published for this tool.

create_adsetCreate a new ad set. Requires name, campaign_id, budget, optimization_goal, billing_event, and targeting. Defaults to PAUSED status.

Create a new ad set. Requires name, campaign_id, budget, optimization_goal, billing_event, and targeting. Defaults to PAUSED status.

No input schema was published for this tool.

update_adsetUpdate an existing ad set. Only provided fields will be modified.

Update an existing ad set. Only provided fields will be modified.

No input schema was published for this tool.

delete_adsetprivilegedDelete an ad set. This action is irreversible.

Delete an ad set. This action is irreversible.

No input schema was published for this tool.

copy_adsetCopy an existing ad set. Creates a duplicate within the same or different campaign.

Copy an existing ad set. Creates a duplicate within the same or different campaign.

No input schema was published for this tool.

get_adset_targeting_sentenceGet human-readable targeting description for an ad set. Converts targeting spec into readable sentences.

Get human-readable targeting description for an ad set. Converts targeting spec into readable sentences.

No input schema was published for this tool.

get_adset_adsGet all ads belonging to a specific ad set.

Get all ads belonging to a specific ad set.

No input schema was published for this tool.

get_adset_leadsGet leads generated by a specific ad set. Requires leads_retrieval permission.

Get leads generated by a specific ad set. Requires leads_retrieval permission.

No input schema was published for this tool.

list_custom_audiencesList custom audiences in the ad account.

List custom audiences in the ad account.

No input schema was published for this tool.

get_audienceGet details of a specific custom audience by ID.

Get details of a specific custom audience by ID.

No input schema was published for this tool.

create_custom_audienceCreate a new custom audience. Subtype determines the audience source (CUSTOM, WEBSITE, APP, OFFLINE_CONVERSION, LOOKALIKE, ENGAGEMENT, etc.).

Create a new custom audience. Subtype determines the audience source (CUSTOM, WEBSITE, APP, OFFLINE_CONVERSION, LOOKALIKE, ENGAGEMENT, etc.).

No input schema was published for this tool.

update_audienceUpdate an existing custom audience. Only provided fields will be modified.

Update an existing custom audience. Only provided fields will be modified.

No input schema was published for this tool.

delete_audienceprivilegedDelete a custom audience. This action is irreversible.

Delete a custom audience. This action is irreversible.

No input schema was published for this tool.

add_users_to_audienceAdd users to a custom audience. Payload must be a JSON string containing hashed user data with a schema array defining the data types (e.g. EMAIL, PHONE, FN, LN).

Add users to a custom audience. Payload must be a JSON string containing hashed user data with a schema array defining the data types (e.g. EMAIL, PHONE, FN, LN).

No input schema was published for this tool.

remove_users_from_audienceprivilegedRemove users from a custom audience. Payload format is the same as add_users_to_audience.

Remove users from a custom audience. Payload format is the same as add_users_to_audience.

No input schema was published for this tool.

create_lookalike_audienceCreate a lookalike audience based on an existing custom audience. Ratio (1-10) determines how closely the new audience resembles the source.

Create a lookalike audience based on an existing custom audience. Ratio (1-10) determines how closely the new audience resembles the source.

No input schema was published for this tool.

get_audience_healthGet health status and delivery readiness of a custom audience. Shows match rate, size, and operation status.

Get health status and delivery readiness of a custom audience. Shows match rate, size, and operation status.

No input schema was published for this tool.

list_saved_audiencesList saved audiences in the ad account. Saved audiences are reusable targeting presets.

List saved audiences in the ad account. Saved audiences are reusable targeting presets.

No input schema was published for this tool.

get_saved_audienceGet details of a specific saved audience by ID.

Get details of a specific saved audience by ID.

No input schema was published for this tool.

exchange_tokenExchange a short-lived access token for a long-lived token. Requires META_APP_ID and META_APP_SECRET to be configured.

Exchange a short-lived access token for a long-lived token. Requires META_APP_ID and META_APP_SECRET to be configured.

No input schema was published for this tool.

refresh_tokenExtend a valid long-lived user access token through Meta's documented token exchange flow. Requires META_APP_ID and META_APP_SECRET.

Extend a valid long-lived user access token through Meta's documented token exchange flow. Requires META_APP_ID and META_APP_SECRET.

No input schema was published for this tool.

debug_tokenDebug an access token to inspect its properties, permissions, expiration, and validity. Requires META_APP_ID and META_APP_SECRET.

Debug an access token to inspect its properties, permissions, expiration, and validity. Requires META_APP_ID and META_APP_SECRET.

No input schema was published for this tool.

list_block_listsList publisher block lists for the ad account. Returns paginated results.

List publisher block lists for the ad account. Returns paginated results.

No input schema was published for this tool.

create_block_listCreate a new publisher block list for the ad account.

Create a new publisher block list for the ad account.

No input schema was published for this tool.

add_to_block_listAdd publisher URLs to an existing block list.

Add publisher URLs to an existing block list.

No input schema was published for this tool.

40 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

MCP server for Meta Marketing API v26.0 — 134 tools for Facebook & Instagram ad campaign management

Keywords
mcpmetafacebookinstagramadsmarketingadvertisingcampaign
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-13 — observed resolution, not a publisher declaration.

60 packages resolved · 2 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

55 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+43 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.