Chat with your data over MCP

Connect Brandsearch to Claude, ChatGPT, Cursor, and any other AI tool that speaks MCP — then just ask, in plain English, anything about your competitors and your market. No dashboards, no exports, no code.

brandsearch · connected

Show me Gymshark’s top-spending Meta ads this year

get_brand_summarygymshark.com

Gymshark has about 1,600 active Meta ads. The top spender is a video campaign at €25k EU spend — here are the top 10, with creatives and links.

Connect your AI

It takes about two minutes, and it works the same way everywhere: paste one URL, sign in once.

https://api.brandsearch.co/v1/mcp

That single URL works in every tool. You sign in with OAuth from inside the AI — once — and stay connected for 30 days, with no API keys to manage. Pick your tool below to see the exact steps.

Other MCP clients

Any client that supports remote MCP servers over HTTPS will work. Point it at the MCP URL above and follow the OAuth prompt.

The server speaks both the 2025 protocol revision and the newer 2026-07-28 one. Existing integrations keep working exactly as before; clients on the newer revision get stateless requests, so there is no handshake to keep alive and no need to pin a connection.

For Claude Desktop, Cursor, Gemini, and any CLI that takes a JSON config, the entry looks like:

mcp config

{
  "mcpServers": {
    "brandsearch": {
      "url": "https://api.brandsearch.co/v1/mcp"
    }
  }
}

What you can ask

Once connected, just talk to your AI normally. The AI picks the right tool and arguments automatically.

Brands

“Find DTC beauty brands with 1M+ monthly visits and active Meta ads”

Meta ads

“Show me Gymshark's top 10 highest-spending Meta ads from 2025”

Brand profile

“Compare Allbirds and Gymshark — give me a summary of each brand”

TikTok posts

“Discover trending TikTok posts in the Pet Supplies niche”

Aggregates

“Get the dashboard for Glow Recipe's Meta ads — funnel, CTAs, top countries”

Products

“List the bestsellers for allbirds.com — title, price, and URL”

Account

“How many requests do I have left today?”

System

“Is today's Meta ads data ready yet?”


Available tools

The MCP server exposes 60+ tools. They map 1:1 to the API endpoints documented elsewhere in this site, with sensible defaults so the AI doesn't have to know every parameter.

Every tool is labelled as read-only or as a write, so your AI client can let the read-only ones run freely and ask before the eight that change your folders or your mobile feed, or spend AI credits: create_folder, add_to_folder, rename_folder, delete_folder, remove_from_folder, remove_from_mobile_feed, analyze_ad and transcribe_ad.

Brands

  • Name
    search_brands
    Type
    tool
    Description

    Filter brands by niche, monthly visits, Meta or Google ad activity, storefront status, e-commerce platform, product count, apps, payment methods, or technologies.

  • Name
    discover_brands
    Type
    tool
    Description

    Random sample of trending brands. The right tool for "show me brands" / "give me examples".

  • Name
    get_brand
    Type
    tool
    Description

    Full details for a brand by domain (e.g., gymshark.com).

  • Name
    get_brand_by_url
    Type
    tool
    Description

    Full details for a brand by full website URL.

  • Name
    get_brands_by_ids
    Type
    tool
    Description

    Batch fetch up to 100 brands by ID.

  • Name
    lookup_brand
    Type
    tool
    Description

    Free-form search by brand name, domain, or social handle.

  • Name
    lookup_brands_batch
    Type
    tool
    Description

    Batch look up to 50 identifiers in one call.

  • Name
    query_brands
    Type
    tool
    Description

    Same as search_brands but takes a JSON filter body. Use when filters get long.

  • Name
    get_brand_summary
    Type
    tool
    Description

    Profile + active Meta ads + products in a single call. Best for "tell me about X".

  • Name
    get_brand_advertisers
    Type
    tool
    Description

    The Facebook/Meta pages running ads for a brand.

