MCP server
A Meta Ads MCP server for the Facebook Ad Library
By Jackson Gathondu. Published 1 November 2026. Updated .
Connect the ShortsIntel MCP server to Claude, ChatGPT, Claude Code, Codex or Cursor and your Assistant can search the Meta Ad Library: the public record of Ads running on Facebook, Instagram, Messenger, Threads and the Audience Network. It can sort Ads by how long they have run, read an Advertiser's whole account, analyse a creative's hook and offer, and track a competitor so you hear when they launch new Ads.
It reads the public library only. It does not connect to your Meta ad account, so it cannot see your campaigns, spend or results, and it cannot change anything in Ads Manager.
What your Assistant can do with Meta Ads
Each use case below is one or two tool calls. You ask in plain language and the Assistant picks the tools.
- Search Ads by keyword or by Advertiser, filtered by country, status (running or stopped), kind (commercial, political or issue), media type, placement and start date.
- Sort a page of results by relevance, winner Score, days running or start date. The winner Score runs from 0 to 100 and comes from how long an Ad has run and how many variants the Advertiser added, compared with that Advertiser's other Ads.
- Read one Ad in full: copy, call to action, landing page, media files, dates, placements, countries and variant count.
- Read an Advertiser by Facebook Page id: name, Page, linked Instagram account and how many Ads are running out of how many in total.
- Get an analysis of an Ad. For a video Ad that means the transcript, hook, call to action and format. For an image or carousel Ad it means the copy angle, offer, visual format and topics.
- Track an Advertiser daily and get a Change Report when it starts or stops Ads, adds variants, or moves into new countries or placements.
The tools that work on the Meta Ad Library
Every paid tool can quote its price first if you ask for an estimate. Nothing is charged for an id that is not found.
| Tool | What it does on Meta | Price |
|---|---|---|
| search_ads | Searches the library by keyword or Advertiser with the filters above. Up to 500 Ads a call, 50 by default, with a cursor for the next page. Each Ad is stored with a Snapshot. | 1 credit per Ad delivered. With analysis on, 20 credits more per Ad, for the first 50. |
| get_ad (one Ad) | Reads one Ad by its Ad Library id. An Ad Meta has since removed still comes back from our stored copy. | 3 credits. With analysis, 20 credits more. |
| get_ad (Advertiser) | Reads an Advertiser by Facebook Page id after reading all of its Ads. | 15 credits |
| track | Starts a daily Advertiser Tracker. The first cycle runs straight away. | 30 credits per daily cycle. With analysis, 20 credits more per new Ad. |
| get_changes | Reads the Change Reports your Trackers wrote: new Ads, stopped Ads, Ads with more variants, new countries or placements. | Free. |
| list_trackers, get_tracker, set_tracker_state, delete_tracker | Lists, reads, pauses, resumes and removes Trackers. | Free. |
Data limits
Data limits on Meta Ads
- The server reads only what the public Meta Ad Library shows. It never sees results from an ad account, such as clicks, conversions or return on ad spend.
- Spend, impressions and audience come back only when Meta discloses them. For most commercial Ads Meta does not, so those fields are empty: they were empty for every Ad in the sample below.
- Keyword search matches the words in an Ad, so results can include Ads that are off topic. A search for protein powder returned a pet health Ad among its top ten.
- Ad analysis covers the first 50 Ads of a search. Analyse the rest one at a time with get_ad.
- Snapshot history starts on the day ShortsIntel first stores an Ad, so an Ad seen for the first time today has a single Snapshot.
- The winner Score is marked low confidence when an Advertiser has few Ads to compare against.
- The same tools also read the TikTok Ad Library, which covers Ads shown in the EU/EEA, the UK, Switzerland and Turkey only, without country filters or Ad analysis.
Sample output: Meta Ads for protein powder, sorted by winner Score
Real responses from the ShortsIntel MCP server on our own account, trimmed to fit. The search asked for ten US Ads, running or stopped, sorted by winner Score, and cost 10 Credits. Three of the ten Ads are shown, with media links and some fields removed.
Meta Ad Library, via MCP server
search_ads { "library": "meta", "query": "protein powder", "country": "US", "status": "all", "order_by": "winner", "limit": 10 }
{
"run": { "kind": "ads_search", "status": "completed", "charge_credits": 10 },
"result": {
"library": "meta",
"items": [
{
"id": "1670281184161995",
"advertiser": { "name": "ProDough Shop" },
"creative": { "title": "Best Protein For Protein Yogurt", "cta": "Shop now", "format": "VIDEO" },
"media_type": "video",
"is_active": true,
"first_shown": "2026-05-18T07:00:00.000Z",
"days_running": 167,
"variant_count": 3,
"placements": ["FACEBOOK", "INSTAGRAM", "AUDIENCE_NETWORK", "MESSENGER", "THREADS"],
"winner_score": {
"score": 50,
"inputs": { "days_running": 167, "variants_added": 0, "advertiser_ads": 2 },
"reason": "few_advertiser_ads",
"confidence": "low"
},
"reach": { "spend": null, "audience": null, "impressions": null }
},
{
"id": "1115876906674269",
"advertiser": { "name": "Unjury- Medical Quality Protein" },
"creative": { "title": "High Quality Protein Powder", "cta": "Shop now", "format": "VIDEO" },
"first_shown": "2024-12-12T08:00:00.000Z",
"days_running": 689,
"winner_score": { "score": 50, "reason": "few_advertiser_ads", "confidence": "low" }
},
{
"id": "1694952298821099",
"advertiser": { "name": "Just Ingredients Shop" },
"creative": { "title": "Just Ingredients Protein Powder", "cta": "Shop now", "format": "VIDEO" },
"first_shown": "2026-10-08T07:00:00.000Z",
"days_running": 24,
"winner_score": {
"score": 15,
"inputs": { "days_running": 24, "variants_added": 0, "advertiser_ads": 5 },
"confidence": "high"
}
}
],
"next_cursor": "eyJjIjoi..."
}
}
(10 Ads in all; positions 4, 9 and 10 shown)Meta Ad Library, via MCP server
tools/list, the get_ad entry: the description your Assistant reads before it looks up one Ad or Advertiser
{
"name": "get_ad",
"title": "Get an Ad or Advertiser",
"description": "Look up one Meta Ad by its Ad Library id (library_id), one Advertiser by its Facebook Page id (page_id), ... Ad mode: copy, CTA, landing URL, media URLs, dates, running state, placements, countries, variant count, days running, disclosed spend and reach (3 credits, ...). An Ad Meta has removed is still returned from our stored copy with removed_from_library: true at 3 credits; an id never seen is not_found and costs nothing. analyze=true adds Ad analysis (+20 credits, computed or already stored). ... Advertiser mode: the Advertiser's profile (name, Page URL, linked Instagram account and Creator when Meta shows one, running and total Ad counts) after reading all its Ads, at 15 credits ..."
}How to read the results
Start with days running. Advertisers rarely keep paying for an Ad that loses money, so an Ad that has run for months is usually working. The winner Score also counts whether the Advertiser kept making new variants of the Ad.
The Score compares an Ad with the same Advertiser's other Ads, so a brand with only a few Ads gets a low confidence Score. In the sample, a protein powder Ad running for 689 days and one running for 167 days both scored 50 with low confidence, because neither Advertiser had many other Ads to compare with. Sort by days running when you want the raw age instead.
A search that fails because the library is down costs nothing. A Run that fails costs nothing, and a partial one is charged only for what finished.
Connect your Assistant
Meta Ads come with the same server as every other Platform, so there is nothing extra to install. None of the Assistants needs an API key: you sign in to ShortsIntel and choose which organization's Balance pays.
Claude.ai
Web and desktop. No API key: Claude signs in to ShortsIntel for you.
- Open Claude's add connector page with ShortsIntel filled in, and choose Add. Or go to Settings, Connectors, Add custom connector, and paste the endpoint below.
https://www.shortsintel.com/api/mcp - Sign in to ShortsIntel, approve the connection and choose the organization whose Balance pays for Runs.
- In a chat, turn the ShortsIntel connector on and ask your question.
ChatGPT
Web and desktop, in Developer mode. No API key: ChatGPT signs in over OAuth.
- Open ChatGPT's connector settings and switch Developer mode on.
- Create a connector named ShortsIntel, paste the endpoint and choose OAuth.
https://www.shortsintel.com/api/mcp - Sign in to ShortsIntel and choose your organization.
- In a new chat, choose the + next to the message box, then Developer mode, and turn ShortsIntel on.
Claude Code
One command, then sign in from Claude Code.
- Add the server in your terminal.
claude mcp add --transport http --scope user shortsintel https://www.shortsintel.com/api/mcp - Run /mcp inside Claude Code, choose shortsintel and sign in.
Codex
One command; Codex signs in on first use.
- Add the server in your terminal.
codex mcp add shortsintel --url https://www.shortsintel.com/api/mcp - If no browser window opens to sign in, start it yourself.
codex mcp login shortsintel
Cursor and VS Code
One-click install links; each asks you to confirm.
- In Cursor, open the Cursor install link.
- In VS Code, open the VS Code install link.
- Sign in to ShortsIntel when the editor asks.
Prompts to try
Add "give me an estimate first" to any of these if you want to see the price before the Assistant spends Credits.
- Find 20 Meta Ads for protein powder in the US that are still running, sorted by days running, and list their hooks and offers.
- Look up this Advertiser on the Meta Ad Library and tell me how many Ads they are running and what formats they use: (paste a Facebook Page link)
- Search the Meta Ad Library for meal kit Ads that started after September 1 and analyse the top ten. What angles keep coming up?
- Track this competitor's Meta Ads and tell me each week what they launched and what they stopped: (paste a Facebook Page link)
- Read this Ad and write three new versions of its hook for my brand: (paste an Ad Library link)
Other Platforms on the same server
The server also reads TikTok, Instagram Reels, YouTube and Facebook Videos, so you can set a competitor's Ads next to their organic posts in the same chat. The MCP server overview lists what works on each Platform, and the pricing page has every price.
Questions
- What is a Meta Ads MCP server?
- It is an MCP server that gives an Assistant such as Claude or ChatGPT tools to search and read the Meta Ad Library. The Assistant can find Facebook and Instagram Ads by keyword or Advertiser, sort them by how long they have run, analyse their creatives and track competitors, all from the chat.
- Is this the same as a Facebook Ads MCP?
- Yes, for research. Facebook Ads are listed in the Meta Ad Library along with Ads on Instagram, Messenger, Threads and the Audience Network, and the server searches all of them. It does not connect to Ads Manager, so it cannot read or change your own campaigns.
- Can it see how much an Ad spent?
- Only when Meta discloses it. Spend, impressions and audience fields come back empty for most commercial Ads, because the public library does not show them.
- How much does a Meta Ad search cost?
- 1 credit per Ad delivered, so a search for 50 Ads costs 50 Credits. Analysis adds 20 credits per Ad. Ask your Assistant for an estimate to see the price before it runs.
- Which Assistants can use it?
- Claude.ai, ChatGPT in Developer mode, Claude Code, Codex, Cursor and VS Code, plus any client that can add a remote MCP server at https://www.shortsintel.com/api/mcp.
- Can it track a competitor's new Meta Ads?
- Yes. Ask the Assistant to track the Advertiser. A Tracker reads all of the Advertiser's Ads once a day and writes a Change Report when it starts or stops Ads, adds variants, or moves into new countries or placements.
Try it in your Assistant
Connect ShortsIntel to the Assistant you already use and ask the question this guide answers, or try the calls in the Playground first.