meta-ads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| META_APP_ID | No | App ID — required for token exchange/debug | |
| META_PIXEL_ID | No | Pixel ID — required for conversion tools | |
| META_APP_SECRET | No | App secret — required for token exchange/debug | |
| META_BUSINESS_ID | No | Business Manager ID — required for business tools | |
| META_AD_ACCOUNT_ID | Yes | Ad account ID (numeric, without act_ prefix) | |
| META_ADS_ACCESS_TOKEN | Yes | Meta Marketing API access token |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_campaignsA | List campaigns in the ad account. Supports filtering by status and objective. Returns paginated results. |
| get_campaignB | Get details of a specific campaign by ID. |
| create_campaignA | Create a new ad campaign. Defaults to PAUSED status. Requires name and objective. Budget can be set at campaign or ad set level. |
| update_campaignA | Update an existing campaign. Only provided fields will be modified. |
| delete_campaignB | Delete a campaign. This action is irreversible. |
| copy_campaignA | Copy an existing campaign. Creates a duplicate with optional name override. Copies structure including ad sets and ads. |
| get_campaign_adsetsB | Get all ad sets belonging to a specific campaign. |
| get_campaign_adsB | Get all ads belonging to a specific campaign. |
| get_campaign_leadsA | Get leads generated by a specific campaign. Requires leads_retrieval permission. |
| list_adsetsB | List ad sets in the ad account. Optionally filter by campaign or status. |
| get_adsetB | Get details of a specific ad set by ID. |
| create_adsetB | Create a new ad set. Requires name, campaign_id, budget, optimization_goal, billing_event, and targeting. Defaults to PAUSED status. |
| update_adsetB | Update an existing ad set. Only provided fields will be modified. |
| delete_adsetB | Delete an ad set. This action is irreversible. |
| copy_adsetB | Copy an existing ad set. Creates a duplicate within the same or different campaign. |
| get_adset_targeting_sentenceA | Get human-readable targeting description for an ad set. Converts targeting spec into readable sentences. |
| get_adset_adsB | Get all ads belonging to a specific ad set. |
| get_adset_leadsB | Get leads generated by a specific ad set. Requires leads_retrieval permission. |
| list_adsB | List ads in the ad account. Optionally filter by campaign, ad set, or status. |
| get_adA | Get details of a specific ad by ID. |
| create_adA | Create a new ad. Requires name, adset_id, and creative (JSON object_story_spec). Defaults to PAUSED status. |
| update_adA | Update an existing ad. Only provided fields will be modified. |
| delete_adB | Delete an ad. This action is irreversible. |
| copy_adA | Copy an existing ad. Creates a duplicate within the same or different ad set. |
| get_ad_previewB | Get a preview of an ad in a specific format. Returns HTML iframe for rendering. |
| get_delivery_estimateA | Get delivery estimate for an ad including estimated daily reach and cost. |
| list_creativesB | List ad creatives in the ad account. |
| get_creativeB | Get details of a specific ad creative by ID. |
| create_creativeA | Create a new ad creative with object_story_spec. The spec defines the ad content (link, photo, or video) and the associated Facebook Page. |
| update_creativeA | Update an existing ad creative. Only name and url_tags can be modified after creation. |
| create_dynamic_creativeA | Create a dynamic creative with asset_feed_spec. Meta automatically combines different images, videos, titles, bodies, and CTAs to find the best performing combinations. |
| generate_previewA | Generate an ad preview without needing an existing ad. Provide creative spec directly to see how it would look. |
| list_imagesB | List ad images uploaded to the ad account. |
| upload_imageA | Upload an ad image from a public URL. Returns image hash for use in ad creatives. |
| get_imageA | Get details of a specific ad image by ID. |
| delete_imageA | Delete an ad image by hash. This action is irreversible. |
| list_videosB | List ad videos uploaded to the ad account. |
| upload_videoA | Upload an ad video from a public URL. Returns video ID for use in ad creatives. |
| get_videoB | Get details of a specific ad video by ID. |
| delete_videoA | Delete an ad video. This action is irreversible. |
| list_canvasesB | List Instant Experience (Canvas) creatives in the ad account. |
| get_canvasA | Get details of a specific Instant Experience (Canvas) by ID. |
| create_canvasA | Create a new Instant Experience (Canvas) on a Facebook Page. Requires page_id and body_elements JSON array defining the canvas layout. |
| delete_canvasB | Delete an Instant Experience (Canvas). This action is irreversible. |
| list_custom_audiencesB | List custom audiences in the ad account. |
| get_audienceB | Get details of a specific custom audience by ID. |
| create_custom_audienceA | Create a new custom audience. Subtype determines the audience source (CUSTOM, WEBSITE, APP, OFFLINE_CONVERSION, LOOKALIKE, ENGAGEMENT, etc.). |
| update_audienceA | Update an existing custom audience. Only provided fields will be modified. |
| delete_audienceA | Delete a custom audience. This action is irreversible. |
| add_users_to_audienceA | 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). |
| remove_users_from_audienceA | Remove users from a custom audience. Payload format is the same as add_users_to_audience. |
| create_lookalike_audienceA | Create a lookalike audience based on an existing custom audience. Ratio (1-10) determines how closely the new audience resembles the source. |
| get_audience_healthA | Get health status and delivery readiness of a custom audience. Shows match rate, size, and operation status. |
| list_saved_audiencesB | List saved audiences in the ad account. Saved audiences are reusable targeting presets. |
| get_saved_audienceB | Get details of a specific saved audience by ID. |
| search_targetingA | Search for targeting options (interests, behaviors, demographics, etc.) by keyword. Use this to find valid targeting IDs for ad set targeting specs. |
| search_locationsB | Search for geographic locations (countries, regions, cities, zip codes) for ad targeting. |
| search_targeting_mapA | Map targeting IDs to their full details (names, types, paths). Useful for resolving IDs obtained from other endpoints. |
| get_reach_estimateB | Get estimated audience reach for a given targeting specification. Useful for planning campaigns before creating them. |
| get_targeting_suggestionsC | Get targeting suggestions based on existing targeting criteria. Meta suggests related interests, behaviors, and demographics. |
| get_account_insightsC | Get performance insights for the ad account. Returns metrics like impressions, clicks, spend, reach, etc. |
| get_campaign_insightsB | Get performance insights for a specific campaign. |
| get_adset_insightsB | Get performance insights for a specific ad set. |
| get_ad_insightsC | Get performance insights for a specific ad. |
| create_async_reportA | Create an async insight report for large data queries. Returns a report_run_id to poll with get_async_report. |
| get_async_reportA | Check status and retrieve results of an async insight report. |
| get_form_leadsB | Get leads submitted through a lead generation form. |
| get_leadB | Get details of a specific lead by ID. |
| list_lead_formsB | List lead generation forms for a Facebook Page. |
| create_lead_formB | Create a new lead generation form on a Facebook Page. Requires pages_manage_ads permission. |
| get_lead_formC | Get details of a specific lead generation form. |
| list_catalogsC | List product catalogs for the ad account. |
| get_catalogB | Get details of a specific product catalog. |
| create_catalogC | Create a new product catalog for the ad account. |
| update_catalogB | Update an existing product catalog. |
| list_product_setsB | List product sets within a catalog. |
| create_product_setC | Create a new product set within a catalog. |
| get_product_setB | Get details of a specific product set. |
| update_product_setC | Update an existing product set. |
| list_productsB | List products within a catalog. |
| get_productC | Get details of a specific product. |
| update_productC | Update an existing product in a catalog. |
| batch_productsA | Batch create, update, or delete products in a catalog. Supports up to 5,000 items per request. Update operations support upsert. |
| get_batch_statusB | Check the status of a catalog batch operation. |
| list_feedsC | List product feeds for a catalog. |
| create_feedB | Create a new product feed for a catalog. |
| upload_feedC | Upload/trigger a feed file upload for a product feed. |
| get_feed_uploadsB | Get upload history for a product feed. |
| list_rulesA | List automated rules for the ad account. |
| get_ruleB | Get details of a specific automated rule. |
| create_ruleC | Create a new automated rule for the ad account. |
| update_ruleC | Update an existing automated rule. |
| delete_ruleB | Delete an automated rule. |
| list_experimentsB | List A/B test experiments (ad studies) for the ad account. |
| create_experimentB | Create a new A/B test experiment (ad study). |
| get_experimentA | Get details of a specific experiment (ad study). |
| update_experimentC | Update an existing experiment (ad study). |
| get_experiment_resultsB | Get results/cells of an experiment (ad study). |
| send_conversion_eventB | Send a server-side conversion event via the Conversions API (pixel). |
| send_offline_eventB | Send an offline conversion event to an offline event set. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| campaign_wizard | Step-by-step guide to create a full ad campaign from scratch |
| performance_report | Analyze ad performance with detailed breakdowns and recommendations |
| audience_builder | Build and refine target audiences using Meta's targeting tools |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| account-info | Ad account overview — status, balance, currency, timezone, and total spend |
| campaigns-overview | All active campaigns with budget information |
| spending-today | Today's spending summary — spend, impressions, clicks, and reach |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikusnuz/meta-ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server