loading…
Search for a command to run...
loading…
Searches and analyzes competitor ads and content across Meta, Google, Instagram, TikTok, and YouTube with AI-powered creative analysis and cross-platform brand
Searches and analyzes competitor ads and content across Meta, Google, Instagram, TikTok, and YouTube with AI-powered creative analysis and cross-platform brand discovery.
MCP server for searching competitor ads and content across Meta Ad Library, Google Ads Transparency Center, and Instagram. Zero auth required — all data sources are public.
| Tool | Platform | What it does |
|---|---|---|
resolve-company |
Cross-platform | Find a company using 5 parallel strategies: name search, domain lookup, keyword search, website scrape, and active ad count verification. Returns confidence-ranked matches. |
meta-search-ads |
Meta | Search ads by keyword or company page ID. Configurable limit (1-1000). |
meta-get-ad |
Meta | Full ad details: copy, carousel cards (per-card content), caption, video URLs, targeting, transcript, Ad Library link. |
google-search-ads |
List ads by domain or advertiser ID. Optional full details (headlines, descriptions, impressions, regions). | |
google-get-ad |
Full ad details: creative variations, OCR text, impression ranges, regional breakdown, Transparency Center link. | |
analyze-creatives |
Cross-platform | Batch Gemini AI analysis of images and videos: visual descriptions, text overlay extraction, full verbatim transcripts, messaging themes, hooks. |
ig-search-reels |
Search Reels by keyword, ranked by viral ratio (views / followers). BREAKOUT/STRONG/GOOD labels. | |
ig-get-profile |
Creator profile with top Reels sorted by views and viral ratio. | |
ig-get-transcript |
Transcribe a Reel via ScrapeCreators (Gemini AI fallback). | |
tiktok-search-videos |
TikTok | Search videos by keyword or #hashtag, ranked by viral ratio. Auto-detects hashtags. |
tiktok-get-profile |
TikTok | Creator profile with top videos ranked by views and viral ratio. |
tiktok-get-comments |
TikTok | Video comments sorted by likes. Optional keyword filter for finding audience pain points. |
youtube-search-creators |
YouTube | Search creators in a niche, ranked by median views/subscribers across surfaced videos. Returns subs, top videos, and view/like/comment engagement as % of subscribers. |
youtube-get-profile |
YouTube | Channel profile + top videos with views/likes/comments expressed as % of subscribers. Useful for benchmarking against audience size. |
# Clone and install
git clone https://github.com/superpower-growth/ad-library-mcp.git
cd ad-library-mcp
npm install
# Configure
cp .env.example .env
# Edit .env — add your ScrapeCreators API key (required)
# Optionally add Gemini API key for creative analysis
# Run
npm run dev
The most important tool — finds the right brand across platforms using a 2-phase approach that minimizes API credits.
Phase 1 (always runs, ~3 credits):
| Strategy | What it does | Cost |
|---|---|---|
| 1. Name search | Searches Meta companies + Google advertisers by brand name | 2 credits |
| 2. Domain lookup | Infers domain from name, searches Google by domain | 1 credit |
| 4. Website scrape | Fetches homepage, parses for Facebook page link | Free |
Phase 2 (only if Phase 1 result is ambiguous, +1-4 credits):
| Strategy | What it does | Cost |
|---|---|---|
| 3. Keyword search | Searches Meta ads for the domain in ad content — finds partner/influencer pages | 1 credit |
| 5. Ad count verify | Checks active ad count on top Meta pages — strongest signal | 1 credit each (up to 3) |
Caching: Results cached for 10 minutes. Second lookup for the same brand is instant (0 credits).
Credit efficiency by brand type:
| Scenario | Credits | Time |
|---|---|---|
| Well-known brand (e.g. Function Health, 110K likes) | 3 | ~2s |
| Ambiguous brand (e.g. Superpower, generic name) | 7 | ~8s |
| Cached lookup (any brand, within 10 min) | 0 | instant |
Results are confidence-ranked (high/medium/low). Active ad count is the tiebreaker — likes can be misleading (a 17K-like unrelated page vs a 3K-like brand with 240 active ads).
1. resolve-company query="<brand name>"
→ Confidence-ranked matches with Page IDs, Advertiser IDs, active ad counts
→ Also surfaces related pages (influencer/partner pages running ads to the same domain)
2. meta-search-ads page_id="<page_id>" limit=10
→ Newest ads with copy, format, CTA, carousel card count, and Ad Library links
3. meta-get-ad id="<ad_id>" get_transcript=true
→ Full ad detail: carousel cards with per-card content, caption, video transcript, targeting
4. google-search-ads domain="<domain>" get_ad_details=true
→ Headlines, descriptions, impressions, regions, landing pages, Transparency Center links
5. analyze-creatives creatives=[{url: "<image_or_video_url>", type: "video"}]
→ Batch AI analysis: visual descriptions, full verbatim transcript, messaging themes, hooks
→ Images: ~2-3s each (5 concurrent). Videos: ~15-50s each (2 concurrent). Cached per session.
6. ig-search-reels query="<keyword>"
→ Reels ranked by viral ratio (views / followers)
→ BREAKOUT (10x+), STRONG (3-10x), GOOD (1-3x)
7. ig-get-profile handle="<instagram_handle>"
→ Creator profile + top Reels sorted by views with viral ratio
8. ig-get-transcript url="<reel_url>"
→ Full verbatim transcript of a Reel
9. tiktok-search-videos query="<keyword>" or query="#hashtag"
→ Videos ranked by viral ratio (views / followers)
10. tiktok-get-profile handle="<tiktok_handle>"
→ Creator profile + top videos with viral ratio
11. tiktok-get-comments url="<video_url>" keyword="<optional_filter>"
→ Audience comments sorted by likes, filterable by keyword
12. youtube-search-creators query="<niche>" content_type="videos"
→ Creators ranked by median views/subscribers; top videos with engagement % per creator
13. youtube-get-profile handle="<channel_handle>"
→ Channel + top videos with views/likes/comments as % of subscribers
Once deployed, your team can add it with one command:
claude mcp add ad-library --transport http https://ad-library-mcp.fly.dev/mcp
Or add to .mcp.json:
{
"ad-library": {
"type": "http",
"url": "https://ad-library-mcp.fly.dev/mcp"
}
}
| Variable | Required | Description |
|---|---|---|
SCRAPECREATORS_API_KEY |
Yes | API key from scrapecreators.com |
GEMINI_API_KEY |
No | Google AI key for analyze-creatives tool. Get at aistudio.google.com |
GEMINI_MODEL |
No | Gemini model (default: gemini-2.5-flash) |
PORT |
No | Server port (default: 3002) |
fly launch
fly secrets set SCRAPECREATORS_API_KEY=your-key
fly secrets set GEMINI_API_KEY=your-key # optional
fly deploy
Выполни в терминале:
claude mcp add ad-library-mcp -- npx