MCP

Brandsearch ships an MCP server so any AI tool that speaks the protocol — Claude Desktop, Cursor, ChatGPT (custom GPTs), Windsurf, Copilot, and more — can search brands, ads, products, and analytics directly from the chat.


Endpoint

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

Authentication is via OAuth. Sign in once from the AI tool and it stays connected for 30 days — no manual API key management on the client side.


Every tool uses the same MCP URL — https://api.brandsearch.co/v1/mcp — and the same OAuth sign-in. Copy it once and follow the steps for your tool below.

  1. 1Click the button below to open Claude's connector settings.
  2. 2Click 'Add custom connector' and paste the MCP server URL above.
  3. 3Authorize Brandsearch when Claude prompts you.

ChatGPT

  1. 1Open chatgpt.com and sign in.
  2. 2Click your profile → Settings → Advanced and enable Developer Mode.
  3. 3Go to Settings → Connectors → Create, then paste the MCP URL above.
  4. 4Authorize Brandsearch when prompted.
  1. 1Click the button below to open Perplexity's connector settings.
  2. 2Add a new MCP connector and paste the MCP server URL above.
  3. 3Authorize Brandsearch when prompted.

Cursor

  1. 1Open Cursor on your computer.
  2. 2Go to Settings → Tools & MCP (or Tools & Integrations).
  3. 3Click 'Add new MCP server' and paste the MCP URL above.
  4. 4Or edit ~/.cursor/mcp.json directly if you prefer.

Copilot

  1. 1Open VS Code with the GitHub Copilot extension installed.
  2. 2Press Ctrl+Shift+P (or Cmd+Shift+P on macOS) to open the Command Palette.
  3. 3Run 'MCP: Open User Configuration' and add Brandsearch using the MCP URL above.

Gemini

  1. 1Open ~/.gemini/settings.json in your editor.
  2. 2Add a new MCP server entry pointing to the MCP URL above.
  3. 3Restart the Gemini CLI for the change to take effect.

Windsurf

  1. 1Open Windsurf on your computer.
  2. 2Go to Settings → Cascade → MCP Servers.
  3. 3Click 'Manage Plugins' and add a new server with the MCP URL above.

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.

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 Nike's top 10 highest-spending Meta ads from 2025

Brand profile

Compare Allbirds and Nike — 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 30+ 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.

Brands

  • Name
    search_brands
    Type
    tool
    Description

    Filter brands by niche, monthly visits, active Meta ads, product count, apps, 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., nike.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
    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.

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.

Products & metadata

  • Name
    get_products
    Type
    tool
    Description

    Products sold by a brand. product_type can be all, bestsellers, or latest.

  • 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_system_freshness
    Type
    tool
    Description

    Latest timestamps for brands, Meta ads, TikTok posts, and Instagram posts. "Is today's data ready?"


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.


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.

Was this page helpful?