Ads & posts

  • Name
    get_brand_ads
    Type
    tool
    Description

    Ads or posts for a specific brand on meta, tiktok, or instagram.

  • Name
    search_meta_ads
    Type
    tool
    Description

    Search every Meta ad we track by copy, spend, reach, targeting, dates.

  • Name
    search_tiktok_ads
    Type
    tool
    Description

    Search every TikTok post by description, engagement, duration.

  • Name
    search_instagram_posts
    Type
    tool
    Description

    Search every Instagram post by caption, hashtags, engagement.

  • Name
    query_meta_ads
    Type
    tool
    Description

    JSON-body counterpart of search_meta_ads.

  • Name
    query_tiktok_ads
    Type
    tool
    Description

    JSON-body counterpart of search_tiktok_ads.

  • Name
    query_instagram_posts
    Type
    tool
    Description

    JSON-body counterpart of search_instagram_posts.

  • Name
    get_meta_ad
    Type
    tool
    Description

    Single Meta ad by ID.

  • Name
    get_tiktok_ad
    Type
    tool
    Description

    Single TikTok post by ID.

  • Name
    get_instagram_post
    Type
    tool
    Description

    Single Instagram post by ID.

  • Name
    get_meta_ad_by_meta_id
    Type
    tool
    Description

    Lookup a Meta ad by its Meta Ads Library numeric ID — the one in facebook.com/ads/library/?id=... URLs.

  • Name
    get_ad_by_url
    Type
    tool
    Description

    Cross-platform resolver: paste any Meta Ads Library, TikTok video, or Instagram post/reel URL — or a Brandsearch share link (app.brandsearch.co/ad/…) — and get back the matching ad/post (with a platform field for routing).

  • Name
    download_ad
    Type
    tool
    Description

    The ad's creative, inlined as a picture the model can actually see — so it can describe, compare, and critique creatives rather than just link to them. Takes platform (meta / tiktok / instagram / email), id, and media. A video ad comes back as its cover frame; media="video" instead reports the video's type, size, and a download URL. With platform="email" it returns the email's screenshot, so the AI can read the whole email.

  • Name
    analyze_ad
    Type
    tool
    Description

    AI creative breakdown of one ad or email — concept, angle, hook, audience, funnel stage, suggested tests. Costs AI credits (19 for a video, 14 for an image or an email); a previously generated analysis comes back free.

  • Name
    transcribe_ad
    Type
    tool
    Description

    What is said in a Meta video ad — timed speech segments, the opening hook line, the spoken language, and the duration. An existing transcript comes back straight away; otherwise one is produced, which can take a minute or more. Costs 1 credit per transcript returned. Image ads are refused with ad_not_video. See transcribe a video ad.

  • Name
    discover_meta_ads
    Type
    tool
    Description

    Random high-quality Meta ads.

  • Name
    discover_tiktok_ads
    Type
    tool
    Description

    Random viral TikTok posts.

  • Name
    discover_instagram_posts
    Type
    tool
    Description

    Random viral Instagram posts.

Emails

The newsletters, abandoned-cart flows, and sign-up emails brands send. See Emails.

  • Name
    discover_emails
    Type
    tool
    Description

    Random sample of marketing emails from trending brands — the default for open-ended requests like "show me email inspiration".

  • Name
    search_emails
    Type
    tool
    Description

    Search every email we track by subject and preview text, type, send date, and brand.

  • Name
    query_emails
    Type
    tool
    Description

    JSON-body counterpart of search_emails.

  • Name
    get_brand_emails
    Type
    tool
    Description

    One brand's emails, newest first.

  • Name
    get_email
    Type
    tool
    Description

    Single email by ID. Pair it with download_ad(platform="email") to see the email itself.

  • Name
    get_emails_aggregates
    Type
    tool
    Description

    Email count, type mix, the 50 brands sending the most, and emails per day and per weekday, over any slice.

Aggregates (dashboards)

  • Name
    get_brand_ads_aggregates
    Type
    tool
    Description

    Six-dimension Meta ads dashboard for a single brand (media mix, funnel, CTAs, demography, spend).

  • Name
    get_brand_posts_aggregates
    Type
    tool
    Description

    TikTok or Instagram dashboard for a single brand.

  • Name
    get_meta_ads_aggregates
    Type
    tool
    Description

    Meta ads dashboard across all brands matching a filter slice.

  • Name
    get_tiktok_ads_aggregates
    Type
    tool
    Description

    TikTok dashboard across all brands.

  • Name
    get_instagram_posts_aggregates
    Type
    tool
    Description

    Instagram dashboard across all brands.

Folders & boards

