AdSwipeFile

Ad library of winning Facebook and Instagram ads for AI agents: see what a competitor is running, find ads by niche and format and read their hooks and angles.

Gehosteter MCP-Server

npx add-mcp 'https://adswipefile.com/api/mcp'

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

Use AdSwipeFile from your AI assistant (MCP)

Connect the AdSwipeFile MCP server to Claude, ChatGPT or Cursor: your agent searches winning ads, reads their copy (Starter and Growth) and lists your saved ads. Read-only, free, and you sign in with your AdSwipeFile account: there is no API key.

Server URL

https://adswipefile.com/api/mcp

Streamable HTTP. OAuth 2.1 with dynamic client registration: your client registers itself, then you sign in once (email link or code, or Google) and approve read access. Discovery documents: https://adswipefile.com/.well-known/oauth-protected-resource and https://adswipefile.com/.well-known/oauth-authorization-server. Server card: https://adswipefile.com/.well-known/mcp.json.

Add it

  • Claude: Open Settings → Connectors → Add custom connector. Name it AdSwipeFile, paste the server URL and click Add. Click Connect, sign in with your account and approve.
  • ChatGPT: Open Settings → Apps & Connectors → Advanced settings and turn on Developer mode. Back in Apps & Connectors, click Create, paste the server URL and choose OAuth. Sign in with your account and approve.
  • Claude Code: Run in your terminal: claude mcp add --transport http adswipefile https://adswipefile.com/api/mcp. Then run /mcp in Claude Code and sign in.
  • Cursor: Add to ~/.cursor/mcp.json (or your client's MCP config): { "mcpServers": { "adswipefile": { "url": "https://adswipefile.com/api/mcp" } } }. Then sign in when Cursor prompts you.
  • Codex: Run in your terminal: codex mcp add adswipefile --url https://adswipefile.com/api/mcp. Then run codex mcp login adswipefile and sign in.
  • Gemini CLI: Add to ~/.gemini/settings.json: { "mcpServers": { "adswipefile": { "httpUrl": "https://adswipefile.com/api/mcp" } } }. Then run /mcp auth adswipefile and sign in.
  • Hermes: Add to ~/.hermes/config.yaml: mcp_servers: { adswipefile: { url: https://adswipefile.com/api/mcp, auth: oauth } }. Then sign in in the browser window Hermes opens on first connect (or run hermes mcp login adswipefile).
  • OpenClaw: Add to ~/.openclaw/openclaw.json, so every channel gets the tools: { "mcp": { "servers": { "adswipefile": { "url": "https://adswipefile.com/api/mcp", "transport": "streamable-http" } } } }. AdSwipeFile signs in through OAuth in a browser and issues no API keys, so an OpenClaw gateway that runs without a browser cannot connect yet.

Allowance and ad copy

Every MCP tool call (except list_niches and list_formats) and every /api/v1 request counts against the account's allowance (UTC): 50 a day on Free, 10,000 a month on Starter, 50,000 a month on Growth. Past it, the API answers 429 with the code quota_exceeded and Retry-After set to the reset (UTC: the next midnight on Free, the first of next month on Starter and Growth), and MCP tools answer with a message instead of results; both say when the allowance resets and how to raise it, with the link. On Free, get_ad returns the ad without its copy, plus a line saying the plan does not include it. See pricing.

Rate limit

120 tool calls a minute per account, over a sliding window, apart from the allowance. A response to a tool call carries the RateLimit headers; past the limit the answer is HTTP 429 with a JSON-RPC error and Retry-After in seconds.

Tools

  • search_library (Search the library): Find real Meta (Facebook and Instagram) ads for ad inspiration, hooks, angles, competitor research or a swipe file. Keyword search across ads, brands, niches and formats. Matches whole words in each ad's copy and in a description of its visual (so "screenshot" or "before after" work); only ads holding every word come back when there are any, else ads holding some (match says "all", "partial" or "none", with a hint). Use 1–3 English product or format words; long phrases match little. Returns each hit's type, slug or id, and page URL. Start here when you have a product, brand or idea rather than an exact slug; when match is "none", follow the hint: it names a matching niche or format, or says the library has nothing on it.
  • list_ads (List ads): Browse real ads, newest first, optionally filtered by brand (a competitor's ads), niche and format slug. Without a brand filter a page keeps a few ads per brand so one advertiser cannot fill it; filter by brand for all of one brand's ads. Ads tracked on Meta carry run (started, last_seen, running, days_running, landing_page); sort: "longest_running" lists those by the longest run, the usual proxy for an ad worth studying (it is not performance data). Paginate with the returned nextCursor.
  • get_ad (Get an ad): One ad in full: copy (on plans without ad copy, a line saying it is not included), audiences, brand, niche, formats, image URL, page URL, and run (Meta start date, last day seen, running, days running, landing page) when the ad is tracked on Meta.
  • list_brands (List brands): Every brand in the library, optionally only one niche's. Each brand comes with updated: the day (YYYY-MM-DD) its Meta ads were last checked for new ones, or null when they have not been.
  • list_niches (List niches): Every niche (industry) ads are filed under.
  • list_formats (List formats): Every ad format (UGC, before/after, testimonial, …) ads are tagged with.
  • list_saved_ads (List my saved ads): The ads you saved on the site, newest first.
  • list_followed_ads (List new ads from brands I follow): The brands and Facebook pages you follow on the site, and their newest Meta ads, newest launch first: competitor ads as they go live. Each followed brand comes with its library slug when it has one (use it with list_ads for its filed ads) and its tracking page URL. Empty when the account follows nothing; the result then says where following is set up.

Starter prompts

Ready-made prompts (MCP prompts/list; in Claude, the + menu of a chat):

  • ads-for-my-niche (Winning ads in my niche): What's working in a niche right now: its newest ads, optionally in one format, with the hooks and angles they share.
  • swipe-a-brand (What ads is this brand running?): A competitor's ads in the library: the formats, hooks and angles it repeats, with links.
  • hooks-for-my-product (Hooks for my product from winning ads): Hooks for your product, each learned from a real winning ad in the library.
  • map-competitors (Compare my competitors' ads): Several competitors' ads side by side: formats, offers, hooks and angles, and the angles nobody runs yet.