Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.mikusnuz/meta-ads

NPM · @MIKUSNUZ/META-ADS-MCP

MCP server for Meta Marketing API — Facebook & Instagram ad campaign management

−1 this week 78 Trust /100

Last scanned (1 hour ago)

Scores higher than 58% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 13559 tokens (~98/item across 137 items; 134 tools + 3 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 16 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_campaign" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 135 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −1
    • Stability: fail → 0.90 functional
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 95 to 98.

  • 27 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 98 to 92.

  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 20 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 19 Oct 26 −13
    • Malware scan: pass → unverified ▼ security
    • Judged manipulation: unverified → pass ▲ security
    • Package version: 1.5.0 → 1.6.1 functional
  • 17 Oct 26 +2

    No change was recorded against any check on this day. Stability & Change Management went from 82 to 98.

  • 15 Oct 26 −2

    No change was recorded against any check on this day. Stability & Change Management went from 98 to 78.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@mikusnuz/meta-ads-mcp@1.6.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 134 exposed · ~13,506 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_business_user ~53

Add a user to the configured business by email. Requires META_BUSINESS_ID env var.

NameTypeReqDescription
emailstringyesEmail address of the user to add
rolestringyesRole for the new user

No output schema declared.

No examples provided.

add_to_block_list ~56

Add publisher URLs to an existing block list.

NameTypeReqDescription
list_idstringyesBlock list ID
urlsstringyesJSON array of URLs to block (e.g. '["example.com","bad-site.com"]')

No output schema declared.

No examples provided.

add_users_to_audience ~101

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).

NameTypeReqDescription
audience_idstringyesAudience ID
payloadstringyesJSON string: {schema: ['EMAIL','PHONE',...], data: [['hash1','hash2',...], ...]}. All PII must be SHA-256 hashed.

No output schema declared.

No examples provided.

batch_products ~118

Batch create, update, or delete products in a catalog. Supports up to 5,000 items per request. Update operations support upsert.

NameTypeReqDescription
allow_upsertboolean–Allow UPDATE to create items if they don't exist (default false)
catalog_idstringyesProduct catalog ID
requestsstringyesJSON array of batch requests. Each: {method: 'CREATE'|'UPDATE'|'DELETE', retailer_id: string, data?: {name, description, price, url, image_url, availability, ...}}

No output schema declared.

No examples provided.

copy_ad ~86

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

NameTypeReqDescription
ad_idstringyesSource ad ID to copy
adset_idstring–Target ad set ID. If omitted, copies to same ad set
namestring–Name for the copied ad
statusstring–Status for copied ad (default PAUSED)

No output schema declared.

No examples provided.

copy_adset ~105

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

NameTypeReqDescription
adset_idstringyesSource ad set ID to copy
campaign_idstring–Target campaign ID. If omitted, copies to same campaign
deep_copyboolean–Copy ads within the ad set (default true)
namestring–Name for the copied ad set
statusstring–Status for copied ad set (default PAUSED)

No output schema declared.

No examples provided.

copy_campaign ~96

Copy an existing campaign. Creates a duplicate with optional name override. Copies structure including ad sets and ads.

NameTypeReqDescription
campaign_idstringyesSource campaign ID to copy
deep_copyboolean–Copy ad sets and ads within the campaign (default true)
namestring–Name for the copied campaign. Defaults to 'Copy of <original>'
statusstring–Status for copied campaign (default PAUSED)

No output schema declared.

No examples provided.

create_ad ~197

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

NameTypeReqDescription
account_idstring–Ad account ID to create the ad in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
adset_idstringyesParent ad set ID
creativestringyesJSON string of creative spec (object_story_spec with page_id, link_data/photo_data/video_data). Note: as of v26.0, a creative with applink_treatment=web_only can no longer be attached to an ad in a c…
namestringyesAd name
statusstring–Ad status (default PAUSED)
tracking_specsstring–JSON string of tracking specs array

No output schema declared.

No examples provided.

create_adset ~972

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