The user's Swipe folders (Saved Ads, Saved Advertisers, Tracked Brands) and boards are accessible from the AI. Every folder tool takes a folder_type of ads, brands, or spectre. All of them except get_folder_ads and get_folder_brands also take mobile_feed for the folders of the mobile feed; a mobile feed folder's posts are listed with get_mobile_feed and its folder_id. The AI can browse a user's saved collections, resolve them to full ad/brand records, create and rename folders, save and remove items, and delete folders — all without leaving the chat.

  • Name
    list_folders
    Type
    tool
    Description

    Paginated list of the user's folders for a given folder_type.

  • Name
    get_folder
    Type
    tool
    Description

    One folder's metadata and the IDs of its saved items. Ads folder items leave out the REST route's is_valid / scraped_at, which say nothing about whether an ad can be fetched: an item needs no processing first, and get_folder_ads looks each one up by its ad_id or, failing that, by its saved link. For mobile_feed, the folder alone; its posts come from get_mobile_feed with folder_id.

  • Name
    get_folder_ads
    Type
    tool
    Description

    Resolve an ads or spectre folder to full ad records (Meta / TikTok / Instagram, and emails saved to an ads folder). spectre folders also accept max_ads_per_brand, status, is_video, is_image, sort_by, sort_order.

  • Name
    get_folder_brands
    Type
    tool
    Description

    Resolve a brands or spectre folder to full brand records. Every saved item comes back as one row; the ones we can't match to a brand are flagged with _swipe.resolved: false instead of being dropped.

  • Name
    get_board
    Type
    tool
    Description

    Get a board and its linked directories by ID.

  • Name
    create_folder
    Type
    tool
    Description

    Create a new folder for the user. Takes folder_type and a name (1-100 chars; 1-50 for mobile_feed, which also takes a platform: instagram by default, or facebook).

  • Name
    add_to_folder
    Type
    tool
    Description

    Save an item to a folder. Per kind: ads → ad_id + type (one of meta/tiktok/instagram) for an ad found through any other tool, or url + type for one that isn't in our catalogue; brands → brand_id (a domain; a Meta page ID also works); spectre → brand_id or the brand's url on its own, or url + page_id for Meta Ads Library mode. mobile_feed → post_id, a post from get_mobile_feed. Idempotent: re-saving the same item just attaches it to the additional folder and returns already_in_folder: true.

  • Name
    rename_folder
    Type
    tool
    Description

    Rename a folder. Takes folder_type, folder_id, and a new name (1-100 chars; 1-50 for mobile_feed). Works on a folder the user owns or has edit access to; a duplicate name returns swipe_folder_name_taken.

  • Name
    delete_folder
    Type
    tool
    Description

    Delete a folder (owner only). Takes folder_type and folder_id. Removes the folder and its item links; the saved ads/advertisers/brands themselves are kept, and a mobile_feed folder's posts stay in the feed.

  • Name
    remove_from_folder
    Type
    tool
    Description

    Remove a saved item from a folder without deleting the item itself. Takes folder_type, folder_id, and item_id (the saved_ad_id / saved_advertiser_id / tracked_brand_id from get_folder, or a post's id for mobile_feed). Idempotent: removing an absent item returns already_removed: true.

Mobile feed

The posts the user forwarded to Brandsearch from the Instagram or Facebook app (see Mobile feed), so the AI can read them and sort them into folders. Reading and removing posts works on any plan; the feed's folders and filing need a paid plan, as in the app.

  • Name
    get_mobile_feed
    Type
    tool
    Description

    The user's posts, newest received first, with the same filters as the API: platform, type (reel / post), media_format, folder_id, q, received_from, received_to, received_after, sort_by, sort_order. Free.

  • Name
    remove_from_mobile_feed
    Type
    tool
    Description

    Take a post out of the user's feed, like Remove from feed in the app. Takes post_id.

Products & metadata

  • Name
    search_products
    Type
    tool
    Description

    Search the Product Library across every brand: one card per market (all the stores selling the same product count once). Filter by text (q), niche, product_type, source (shopify = has ads, tiktok_shop), price, stock, ad counts, first/last advertised dates, est_revenue_min_usd, sellers_min / sellers_max and market_country (EU and UK only). Sort by est_revenue (the default), relevance (the default when q is given), newest, ads, active_ads, ads_30d, daily_spend, sellers, price_asc / price_desc or tiktok_shop_plays. Each card's revenue is a monthly band, and revenue.scope says whether it is the store's or the whole market's. 1 credit per product returned.

  • Name
    get_product
    Type
    tool
    Description

    One product in full by the id of a product card: price, ads, market, the revenue band, plus its audience, the top 5 stores selling it, its TikTok Shop footprint and whether a supplier match exists. 1 credit.

  • Name
    get_product_by_url
    Type
    tool
    Description

    The same, from a storefront product URL pasted as copied (query string, www., collection or locale prefix all resolved), including a Meta ad's landing page (creative.link_url, shown as Landing page: in the ad's summary). 1 credit.

  • Name
    get_products_by_urls
    Type
    tool
    Description

    Up to 20 product URLs at once: found product cards in the order of the URLs, not_found the misses. 1 credit per product found.

  • Name
    get_product_ads
    Type
    tool
    Description

    The Meta ads promoting a product and the stores we matched as selling it (as on its Ads tab in the dashboard), newest first, 10 per page (5 pages at most). Each ad's id works with get_meta_ad and download_ad. 1 credit per ad returned.

  • Name
    get_product_sellers
    Type
    tool
    Description

    Every store selling a product, most active ads first, at most 50: price in USD (none for a store whose listing we cannot read), ads, and which row is the product's own store. 25 per page; 1 credit per store returned.

  • Name
    get_product_trend
    Type
    tool
    Description

    A product's ad activity day by day over the last days days (1-90, default 30): the store's ads (total, active, started in the last 30 days, estimated daily spend) and its market's (stores advertising, estimated daily spend). Shows whether its advertising is growing or slowing, not its sales. 1 credit; a product with no recorded activity returns an empty list, free.

  • Name
    get_product_sourcing
    Type
    tool
    Description

    The 1688 supplier matched to a product and its unit economics: unit and bulk cost, MOQ, estimated shipping, gross margin (before shipping and payment fees), markup, break-even ROAS and CPA (which take them into account), a verdict and up to 3 alternative listings. Only for products whose sourcing_available is true. 1 credit; a product with no match costs none.

  • Name
    get_product_creative_insights
    Type
    tool
    Description

    How a product's market advertises it, from the AI analysis of its Meta ads: per facet (hook, angle, funnel stage, awareness level, pain, audience, motivation, tone, strategy pattern), the five most common values and their shares. 1 credit; a product none of whose market's ads has been analysed (most of the library), or whose analyses show nothing, costs none.

  • Name
    get_product_audience
    Type
    tool
    Description

    Who a product's market reaches with its EU/UK Meta ads, as shares: women and men, each age band by gender, and the 15 leading countries. 1 credit; a product whose market disclosed no reach (about half the library) costs none.

  • Name
    get_similar_products
    Type
    tool
    Description

    Products that look like a given one (image similarity), from other markets, closest first; limit 1-20 (default 10). 1 credit per product returned.

  • Name
    download_product_image
    Type
    tool
    Description

    The product's picture itself, inline, so the AI can look at it — fetching image_url directly usually fails. size is compact (default, at most 800 px wide) or full. 1 credit; a product whose image we do not hold costs none.

  • Name
    get_market
    Type
    tool
    Description

    Every store selling one product — its market — best first, 50 per page with a cursor. Pass a product card's market.id. history=true adds the market's daily series (advertisers, estimated spend). 1 credit per seller returned.

  • Name
    get_products
    Type
    tool
    Description

    One brand's own catalogue (to find products across brands, use search_products). product_type can be all, bestsellers (ranked, best first) or latest (newest first). created_from / created_to keep only products added to the store in that window — handy for "what has this brand launched lately?".

  • Name
    get_facet
    Type
    tool
    Description

    Canonical reference values (e.g., apps, technologies, niches, country-codes). Use when you need to know the valid values for a filter.

  • Name
    get_usage
    Type
    tool
    Description

    Current API usage + remaining daily/monthly quota.

  • Name
    get_ai_credits
    Type
    tool
    Description

    The account's AI-credit balance — what analyze_ad spends from.

  • Name
    whoami
    Type
    tool
    Description

    Which account the connection is bound to — user, email, the API key in use, team leader, quota ceilings, the permissions granted to the session, and how many folders of each type it can see. The first thing to ask when the AI sees different folders than the dashboard does. If it reports account_link_broken, your folders are safe but unreachable: disconnect and reconnect the Brandsearch connector to fix it. Unmetered.

  • Name
    get_system_freshness
    Type
    tool
    Description

    Latest timestamps for brands, Meta ads, TikTok posts, and Instagram posts. "How up to date is the data?"


