Meta Ads MCP by Markifact

com.markifactv1.0.0Updated Sep 28, 2026

Meta Ads MCP: Facebook and Instagram reports, campaigns, creatives, audiences. Approval on writes.

VerifiedStreamable HTTPWeb executableBusiness & Commerce

Installation

In SourceWeft

  1. Open Meta Ads MCP by Markifact in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "meta-ads": {
      "type": "http",
      "url": "https://api.markifact.com/mcp/meta-ads"
    }
  }
}

README

Meta Ads MCP Server

[MCP] [License: MIT] [Setup guide]

Meta Ads MCP server for Claude, ChatGPT, Codex, Cursor and any MCP client. 85 Meta Ads operations: 40 reads that run instantly and 45 writes that wait for your approval. Hosted, one OAuth login, nothing to install locally.

This is the Meta Ads endpoint of the Markifact MCP server. It is the full Markifact server with Meta Ads as the entry point, so the same login also reaches every other platform Markifact connects, from Meta and Google Analytics to Sheets and Slack. If you only run Meta Ads, this is the one to install.

What you can do

  • Reports. Campaign, ad set and ad performance with placement, device, age, gender, country and hour breakdowns, attribution windows, calculated metrics such as ROAS and frequency, and objective results.
  • Changes. Create and update campaigns, ad sets and ads, including Advantage+ setups. Single image, video, carousel, catalog and Instagram-post creatives with media upload. Budgets, bids, statuses, schedules, targeting, regional regulation fields.
  • Audiences and assets. Custom, lookalike and saved audiences, lead forms, catalogs and product sets, media library, ad review feedback, Pages and Instagram accounts linked to the ad account.
  • Diagnostics. Pixel and Conversions API setup checks, disapproval reasons, ad-level review feedback, and the Meta Ad Library for competitor research.

Install

Sign up at markifact.com first (free credits included), connect Meta Ads on the Connections page, then add the server to your client. The Meta Ads MCP setup guide has the same steps with screenshots.

ClientSteps
Claude (web and desktop)Settings → Connectors → Add custom connector → URL https://api.markifact.com/mcp/meta-ads → Connect, then sign in
Claude Codeclaude mcp add --transport http meta-ads https://api.markifact.com/mcp/meta-ads or /plugin install meta-ads@markifact after claude plugin marketplace add markifact/markifact-mcp
ChatGPT and CodexInstall the Markifact plugin from the Plugin Directory and call it with @Markifact
CursorSettings → MCP → Add server → URL https://api.markifact.com/mcp/meta-ads (or copy mcp.json from this repo into ~/.cursor/mcp.json)
Codex CLIAdd to ~/.codex/config.toml: [mcp_servers.meta_ads] then url = "https://api.markifact.com/mcp/meta-ads"
Gemini CLIgemini extensions install github.com/markifact/meta-ads-mcp
WindsurfAdd the snippet from mcp.json to your MCP config
Any MCP clientStreamable HTTP at https://api.markifact.com/mcp/meta-ads, OAuth 2.1 with PKCE, dynamic client registration supported

Details per client are in docs/clients.md. Every client completes the same browser login; the server never asks for API keys or tokens in the chat.

Prompts that work

Weekly performance by ad set

text
Pull Meta Ads performance by ad set for the last 7 days versus the previous 7. Include spend, impressions, CPM, CTR, results, cost per result and ROAS. Flag anything with cost per result up more than 25%. Do not make changes.

Creative fatigue

text
Which ads in the "Prospecting" campaign have frequency above 3 and CTR down more than 20% over the last 14 days? List them with spend and results.

Placement breakdown

text
Break down last month's spend and results by placement for the whole account. Which placements have the worst cost per result?

Launch a campaign, paused

text
Create a Meta Advantage+ sales campaign for our Black Friday creative. Budget $200 a day, target US, use the uploaded video, and leave it paused so I can review it before it goes live.

Pause with a preview

text
List active ad sets with cost per result above $80 over the last 14 days, then pause them. Show me the list and wait for my approval before pausing anything.

Name the account, the date range and the metrics, ask for a read before a write, and say whether changes are allowed.

How writes work

