Mcp Meta Ad Library Monitor

com.mambabuilt由 mambabuilt.com 發布v1.2.1更新於 Nov 7, 2026

Find a company active Facebook and Instagram ads through the Meta Ad Library API.

概覽

AI 產生的概覽

透過 Meta 廣告檔案庫 API 查找公司在 Facebook 和 Instagram 投放的廣告,每則廣告回傳一列扁平資料,含創意文案、日期與快照連結。

可以做什麼
  • 依公司名稱或網域在 Meta 廣告檔案庫搜尋廣告,可依國家受眾、投放狀態、廣告類型與媒體類型篩選
  • 讀取每則廣告的一列扁平資料:創意文案、標題、投放日期、投放平台以及 Meta 的永久快照連結
  • 查看廣告主比對方式、被身分驗證擋下的候選粉絲專頁數量,以及說明本次搜尋可能涵蓋範圍的覆蓋說明
  • 用廣告筆數上限與費用上限控制單次呼叫成本,並重複使用七天內的快取結果
適用情境
適合競品廣告調查、創意拆解,以及確認某品牌是否在歐盟市場投放廣告——歐盟的廣告檔案庫涵蓋所有廣告。在美國或英國查詢一般商業廣告時結果通常很少,因為 Meta 在這些地區只公開政治與議題類廣告。
執行需求
以 npm 套件形式透過 npx 在本機執行,需要 Node.js 18 或更新版本。需要 Apify 帳號及 APIFY_TOKEN 中的 API 權杖,還需要自己的 Meta 應用程式存取權杖,可放在 META_ACCESS_TOKEN 中或每次呼叫時以 metaAccessToken 參數傳入。取得政治與議題類廣告資料需要經驗證的 Meta 身分。需要能連線至 Apify 的網路。
安裝前請注意
涉及兩項憑證:Apify 權杖與 Meta 應用程式存取權杖;README 建議使用環境變數而非在對話中傳入 Meta 權杖。每次查詢都會在你的 Apify 帳號上依檢查的廣告主數量與回傳的廣告筆數計費,建議設定 max_charge_usd。搜尋在 Apify 伺服器上執行,公司名稱與網域會傳送給該第三方。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Mcp Meta Ad Library Monitor,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Meta Ad Library Monitor MCP Server

[Glama score] [MCP Registry] [npm version] [npm downloads] [license] [mcpservers.org]

[Meta Ad Library Monitor MCP server]

An MCP server that finds a company's active Facebook and Instagram ads through the Meta Ad Library API. It wraps the Mamba Labs Meta Ad Library Ads by Company, Graph API actor on Apify and returns Clay-ready flat JSON rows to any MCP client.

What's Inside

What it does

Give it a company name or domain and your own Meta access token, and it searches the Meta Ad Library and returns one flat row per ad: creative text, headline, delivery dates, the Meta surfaces the ad ran on, and Meta's permanent snapshot URL for the rendered ad.

Read the coverage first, because it decides whether this tool is any use to you. It reads Meta's Ad Library Graph API, which is the only route Meta sanctions, and that API publishes two things: every ad delivered to an audience in the EU, whatever the ad is about, and social issue, election and politics ads worldwide. So an EU heavy list gets good coverage of ordinary commercial advertising, while a US or UK list of ordinary product ads mostly comes back not_found. That is Meta's dataset rather than a fault in the lookup, and every row carries a coverage note saying what the search could have found. Impressions and spend exist for political ads only and arrive as bands, so a null there is not zero spend.

All of the searching runs on Apify. This package is a thin client that calls the actor and hands back the result unchanged.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config:

json
{  "mcpServers": {    "mamba-meta-ad-library-monitor": {      "command": "npx",      "args": ["-y", "@mambalabsdev/mcp-meta-ad-library-monitor"],      "env": {        "APIFY_TOKEN": "your-apify-token"      }    }  }}

Get your token at https://console.apify.com/account/integrations, paste it in, and restart Claude Desktop. The find_meta_ads tool will be available.

You also need your own Meta app access token, free to create at developers.facebook.com. Set it as META_ACCESS_TOKEN in the same env block to keep it out of the chat transcript, or pass it per call as the metaAccessToken tool argument. With neither, the tool returns an error before any Apify run starts, so a missing token costs nothing.

Prerequisites

  • Node.js 18 or newer
  • An Apify account with an API token
  • Your own Meta app access token, free at developers.facebook.com. The Ad Library API is not open, so this is required.
  • A verified identity on your Meta account if you want political and issue ad data. That is Meta's requirement, not ours.

Example prompts

  • "Is gymshark.com running Facebook ads in the EU right now? Here is my Meta token."
  • "Show me the last 25 active ads for this company across EU audiences."
  • "Find video ads only for this advertiser, active and inactive."
  • "Search the Meta Ad Library for this brand in the UK and tell me what the coverage note says."