Rate limits

The MCP endpoint has its own rate limits separate from the REST API. If your AI hits them, it will get a 429 too_many_requests response with a Retry-After header — the AI will typically retry after the suggested wait. Underlying tool calls still count against your normal API quota; check it any time with the get_usage tool.


Inactive accounts

If your Brandsearch account is no longer active, for example because its subscription has ended, every tool call fails with an error saying so. For a team account, the same happens while the team leader's account is inactive. There is nothing to reconnect: as soon as the account is reactivated, the same connection works again.


Tips for getting good results

  • Use discover_brands for vague prompts. "Show me some cool DTC brands" should hit discover_brands, not search_brands with no filters.
  • Use get_brand_summary over chained calls. It bundles profile + ads + products in one round trip.
  • Use get_facet to validate values before filtering. If the AI is unsure whether Klaviyo is the canonical app name, it can call get_facet("apps") first.
  • Use query_* over search_* for long filter sets. JSON body avoids querystring length limits and keeps arrays clean.
  • Use search_products to find products, get_products for one brand's catalogue. "Best-selling supplements under $40" is a search_products call with niche and price_max_usd.
  • Use download_ad to actually look at a creative. Asking the AI to fetch an image_url itself usually fails — media hosts are often blocked on the AI's side. download_ad hands it the picture directly.

Was this page helpful?