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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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