NameTypeReqDescription
account_idstring–Ad account ID to create the ad set in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
adset_schedulearray–Hourly delivery intervals (Sunday=0). Requires lifetime budgeting. Set timezone_type explicitly; Meta defaults to USER.
attribution_specarray–Attribution windows; Meta validates compatibility with the objective and optimization goal
bid_amountstring–Bid amount in the account currency's minor unit. Required for COST_CAP or LOWEST_COST_WITH_BID_CAP except Reach and Frequency.
bid_strategystring–Bid strategy: LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS
billing_eventstringyesBilling event: APP_INSTALLS, CLICKS, IMPRESSIONS, LINK_CLICKS, NONE, OFFER_CLAIMS, PAGE_LIKES, POST_ENGAGEMENT, THRUPLAY, PURCHASE, LISTING_INTERACTION
campaign_idstringyesParent campaign ID
daily_budgetstring–Daily budget in currency cents (e.g. '5000' = $50.00)
destination_typestring–Conversion destination, e.g. WEBSITE, APP, MESSENGER, INSTAGRAM_DIRECT, WHATSAPP
dsa_beneficiarystring–Beneficiary of EU-targeted ads; may use the account's saved default when omitted
dsa_payorstring–Payer of EU-targeted ads; does not automatically copy dsa_beneficiary. May use the account's saved default.
end_timestring–End time (ISO 8601)
lifetime_budgetstring–Lifetime budget in currency cents
namestringyesAd set name
optimization_goalstringyesOptimization goal: NONE, APP_INSTALLS, AD_RECALL_LIFT, ENGAGED_USERS, EVENT_RESPONSES, IMPRESSIONS, LEAD_GENERATION, QUALITY_LEAD, LINK_CLICKS, OFFSITE_CONVERSIONS, PAGE_LIKES, POST_ENGAGEMENT, QUALI…
pacing_typearray–Pacing settings. When a schedule is supplied, day_parting is required and is added if omitted.
promoted_objectstring–JSON string of the promoted_object spec. Required for many objectives, e.g. OUTCOME_SALES needs {"pixel_id":"...","custom_event_type":"PURCHASE"}, OUTCOME_APP_PROMOTION needs {"application_id":"...",…
start_timestring–Start time (ISO 8601)
statusstring–Ad set status (default PAUSED)
targetingstringyesJSON string of targeting spec (age_min, age_max, genders, geo_locations, interests, etc.). Advantage+ Audience automation and other flags go inside this object too, e.g. targeting_automation: {"advan…
validate_onlyboolean–Validate with Meta without creating or updating the ad set (default false)

No output schema declared.

No examples provided.

create_async_report ~276

Create an async insight report for large data queries. Returns a report_run_id to poll with get_async_report.

NameTypeReqDescription
account_idstring–Ad account ID to query (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
breakdownsstring–Breakdown dimensions: age,gender,country,region,publisher_platform,platform_position,device_platform,comscore_market (replaces dma). Some accounts must opt in in Ads Manager for impression_device, ho…
date_presetstring–Lowercase date preset, for example: today, yesterday, last_7d, last_14d, last_30d, this_month, last_month, this_quarter, last_quarter, this_year, last_year
fieldsstring–Comma-separated insight fields
filteringstring–JSON string for filtering
levelstring–Aggregation level: campaign, adset, ad
time_incrementstring–Time granularity: all_days, 1, 7, monthly
time_rangestring–JSON string {since,until} in YYYY-MM-DD format

No output schema declared.

No examples provided.

create_block_list ~73

Create a new publisher block list for the ad account.

NameTypeReqDescription
account_idstring–Ad account ID to create the block list in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
namestringyesName for the block list

No output schema declared.

No examples provided.

create_budget_schedule ~120

Create a budget schedule on a campaign or ad set.

NameTypeReqDescription
budget_valueintegeryesUnsigned value interpreted according to budget_value_type (ABSOLUTE uses currency minor units)
budget_value_typestringyesHow budget_value is applied
parent_idstringyesCampaign or ad set ID that will own the budget schedule
parent_typestring–Type of parent object
time_endintegeryesSchedule end time as a Unix timestamp
time_startintegeryesSchedule start time as a Unix timestamp

No output schema declared.

No examples provided.

create_campaign ~520

Create a new ad campaign. Defaults to PAUSED status. Requires name and objective. Budget can be set at campaign or ad set level.

NameTypeReqDescription
account_idstring–Ad account ID to create the campaign in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
bid_strategystring–Bid strategy: LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS. Meta defaults new campaigns to LOWEST_COST_WITH_BID_CAP, which requires a bid_amount on every ad…
daily_budgetstring–Daily budget in account currency cents (e.g. '5000' = $50.00)
is_adset_budget_sharing_enabledboolean–Whether ad sets under this campaign can share budget with each other. Required on some newer ad accounts — omitting it can cause campaign creation to fail with 'Must specify True or False in is_adset…
lifetime_budgetstring–Lifetime budget in account currency cents
namestringyesCampaign name
objectivestringyesCampaign objective
special_ad_categoriesstring–JSON array of special ad categories: HOUSING, EMPLOYMENT, FINANCIAL_PRODUCTS_SERVICES, ISSUES_ELECTIONS_POLITICS, NONE. This field is required by Meta on every campaign — pass '[]' or '["NONE"]' if n…
special_ad_category_countrystring–JSON array of ISO 3166-1 alpha-2 country codes, e.g. '["US"]'. Required for ISSUES_ELECTIONS_POLITICS (which also requires authorization to run ads in those countries). For HOUSING, EMPLOYMENT, and F…
spend_capstring–Lifetime spend cap for the campaign, in account currency cents. Once set it cannot be removed, only raised or reset — pass '0' to reset/clear it.
start_timestring–Campaign start time (ISO 8601 format)
statusstring–Campaign status (default PAUSED)
stop_timestring–Campaign stop time (ISO 8601 format)

No output schema declared.

No examples provided.

create_canvas ~87

Create a new Instant Experience (Canvas) on a Facebook Page. Requires page_id and body_elements JSON array defining the canvas layout.

NameTypeReqDescription
body_elementsstringyesJSON array of canvas body elements (buttons, carousels, photos, videos, text, etc.)
namestring–Canvas name
page_idstringyesFacebook Page ID to create the canvas on

No output schema declared.

No examples provided.

create_catalog ~90

Create a new product catalog for the ad account.

NameTypeReqDescription
account_idstring–Ad account ID to create the catalog in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
namestringyesCatalog name
verticalstring–Catalog vertical: commerce, hotels, flights, destinations, home_listings, vehicles

No output schema declared.

No examples provided.

create_creative ~331

Create a new ad creative with object_story_spec. The spec defines the ad content (link, photo, or video) and the associated Facebook Page. Notes for v26.0: poll_spec and the poll type under interactive_components_spec are no longer supported and will be rejected. If the advertiser has a shop, eligible creatives now default to destination_spec.destination_type=WEBSITE_AND_SHOP — set it to WEBSITE_AND_SHOP_OPT_OUT to opt out.

NameTypeReqDescription
account_idstring–Ad account ID to create the creative in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
asset_feed_specstring–JSON string of asset_feed_spec for dynamic creative
degrees_of_freedom_specstring–JSON object for Advantage+ creative controls, including creative_features_spec.image_animation, video_filtering, and video_uncrop
destination_specstring–JSON object controlling the destination; set destination_type=WEBSITE_AND_SHOP_OPT_OUT to opt out of the v26 Shops default
namestringyesCreative name
object_story_specstringyesJSON string of object_story_spec (page_id, link_data/photo_data/video_data). Use the separate wamo_whatsapp_identity_spec parameter for WhatsApp Status ads.
url_tagsstring–URL tags to append to all links
wamo_whatsapp_identity_specstring–JSON object with wamo_whatsapp_identity_id or whatsapp_phone_number for WhatsApp Status ads; sent at the creative's top level

No output schema declared.

No examples provided.

create_custom_audience ~206

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

NameTypeReqDescription
account_idstring–Ad account ID to create the audience in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
customer_file_sourcestring–Source of customer file: USER_PROVIDED_ONLY, PARTNER_PROVIDED_ONLY, BOTH_USER_AND_PARTNER_PROVIDED
descriptionstring–Audience description
namestringyesAudience name
pixel_idstring–Pixel ID for website audiences
retention_daysinteger–Retention period; allowed range depends on the audience source
rulestring–JSON object defining website, video, or engagement audience rules. This creates an audience; validate-only is not supported.
subtypestringyesAudience subtype

No output schema declared.

No examples provided.

create_dynamic_creative ~261

Create a dynamic creative with asset_feed_spec. Meta automatically combines different images, videos, titles, bodies, and CTAs to find the best performing combinations.

NameTypeReqDescription
account_idstring–Ad account ID to create the creative in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
asset_feed_specstringyesJSON string of asset_feed_spec with arrays: images (hash), videos (video_id), bodies (text), titles (text), descriptions (text), call_to_action_types
degrees_of_freedom_specstring–JSON object for Advantage+ creative controls, including creative_features_spec.image_animation, video_filtering, and video_uncrop
destination_specstring–JSON object controlling the destination; set destination_type=WEBSITE_AND_SHOP_OPT_OUT to opt out of the v26 Shops default
namestringyesCreative name
object_story_specstring–JSON object containing the associated page_id and optional instagram_user_id
wamo_whatsapp_identity_specstring–JSON object with wamo_whatsapp_identity_id or whatsapp_phone_number for WhatsApp Status ads; sent at the creative's top level

No output schema declared.

No examples provided.

create_experiment ~141

Create a new A/B test experiment (ad study).

NameTypeReqDescription
account_idstring–Ad account ID to create the experiment in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
cellsstringyesJSON array of test cells: [{name, campaign_id}]
descriptionstring–Experiment description
end_timestringyesEnd time in ISO 8601 or Unix timestamp
namestringyesExperiment name
start_timestringyesStart time in ISO 8601 or Unix timestamp
typestring–Study type

No output schema declared.

No examples provided.

create_feed ~63

Create a new product feed for a catalog.

NameTypeReqDescription
catalog_idstringyesProduct catalog ID
file_urlstring–URL of the feed file
namestringyesFeed name
schedulestring–JSON string for feed schedule configuration

No output schema declared.

No examples provided.

create_lead_form ~171

Create a new lead generation form on a Facebook Page. Requires pages_manage_ads permission.

NameTypeReqDescription
follow_up_action_urlstring–URL to redirect after submission
namestringyesLead form name
page_idstringyesFacebook Page ID
privacy_policy_urlstringyesURL to privacy policy
questionsstringyesJSON array of questions. Each: {key: string, type: 'CUSTOM'|'EMAIL'|'PHONE'|'FULL_NAME'|'CITY'|'STATE'|'COUNTRY'|'ZIP'|'JOB_TITLE'|'COMPANY_NAME', label?: string}
thank_you_pagestring–JSON object: {title: string, body: string, button_text?: string, button_type?: 'VIEW_WEBSITE'|'DOWNLOAD'}

No output schema declared.

No examples provided.

create_lookalike_audience ~150

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

NameTypeReqDescription
account_idstring–Ad account ID to create the audience in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
lookalike_specstringyesJSON string: {country: 'US', ratio: 0.01-0.10} where ratio is the lookalike percentage (1%-10%)
namestringyesLookalike audience name
origin_audience_idstringyesSource custom audience ID

No output schema declared.

No examples provided.

create_offline_event_set ~80

Create a new offline conversion data set.

NameTypeReqDescription
account_idstring–Ad account ID to create the event set in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
descriptionstring–Event set description
namestringyesEvent set name

No output schema declared.

No examples provided.

create_product_set ~55

Create a new product set within a catalog.

NameTypeReqDescription
catalog_idstringyesProduct catalog ID
filterstring–JSON string of filter rules for the product set
namestringyesProduct set name

No output schema declared.

No examples provided.

create_rf_prediction ~165

Create a new reach & frequency prediction. Provide targeting spec as JSON string, budget in cents, and scheduling info.

NameTypeReqDescription
account_idstring–Ad account ID to create the prediction in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
budgetnumberyesBudget in account currency cents
destination_idstringyesDestination ID (e.g. Facebook Page ID)
frequency_capnumberyesMaximum frequency cap per user
start_timestringyesPrediction start time (ISO 8601 or Unix timestamp)
stop_timestringyesPrediction stop time (ISO 8601 or Unix timestamp)
target_specstringyesJSON string of targeting specification

No output schema declared.

No examples provided.

create_rule ~106

Create a new automated rule for the ad account.

NameTypeReqDescription
account_idstring–Ad account ID to create the rule in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
evaluation_specstringyesJSON string defining rule conditions
execution_specstringyesJSON string defining rule actions
namestringyesRule name
schedule_specstring–JSON string defining rule schedule

No output schema declared.

No examples provided.

create_system_user ~51

Create a new system user in the configured business. Requires META_BUSINESS_ID env var.

NameTypeReqDescription
namestringyesName for the system user
rolestringyesRole for the system user

No output schema declared.

No examples provided.

debug_token ~47

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

NameTypeReqDescription
input_tokenstringyesAccess token to debug/inspect

No output schema declared.

No examples provided.

delete_ad ~29

Delete an ad. This action is irreversible.

NameTypeReqDescription
ad_idstringyesAd ID to delete

No output schema declared.

No examples provided.

delete_adset ~33

Delete an ad set. This action is irreversible.

NameTypeReqDescription
adset_idstringyesAd set ID to delete

No output schema declared.

No examples provided.

delete_audience ~31

Delete a custom audience. This action is irreversible.

NameTypeReqDescription
audience_idstringyesAudience ID to delete

No output schema declared.

No examples provided.

delete_block_list ~33

Delete a publisher block list. This action is irreversible.

NameTypeReqDescription
list_idstringyesBlock list ID to delete

No output schema declared.

No examples provided.

delete_budget_schedule ~32

Delete a budget schedule. This action is irreversible.

NameTypeReqDescription
schedule_idstringyesBudget schedule ID to delete

No output schema declared.

No examples provided.

delete_campaign ~29

Delete a campaign. This action is irreversible.

NameTypeReqDescription
campaign_idstringyesCampaign ID to delete

No output schema declared.

No examples provided.

delete_canvas ~32

Delete an Instant Experience (Canvas). This action is irreversible.

NameTypeReqDescription
canvas_idstringyesCanvas ID to delete

No output schema declared.

No examples provided.

delete_image ~70

Delete an ad image by hash. This action is irreversible.

NameTypeReqDescription
account_idstring–Ad account ID the image belongs to (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
hashstringyesImage hash to delete

No output schema declared.

No examples provided.

delete_rf_prediction ~33

Delete a reach & frequency prediction. This action is irreversible.

NameTypeReqDescription
prediction_idstringyesPrediction ID to delete

No output schema declared.

No examples provided.

delete_rule ~23

Delete an automated rule.

NameTypeReqDescription
rule_idstringyesRule ID

No output schema declared.

No examples provided.

delete_video ~30

Delete an ad video. This action is irreversible.

NameTypeReqDescription
video_idstringyesVideo ID to delete

No output schema declared.

No examples provided.

exchange_token ~48

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

NameTypeReqDescription
short_lived_tokenstringyesShort-lived access token to exchange

No output schema declared.

No examples provided.

generate_preview ~133

Generate an ad preview without needing an existing ad. Provide creative spec directly to see how it would look.

NameTypeReqDescription
account_idstring–Ad account ID to generate the preview in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
ad_formatstringyesAd format: DESKTOP_FEED_STANDARD, MOBILE_FEED_STANDARD, INSTAGRAM_STANDARD, INSTAGRAM_STORY, RIGHT_COLUMN_STANDARD, etc.
creativestringyesJSON string of creative spec: {object_story_spec: {...}} or {object_story_id: '...'}

No output schema declared.

No examples provided.

get_account_activities ~107

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

NameTypeReqDescription
account_idstring–Ad account ID to query (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
afterstring–Pagination cursor for next page
fieldsstring–Comma-separated fields to return
limitnumber–Number of results (default 25)

No output schema declared.

No examples provided.

get_account_insights ~276

Get performance insights for the ad account. Returns metrics like impressions, clicks, spend, reach, etc.

NameTypeReqDescription
account_idstring–Ad account ID to query (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
breakdownsstring–Breakdown dimensions: age,gender,country,region,publisher_platform,platform_position,device_platform,comscore_market (replaces dma). Some accounts must opt in in Ads Manager for impression_device, ho…
date_presetstring–Lowercase date preset, for example: today, yesterday, last_7d, last_14d, last_30d, this_month, last_month, this_quarter, last_quarter, this_year, last_year
fieldsstring–Comma-separated insight fields
filteringstring–JSON string for filtering
levelstring–Aggregation level: campaign, adset, ad
time_incrementstring–Time granularity: all_days, 1, 7, monthly
time_rangestring–JSON string {since,until} in YYYY-MM-DD format

No output schema declared.

No examples provided.

get_ad ~40

Get details of a specific ad by ID.

NameTypeReqDescription
ad_idstringyesAd ID
fieldsstring–Comma-separated fields to return

No output schema declared.

No examples provided.

get_ad_account ~79

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

NameTypeReqDescription
account_idstring–Ad account ID to query (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted.
fieldsstring–Comma-separated fields to return

No output schema declared.

No examples provided.

get_ad_insights ~236

Get performance insights for a specific ad.

NameTypeReqDescription
ad_idstringyesAd ID
breakdownsstring–Breakdown dimensions: age,gender,country,region,publisher_platform,platform_position,device_platform,comscore_market (replaces dma). Some accounts must opt in in Ads Manager for impression_device, ho…
date_presetstring–Lowercase date preset, for example: today, yesterday, last_7d, last_14d, last_30d, this_month, last_month, this_quarter, last_quarter, this_year, last_year
fieldsstring–Comma-separated insight fields
filteringstring–JSON string for filtering
levelstring–Aggregation level: campaign, adset, ad
time_incrementstring–Time granularity: all_days, 1, 7, monthly
time_rangestring–JSON string {since,until} in YYYY-MM-DD format

No output schema declared.

No examples provided.

get_ad_preview ~72

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

NameTypeReqDescription
ad_formatstringyesAd format: DESKTOP_FEED_STANDARD, MOBILE_FEED_STANDARD, INSTAGRAM_STANDARD, INSTAGRAM_STORY, RIGHT_COLUMN_STANDARD, etc.
ad_idstringyesAd ID

No output schema declared.

No examples provided.

get_adset ~44

Get details of a specific ad set by ID.

NameTypeReqDescription
adset_idstringyesAd set ID
fieldsstring–Comma-separated fields to return

No output schema declared.

No examples provided.

get_adset_ads ~71

Get all ads belonging to a specific ad set.

NameTypeReqDescription
adset_idstringyesAd set ID
afterstring–Pagination cursor for next page
fieldsstring–Comma-separated fields to return
limitnumber–Number of results (default 25)

No output schema declared.

No examples provided.

get_adset_insights ~240

Get performance insights for a specific ad set.

NameTypeReqDescription
adset_idstringyesAd Set ID
breakdownsstring–Breakdown dimensions: age,gender,country,region,publisher_platform,platform_position,device_platform,comscore_market (replaces dma). Some accounts must opt in in Ads Manager for impression_device, ho…
date_presetstring–Lowercase date preset, for example: today, yesterday, last_7d, last_14d, last_30d, this_month, last_month, this_quarter, last_quarter, this_year, last_year
fieldsstring–Comma-separated insight fields
filteringstring–JSON string for filtering
levelstring–Aggregation level: campaign, adset, ad
time_incrementstring–Time granularity: all_days, 1, 7, monthly
time_rangestring–JSON string {since,until} in YYYY-MM-DD format

No output schema declared.

No examples provided.

Install

How do I install the io.github.mikusnuz/meta-ads MCP server?

io.github.mikusnuz/meta-ads runs locally as an npm package, launched with npx -y @mikusnuz/meta-ads-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @mikusnuz/meta-ads-mcp

# add to Claude Code
claude mcp add mikusnuz-meta-ads -- npx -y @mikusnuz/meta-ads-mcp
Common questions

What is the io.github.mikusnuz/meta-ads MCP server?

io.github.mikusnuz/meta-ads is an MCP server listed in the public MCP registry as io.github.mikusnuz/meta-ads. MCP server for Meta Marketing API, Facebook & Instagram ad campaign management. This page covers its npm package (@mikusnuz/meta-ads-mcp).

Is the io.github.mikusnuz/meta-ads MCP server safe to use?

io.github.mikusnuz/meta-ads scores 78 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.mikusnuz/meta-ads MCP server expose?

io.github.mikusnuz/meta-ads exposes 134 tools: list_campaigns, get_campaign, create_campaign, update_campaign, delete_campaign, and 129 more. Their descriptions and schemas cost roughly 13,506 tokens of context every time the server is loaded.

Is the io.github.mikusnuz/meta-ads MCP server still maintained?

io.github.mikusnuz/meta-ads is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.mikusnuz/meta-ads MCP server under?

io.github.mikusnuz/meta-ads declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.