AdSwipeFile

Bibliothèque de publicités Facebook et Instagram performantes pour les agents IA : découvrez les publicités diffusées par vos concurrents, trouvez des publicités par niche et par format, et consultez leurs accroches et leurs angles.

Serveur MCP hébergé

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

S’installe dans Claude Code, Codex, Cursor et plus

Documentation

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, list_formats, list_visual_formats and list_hooks) 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, or by the standard tags: visual_format (list_visual_formats), hook (the hook tactic, list_hooks), season and offer_type. Ads the library has not tagged yet never match a tag filter. 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, its standard tags (visual formats, hook tactic, hook line, asset type, offer type, season, talent; null when not tagged yet), 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: the values of list_ads format. The standard visual formats are in list_visual_formats.
  • list_visual_formats (List visual formats): Every standard visual format (testimonial, screen recording, us vs them, …) that ads in the library carry, with a one-line description. An ad has up to three. Pass a slug to list_ads as visual_format.
  • list_hooks (List hook tactics): Every hook tactic (curiosity, social proof, myth busting, …) that ads in the library carry, with a one-line description: the device the first frame or the headline uses to earn attention. Pass a slug to list_ads as hook.
  • 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.