Inputs

  • company_domain (optional): bare company domain, for example gymshark.com. Used to derive the advertiser search term when no company name is given, and used by the identity gate to check that a matched advertiser page really is this company.
  • company_name (optional but strongly recommended): Meta advertiser search is a fuzzy text search over page names, so the company name is what the identity gate compares a matched page against. Without it the gate falls back to the domain stem, which is weaker.
  • metaAccessToken (required unless META_ACCESS_TOKEN is set in the server environment): your own Meta app access token, free to create at developers.facebook.com. The Ad Library API is not open, so a call with neither returns an error and starts no run.
  • ad_reached_countries (optional): which country audiences to search. One of EU, GB, US, DE, FR, NL, ES, IT, IE or ALL_EU_PLUS_UK. Meta requires this parameter and a request without it fails outright. The EU set is where the Ad Library covers all ads rather than only political ones, so it is the default.
  • ad_active_status (optional): ACTIVE, ALL or INACTIVE. ACTIVE is the default because a currently running ad is the buying signal. ALL is what you want for a creative history or a competitive teardown.
  • ad_type (optional): ALL returns every ad the Ad Library holds for those countries. POLITICAL_AND_ISSUE_ADS narrows to the political archive, which is the only archive carrying impressions and spend and which requires a verified identity on your Meta account.
  • media_type (optional): ALL, IMAGE, VIDEO, MEME or NONE. Useful for a creative teardown where you only care about video.
  • maxAds (optional): how many ad rows to return per company. One of 10, 25, 50 or 100. This is a cost dial, not a change of answer: the row always reports how many ads matched before the cap.
  • skipCache (optional): when false (the default) a successful lookup is cached for seven days and reused. Set true to force a fresh fetch.
  • max_charge_usd (optional): spending cap for this call, in USD. The actor stops before any charge that would take the run past this amount and keeps every row already charged.

Output

The tool returns the actor's flat JSON rows, one per ad, in snake_case with no nested objects. advertiser_match says how the advertiser page was matched and advertisers_rejected counts the ones the identity gate turned away. coverage_note states what the search could have found, so an empty result is readable. impressions and spend are populated for political and issue ads only. See the Apify Store page for the full output schema.

Example output

json
{  "degraded": false,  "degradation_reason": null,  "company_domain": "gymshark.com",  "company_name": "Gymshark",  "page_id": "102590181603009",  "page_name": "Gymshark Women",  "advertiser_match": "name_match",  "advertisers_rejected": 9,  "ad_id": "2824771397896004",  "ad_creative_body": "Hol dir die soften, leichten Gymsets fürs Training (und den chaotischen Alltag) ✨",  "ad_creative_link_title": "Everyday Seamless ab 30 € 💸",  "ad_creation_time": "2026-08-21",  "ad_delivery_start_time": "2026-08-21",  "ad_delivery_stop_time": null,  "ad_snapshot_url": "https://www.facebook.com/ads/library/?id=2824771397896004",  "publisher_platforms": "facebook, instagram, audience_network, messenger, threads",  "languages": "de",  "impressions": null,  "spend": null,  "currency": null,  "ads_matched": 10,  "coverage_note": "Searched EU audiences, where the Ad Library covers all ads, plus non EU audiences where it covers only political and issue ads. A commercial advertiser outside the EU is legitimately absent.",  "coverage": 1,  "fetch_status": "ok",  "run_date": "2026-08-23T05:50:09.867Z"}

Features

  • One flat row per ad, with creative text, headline and delivery dates
  • Meta's own permanent snapshot URL for each rendered ad
  • The Meta surfaces an ad ran on, in publisher_platforms
  • Reads Meta's sanctioned Ad Library Graph API and no other route
  • A coverage note on every row, so an empty result is readable
  • Advertiser identity gate, with rejected candidates counted

Pricing

You pay per event on Apify, billed to your own Apify account. Prices from the live pricing record, read 2026-10-16:

EventPrice per event (USD)Fires when
apify-actor-start$0.00005Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
advertiser-checked$0.004 on the Free plan, down to $0.0028 on higher Apify plansOnce per company for which the Ad Library was searched and a non degraded result was produced, whether or not any ads were found. An advertiser with no ads fires this once and nothing else, because looking and finding nothing is a real answer and it is the work you asked for. A degraded row, where no search ran, fires nothing.
ad-returned$0.002 on the Free plan, down to $0.0014 on higher Apify plansOnce per ad row actually returned, after the identity gate. Ads belonging to a page that failed the gate are not returned and are not charged: the work was done and the honest answer is that those ads are not this company.

The actor's Apify page carries the current prices. Running this server consumes Apify credits.

Full actor documentation

This server is a thin client and holds no search logic. For the complete input and output reference, pricing, and run history, see the Apify Store page:

https://apify.com/mambalabs/meta-ad-library-monitor


Mamba Labs GTM Suite

This server is one of the Mamba Labs GTM Suite MCP servers. Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything. The actor behind this server is the Meta Ad Library Monitor, immutable Apify actor ID J1GWlSXfSGU3u8Wng.

Built by Mamba Labs | npm | Apify Store

License

MIT

Built by Mamba Labs. https://apify.com/mambalabs

來源:README.md,提交 fb051ea

工具

1

find_meta_ads

Find Meta Ads

Search the Meta Ad Library for a company's ads through Facebook's sanctioned Graph API and return ONE FLAT ROW PER AD with creative text, headline, delivery dates, the Meta surfaces it ran on and Meta's permanent snapshot URL for the rendered ad. COVERAGE IS NOT UNIVERSAL: the Ad Library holds all ads only in the EU and only political and issue ads elsewhere, so a commercial advertiser outside the EU is legitimately absent and every row carries a coverage note saying what the search could have found. Requires the caller's own Meta app access token, as the metaAccessToken argument or the META_ACCESS_TOKEN environment variable. Use it to check whether a company advertises on Facebook and Instagram right now or to pull a creative history; each call is a point in time read, so monitoring means calling it on a schedule and comparing rows. Not for organic posts or follower counts, which the brand presence mappers cover. Impressions and spend exist for political ads only and arrive as bands, so a null there is not zero spend. Read only; requires an APIFY_TOKEN and consumes Apify credits per call.

輸入參數maxAdsad_typeskipCachemedia_typecompany_namecompany_domainmax_charge_usdmetaAccessTokenad_active_statusad_reached_countries

版本歷史

5
  1. v1.2.1最新Nov 5, 2026
  2. v1.2.0Oct 16, 2026
  3. v1.1.1Oct 6, 2026
  4. v1.1.0Oct 6, 2026
  5. v1.0.1Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分