Every write is an approval-gated operation. The client asks for a change, the server prepares it and shows the exact target (account, campaign ID, current value, proposed value), and nothing runs until you confirm. Reads never ask. The server can only reach accounts the authorized Meta Ads login can already see.

Operations (85)

Generated from the Markifact operation registry.

OperationWhat it doesType
meta_ads_check_catalog_diagnosticsChecks a Meta catalog for data quality, policy, and feed issues, returning aggregated diagnostic issue groups with severity and affected…Read
meta_ads_create_ad_creativeCreates a Meta ad creative from a raw creative payload and returns the new creative_id.Write, approval required
meta_ads_create_ad_from_creativeCreates a new Meta ad from an existing ad creative ID.Write, approval required
meta_ads_create_ad_from_postCreates Meta ads from existing Facebook Page posts or Instagram media (no media upload, no copy authoring).Write, approval required
meta_ads_create_adsetCreate a new Meta Ads ad set with budget, targeting, optimization, and promoted object settings.Write, approval required
meta_ads_create_campaignCreate a new campaign in Meta Ads with customizable settings including objective, budget, targeting, and scheduling.Write, approval required
meta_ads_create_carousel_adCreates new Meta carousel ads with 2-10 cards containing images or videos (bulk mode only).Write, approval required
meta_ads_create_catalog_adCreates Advantage+ Catalog / dynamic Ads (carousel or single image) via product sets (bulk mode).Write, approval required
meta_ads_create_experimentCreate a native Meta A/B split test or ad study using existing campaign/ad-set variants, including instant forms.Write, approval required
meta_ads_create_flexible_adCreates flexible ads with multiple media (up to 10) and text variations (up to 5 each).Write, approval required
meta_ads_create_product_setLow-level tool that creates a Meta product set inside a catalog from a raw Meta filter passed to Meta as-is.Write, approval required
meta_ads_create_single_image_adCreates new Meta ads using single image creative assets.Write, approval required
meta_ads_create_single_video_adCreates new Meta ads using single video creative assets.Write, approval required
meta_ads_delete_product_setPermanently deletes a Meta product set from a catalog.Write, approval required
meta_ads_duplicate_adCreate a copy of an existing Meta ad with optional creative enhancement controls and the ability to move the copy to a different ad set.Write, approval required
meta_ads_duplicate_adsetCreate a new Meta Ads ad set by duplicating an existing ad set with the option to copy associated ads or move to a different campaign.Write, approval required
meta_ads_duplicate_campaignCreate a new Meta Ads campaign by duplicating an existing campaign with the option to copy associated ad sets and ads.Write, approval required
meta_ads_generate_ad_previewsGenerates preview iframe URLs of Meta advertising campaigns and ad creatives for a selected placement like INSTAGRAM_FEED, FACEBOOK_FEED,…Read
meta_ads_get_account_detailsRetrieves detailed account information from Meta Ads including status, timezone, currency, business info, spending limits, and settings.Read
meta_ads_get_account_historyRetrieves historical account activity and changes for Meta advertising accountsRead
meta_ads_get_adFetches one Meta ad by ID with its status, review feedback (disapproval reasons per policy and placement), delivery issues,…Read
meta_ads_get_ad_creativeFetches a Meta ad creative by ad_id or creative_id and returns the raw creative payload.Read
meta_ads_get_adset_settingsRetrieve ad set settings and configuration from Meta Ads including budget, targeting, optimization, bid strategy, and all ad set-level…Read
meta_ads_get_campaign_settingsRetrieve campaign settings and configuration from Meta Ads including budget, status, objective, bid strategy, and all campaign-level…Read
meta_ads_get_experimentRead a native Meta A/B experiment or ad study, its test cells and available measurement results.Read
meta_ads_get_media_detailsGets Meta media details for images and videos using image_hash or video_id.Read
meta_ads_get_product_detailsGets full details for a single Meta catalog product by retailer id (SKU) or Meta product id, including review status and rejection reasons.Read
meta_ads_get_reportRetrieves Meta Ads (Facebook/Instagram) data with customizable metrics, dimensions, filters, date ranges, sorting options, and built-in…Read
meta_ads_librarySearch and retrieve ads from Meta's Ad Library to spy on competitorsRead
meta_ads_list_account_block_listsGet publisher block lists for Meta Ads account with filtering options for applied listsRead
meta_ads_list_adsLists ads in a Meta ad account, optionally only the ads of one ad set or campaign, with any status including paused, plus creative…Read
meta_ads_list_adsetsList all ad sets in ad account with status and datesRead
meta_ads_list_campaignsList all campaigns in ad account with status and datesRead
meta_ads_list_catalogsLists Meta catalogs the connected user can access.Read
meta_ads_list_experimentsList native Meta A/B tests, split tests and ad studies owned by a business portfolio.Read
meta_ads_list_instagram_accountsLists the Instagram accounts linked to the Facebook Pages on the Meta Ads connection, with the Pages each one is linked to.Read
meta_ads_list_instagram_mediaLists the posts of an Instagram account on the Meta Ads connection (Reels, feed posts, stories) with permalink, shortcode and media id,…Read
meta_ads_list_mediaLists the Meta ad account's media library (videos and images) with optional name/filename search applied by Meta at the source.Read
meta_ads_list_pagesLists the Facebook Pages available on the Meta Ads connection, with their IDs.Read
meta_ads_list_product_setsLists product sets inside a Meta catalog with their filters and product counts.Read
meta_ads_list_productsLists or searches products inside a Meta catalog with an optional raw Meta filter.Read
meta_ads_list_report_fieldsSearch and browse available Meta Ads reporting metrics and dimensions before running reports.Read
meta_ads_rename_adRenames Meta Ads ads to update their display namesWrite, approval required
meta_ads_rename_adsetRenames Meta Ads ad sets to update their display namesWrite, approval required
meta_ads_rename_campaignRenames Meta Ads campaigns to update their display namesWrite, approval required
meta_ads_replace_ad_creativeAttaches an existing creative (by creative_id) to an existing ad (by ad_id), replacing whatever creative was attached before.Write, approval required
meta_ads_search_targetingSearch for Meta Ads targeting options: geo locations (countries, cities, regions, zips), locales (languages), interests, education…Read
meta_ads_select_accountsSelect Meta Ads accounts once and reuse them across multiple meta_ads_get_report nodes,no repeated account selection.Read
meta_ads_update_adFallback Meta Ads ad patch tool for advanced or unsupported cases at the ad level, such as renaming an ad, changing…Write, approval required
meta_ads_update_ad_statusUpdates the status of Meta Ads ads (active, paused, or deleted) for ad managementWrite, approval required
meta_ads_update_adsetFallback Meta Ads ad set patch tool for advanced or unsupported cases.Write, approval required
meta_ads_update_adset_audiencesUpdate audience targeting on a Meta Ads ad set: custom audiences, lookalike audiences, interests, behaviors, education, work, income,…Write, approval required
meta_ads_update_adset_bid_valueUpdates the bid amount (Bid Cap / Cost Cap) or minimum ROAS of Meta Ads ad sets.Write, approval required
meta_ads_update_adset_budgetUpdates the budget (daily or lifetime) of Meta Ads ad sets for budget management.Write, approval required
meta_ads_update_adset_languageUpdates language targeting (locales) for a Meta Ads ad set.Write, approval required
meta_ads_update_adset_locationsIncludes or excludes location targeting for a Meta Ads ad set.Write, approval required
meta_ads_update_adset_placementsUpdates the placement targeting of a Meta Ads ad set.Write, approval required
meta_ads_update_adset_scheduleUpdates the start_time and/or end_time (schedule) of a Meta Ads ad set.Write, approval required
meta_ads_update_adset_statusUpdates the status of Meta Ads ad sets (active, paused, or deleted) for ad set managementWrite, approval required
meta_ads_update_campaignFallback Meta Ads campaign patch tool for advanced or unsupported cases such as spend cap, special ad category, promoted object or per ad…Write, approval required
meta_ads_update_campaign_bidding_strategyUpdates the bidding strategy of a Meta Ads campaign.Write, approval required
meta_ads_update_campaign_budgetUpdates the budget (daily or lifetime) of Meta Ads campaigns for budget management.Write, approval required
meta_ads_update_campaign_statusUpdates the status of Meta Ads campaigns (active, paused, or deleted) for campaign managementWrite, approval required
meta_ads_update_experimentUpdate a native Meta A/B experiment or ad study using Meta's update parameters, such as name, schedule, cells or objectives.Write, approval required
meta_ads_update_product_setUpdates a Meta product set's name, raw Meta filter, or both.Write, approval required
meta_ads_update_productsLow-level bulk tool that creates, updates, or deletes catalog products by sending raw Meta items_batch requests as-is.Write, approval required
meta_ads_upload_mediaUploads a single image or video to a Meta ad account and returns its media reference (image_hash for images, video_id & auto-generated…Write, approval required
meta_check_capi_healthCheck Conversions API (CAPI) health metrics for a Meta Ads pixel including event match quality, server side tracking, coverage,…Read
meta_create_custom_audienceCreate a Meta custom audience in an ad account.Write, approval required
meta_create_custom_conversionCreates a Meta custom conversion on an ad account, defined by a rule over pixel events or URLs (e.g.Write, approval required
meta_create_lead_formCreates a Meta Instant Form (lead gen form) on a Facebook page for Lead Ads campaigns, with contact fields, custom qualifying questions,…Write, approval required
meta_create_lookalike_audienceCreate a Meta lookalike audience from an existing source custom audience.Write, approval required
meta_get_custom_audienceGet a single Meta custom or lookalike audience by ID with its full definition: the website or engagement rule, lookalike specification and…Read
meta_get_lead_formGets the full configuration of a single Meta Instant Form (lead gen form): questions, intro card, thank-you page, privacy policy,…Read
meta_get_pixel_detailsGet details for a specific Meta Ads tracking pixel including configurationRead
meta_get_pixel_statsGet statistics for a Meta Ads pixel with various aggregation types and optional date filteringRead
meta_list_account_pixelsLists all pixels connected to a Meta Ads account with tracking and configuration detailsRead
meta_list_custom_audiencesList custom audiences and lookalike audiences from a Meta Ads account.Read
meta_list_custom_conversionsList all custom conversions configured in a Meta Ads account.Read
meta_list_lead_formsLists all lead gen forms from a Facebook pageRead
meta_list_promotable_appsLists the apps a Meta Ads account can promote (id, name, platforms, store URLs, app events).Read
meta_list_saved_audiencesList saved audiences (reusable targeting presets) from a Meta Ads account, with their full targeting specification, readable targeting…Read
meta_retrieve_leadsRetrieves lead form submissions from Meta Ads (Facebook and Instagram) lead generation campaignsRead
meta_update_custom_audienceUpdates a Meta custom audience (rename, description, website rule, retention window, opt-out link, customer file source, lookalike spec,…Write, approval required
meta_update_lead_form_statusUpdates the status of a Meta Instant Form (lead gen form): ACTIVE, ARCHIVED, DELETED, or DRAFT.Write, approval required

The server exposes ten MCP tools. find_operations searches this list, get_operation_inputs returns the exact input schema, run_operation runs reads and run_write_operation runs approval-gated writes. The remaining tools handle connections, files and media uploads. Architecture notes are in the main repo.

Related

FAQ

Do I need a Meta developer app or system user token?

No. Markifact is an approved Meta tech provider and the server runs on Markifact's infrastructure. You authorize the Facebook login that already has access to your ad accounts, and the server can only reach what that login can see.

Can it upload creatives?

Yes. Upload images and video through the client, and the server attaches them to new or existing ads. Catalog and Instagram-post creatives are supported too.

Can it change my campaigns?

Yes, and every change is previewed and waits for your approval in the chat. Reads run immediately. Nothing is written without a confirmation.

Which AI clients work?

Any MCP client with OAuth support: Claude (web, desktop, Code), ChatGPT and Codex, Cursor, Windsurf, Gemini CLI and others. Install steps for each are above.

What does it cost?

The server is free to install. It needs a Markifact account, which starts with free credits. Plans are on the pricing page.

Support and policies

Email [email protected] or open an issue. See SECURITY.md, PRIVACY.md and TERMS.md. Licensed under MIT.

Source: README.md at commit a6a1dcd

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.0.0LatestSep 28, 2026