MCP server

Give your AI agent ad and store intelligence

The SellWinners MCP server exposes our data as 73 tools. Point any MCP client at the endpoint, sign in from ChatGPT or Claude or add your API key, and your agent can search ads, inspect Shopify stores, search their products and pull creatives on its own.

  • Streamable HTTP
  • Sign-in for ChatGPT and Claude, or your API key
  • Shares your plan's credits
# Endpoint
https://mcp.sellwinners.com/mcp

# Transport
streamable HTTP

# Auth
OAuth sign-in (ChatGPT, Claude)
# or X-API-Key: YOUR_API_KEY
# or Authorization: Bearer YOUR_API_KEY
How it connects

Three steps to your first agent call

01

Sign in or create a key

Start free, then sign in from ChatGPT or Claude, or create a key in your dashboard. The Free plan includes the MCP server too: 150 credits a month, 10 requests a minute, the first 10 results of each search.

02

Add the server to your client

Paste the configuration below into Cursor, VS Code, Claude or any client with remote MCP support.

03

Ask your agent

Try “find the top video ads for running shoes this month”. Your agent picks the right tool by itself.

Setup

Set it up in your client

ChatGPT and Claude sign in; elsewhere, replace YOUR_API_KEY with a key from your dashboard.

No API key: these sign in with your SellWinners account.
The Free plan includes the MCP server too: 150 credits a month, 10
requests a minute, the first 10 results of each search.

1. In ChatGPT (an app or a connector in developer mode) or in
   Claude (Customize → Connectors → Add custom connector; on Team or
   Enterprise an Owner adds it and you select Connect),
   add this server URL:  https://mcp.sellwinners.com/mcp
2. Choose OAuth if asked. A SellWinners window opens:
   log in, then select Allow.
3. Ask: "Find the top video ads for running shoes this month".

Disconnect any time: Settings → MCP → Connected apps.
Tools

73 tools, ready to use

Open a tool to see the arguments it takes. Highlighted ones are required.

Discovery

3 tools
lookupResolve a brand name, a shop domain or a Facebook page id to ids you can use with the other tools
3 arguments
qtexttypetextlimitnumber
lookup_filter_idsIds for the filters of the search tools
7 arguments
typetextquerytextscope_tracked_pageslistscope_domaintextstatustextlimitnumbersnapshot_datetext
list_saved_viewsThe searches you saved on the website's list pages, ready for the search tools
1 argument
contexttext

Shops

17 tools
search_shopsSearch or browse Shopify stores
48 arguments
querytextmatch_modetextcountrytextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextcreation_countrytextcreation_countrieslistexclude_creation_countrieslistcreation_date_fromtextcreation_date_totextmin_active_adsnumbermax_active_adsnumbermin_monthly_visitsnumbermax_monthly_visitsnumbermin_products_countnumbermax_products_countnumberads_time_periodtexttraffic_growthlistads_growthlistvisitor_countrytextmain_market_countrieslistmarket_countrieslistexclude_market_countrieslistniche_idnumberlanguageslistcurrencieslisttheme_idslistpixel_idslistexclude_pixel_idslistshopify_app_idslistexclude_shopify_app_idslistis_shopify_plustrue / falsemin_trustpilot_ratingnumbermax_trustpilot_ratingnumbermin_trustpilot_review_countnumbermax_trustpilot_review_countnumbermin_monthly_salesnumbermax_monthly_salesnumbermin_units_soldnumbermax_units_soldnumberhas_tiktoktrue / falseexclude_currencieslistsocial_networkslistshopify_plantext
find_similar_shopsCompetitors of a shop (id or domain)
10 arguments
shoptextlimitnumbersort_bytextordertextoffsetnumberseasontextfiltersobjectmarkettextexclude_shopslistdetailtext
find_winning_productsProducts selling now in a niche
5 arguments
nichetextkeywordslistcountrytextmax_resultsnumberdetailtext
search_productsSearch or browse store products by price, sales, units sold, selling countries, ads, reach, reviews, launch date, currency or shop country
37 arguments
querytextsearch_intextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextshoptextshop_idtextmin_pricenumbermax_pricenumbermin_monthly_revenuenumbermax_monthly_revenuenumbermin_monthly_units_soldnumbermax_monthly_units_soldnumbermin_active_adsnumbermax_active_adsnumberads_launched_periodtextmin_ads_launchednumbermax_ads_launchednumbermin_ad_sharenumbermax_ad_sharenumbermin_eu_ad_spendnumbermax_eu_ad_spendnumbermin_ratingnumbermin_reviewsnumbersubscriptiontextpartnershiptrue / falseselling_countrieslistmain_selling_countrytextexclude_selling_countrieslistshop_countrieslistcurrencieslistmin_shop_monthly_visitsnumbermax_shop_monthly_visitsnumbershop_created_aftertext
search_products_by_imageFind store products that look like a picture (an image URL or the file), with their shops
12 arguments
image_urltextimage_base64textsort_bytextordertextmax_per_shopnumberfiltersobjectpagenumberlimitnumbersearch_idtextdetailtextoffsetnumbergroup_brandstrue / false
search_shops_by_imageFind the shops selling what a picture shows, with their closest products
7 arguments
image_urltextimage_base64textsearch_idtextlimitnumberoffsetnumbergroup_brandstrue / falseproducts_per_shopnumber
get_productOne product with its full sheet: photos, options and variants
2 arguments
product_idtexturltext
get_product_adsThe Meta ads that link to a product's page
5 arguments
product_idtextstatustextpagenumberlimitnumberdetailtext
analyze_productOne product, its latest ads and a read of its signals
3 arguments
product_idtexturltexttop_adsnumber
product_launch_radarProducts launched recently, ranked by sales or ad pressure
34 arguments
querytextdaysnumberrank_bytextlimitnumberfiltersobjectdetailtextshop_idtextmin_pricenumbermax_pricenumbermin_monthly_revenuenumbermax_monthly_revenuenumbermin_monthly_units_soldnumbermax_monthly_units_soldnumbermin_active_adsnumbermax_active_adsnumberads_launched_periodtextmin_ads_launchednumbermax_ads_launchednumbermin_ad_sharenumbermax_ad_sharenumbermin_eu_ad_spendnumbermax_eu_ad_spendnumbermin_ratingnumbermin_reviewsnumbersubscriptiontextpartnershiptrue / falseselling_countrieslistmain_selling_countrytextexclude_selling_countrieslistshop_countrieslistcurrencieslistmin_shop_monthly_visitsnumbermax_shop_monthly_visitsnumbershop_created_aftertext
create_product_share_linkCreate (or return) the public link to one product
2 arguments
product_idtextconfirmtrue / false
delete_product_share_linkRemove the public link to one product
2 arguments
product_idtextconfirmtrue / false
brief_competitorA compact brief on one competitor (shop id, domain or name)
11 arguments
competitortextsectionslistmax_productsnumbermax_emailsnumbermax_adsnumbershoptextad_rank_windowtextad_rank_sorttextmax_current_ranknumbermin_rank_deltanumbersnapshot_datetext
shop_reportOne report on a shop: its feed, its Facebook pages, Q4 season, a landing page, its ad ranking or its creative tests
19 arguments
shoptextreporttextyearnumberdate_fromtextdate_totexturltextadvertiser_idtextmodetextdaysnumberad_idslistdatetextas_oftextmedia_typetextstatustextkeywordslistsnapshot_datetextpagenumberlimitnumberdetailtext
compare_shopsOne figure of several shops side by side
3 arguments
shopslistmetrictextsnapshot_datetext
market_overviewThe whole market, day by day, or over a Q4 season
5 arguments
kindtextyearnumberdate_fromtextdate_totextlimitnumber
detect_shopify_storeWhether a store runs on Shopify, its theme and the Shopify apps it loads
1 argument
urltext

Ads and media

8 tools
search_adsSearch Meta (Facebook / Instagram) ads by words in the copy, brand or landing page
97 arguments
querytextkeywordslistmedia_typetextcountrytextstatustextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextcategory_idslistad_countriesobjectmain_countrieslistmin_traffic_growth_percentnumbertraffic_growth_periodtexttraffic_growthlistads_growthlistpage_reach_growthlistad_reach_growthlistad_languagetextlanguagetextad_languageslistctalistshopify_app_idslistexclude_shopify_app_idslistpixel_idslistexclude_pixel_idslisttheme_idslistcreated_aftertextcreated_beforetextlast_seen_aftertextlast_seen_beforetextmin_days_runningnumbermax_days_runningnumbermin_duplicatesnumbermax_duplicatesnumbermax_ad_ordernumberad_rank_modetextad_rank_basistextmax_ad_rank_valuenumbergrowth_ranklistrank_delta_windowtextmin_rank_deltanumbermin_description_lengthnumbermax_description_lengthnumbermin_video_durationnumbermax_video_durationnumbermin_reachnumbermax_reachnumberreach_periodtextmin_agenumbermax_agenumbersextextpartnerstrue / falsemin_trafficnumbermax_trafficnumbermin_active_adsnumbermax_active_adsnumbermin_productsnumbermax_productsnumbermin_best_seller_pricenumbermax_best_seller_pricenumberads_time_periodtextshop_created_aftertextshop_created_beforetextshop_creation_countriesobjectmarketobjectshopify_plustextmin_spendnumbermax_spendnumbercpmnumberspend_periodtextmin_spend_per_pagenumbermax_spend_per_pagenumberspend_per_page_periodtextmin_facebook_likesnumbermax_facebook_likesnumbermin_instagram_followersnumbermax_instagram_followersnumbermin_reach_per_pagenumbermax_reach_per_pagenumberreach_per_page_periodtexttechnologieslisttracked_pageslistmax_ads_per_brandnumbertrend_signaltextactive_onlytrue / falseexclude_formatslistexclude_ad_languageslistage_rangeslistexclude_age_rangeslistexclude_theme_idslistmin_page_ads_launchednumbermax_page_ads_launchednumberpage_ads_launched_periodtextshopify_stores_onlytrue / false
scan_adThe full record of one Meta ad (or of one Google ad or TikTok post)
1 argument
ad_identifiertext
creative_inspiration_packCreative inspiration for a niche
5 arguments
nichetextkeywordslistfocustextmax_adsnumbertrend_signaltext
search_google_ads_librarySearch Google ads
57 arguments
querytextkeywordsliststatustextcountrytextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextpublished_aftertextpublished_beforetextfirst_seen_aftertextfirst_seen_beforetextmin_days_runningnumbermax_days_runningnumberplatformtextplatformslistaudience_countrytextaudience_countrieslistexclude_audience_countrieslistformattextformatslistwebsite_idtextwebsite_idslisteu_onlytrue / falsemin_reachnumbermax_reachnumbermin_advertiser_reachnumbermax_advertiser_reachnumberremarketingtrue / falseinterest_targetingtrue / falsemain_market_countrieslistexclude_theme_idslistmin_trafficnumbermax_trafficnumbermin_productsnumbermax_productsnumbermin_best_seller_pricenumbermax_best_seller_pricenumbershop_creation_aftertextshop_creation_beforetextshop_creation_countrieslistexclude_shop_creation_countrieslistmarket_countrieslistexclude_market_countrieslistniche_idslistpixelslistexclude_pixelslistshopify_appslistexclude_shopify_appslistthemeslisttraffic_growthlistsnapshot_datetexthide_non_eu_uk_adstrue / falsehide_low_reach_adstrue / falsehide_low_impression_adstrue / false
search_tiktok_librarySearch TikTok ads and organic posts
66 arguments
querytextkeywordslisttypetextcountrytextdomaintexthandletextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextsearch_intextsearch_areatextitem_typetextstatustextmedia_typetextmedia_typeslistlanguagetextlanguageslistcountrieslistcategorieslisthashtagslisttiktok_page_idtexttiktok_page_idslistwebsite_idtexthas_shop_linkedtextpublished_aftertextpublished_beforetextupdated_aftertextupdated_beforetextmin_days_runningnumbermax_days_runningnumbermin_viewsnumbermax_viewsnumbermin_followersnumbermin_profile_viewsnumbermax_followersnumbermax_profile_viewsnumberprofile_created_aftertextprofile_created_beforetextmin_profile_ads_sharenumbermax_profile_ads_sharenumbermin_profile_postsnumbermax_profile_postsnumbermarket_countrieslistmain_market_countrieslistexclude_market_countrieslistshop_creation_countrieslistexclude_shop_creation_countrieslistmin_trafficnumbermax_trafficnumbermin_productsnumbermax_productsnumbermin_best_seller_pricenumbermax_best_seller_pricenumbershop_creation_aftertextshop_creation_beforetextshopify_appslistexclude_shopify_appslistthemeslistexclude_theme_idslistpixelslistexclude_pixelslistis_pinnedtrue / falsetrend_signaltext
create_ad_share_linkCreate (or return) the public link to one ad
2 arguments
ad_idtextconfirmtrue / false
delete_ad_share_linkRemove the public link to one ad
2 arguments
ad_idtextconfirmtrue / false
write_ad_hooksWrite three short opening lines (hooks) for an ad of a product, for Meta, TikTok or both
7 arguments
nichetextproducttextangletextplatformtextlanguagetextregeneratetextidempotency_keytext

Advertisers and emails

5 tools
search_advertisersSearch advertisers (Facebook pages)
26 arguments
querytextkeywordslistsearch_intextcountrytextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtextcategory_idslisttimeframetextexclude_age_rangeslistmarket_countrieslistmain_market_countrieslistexclude_market_countrieslistshop_creation_countrieslistexclude_shop_creation_countrieslistmin_productsnumbermax_productsnumbershop_creation_aftertextshop_creation_beforetextshopify_appslistexclude_shopify_appslistthemeslistexclude_theme_idslist
scan_advertiserOne advertiser's record, or its live ads and reach day by day
4 arguments
advertiser_idtextviewtextdaysnumbersnapshot_datetext
search_emailsSearch brands' marketing emails by words in the subject, sender or content
11 arguments
querytextshoptextcampaign_typetextsort_bytextordertextpagenumberlimitnumberfiltersobjectdetailtexttimeframetextintenttext
get_email_htmlThe raw HTML of one email (use search_emails first to find the id)
4 arguments
email_idtextinclude_htmltrue / falseshoptexthtml_partnumber
analyze_shop_emailsA shop's email strategy
2 arguments
shoptextmax_emailsnumber

Tracked brands

14 tools
list_tracked_brandsThe brands you track, with their live ad counters
6 arguments
pagenumberlimitnumberfolder_idslistnametextsort_bytextfolder_idnumber
add_to_brandtrackerStart tracking a brand
5 arguments
facebook_page_idtextwebsite_idtextshop_idtextdomaintextfolder_idnumber
delete_from_brandtrackerStop tracking a brand
3 arguments
brandtracker_idtextconfirmtrue / falseworkspace_link_idnumber
list_brandtracker_foldersYour tracker folders
create_brandtracker_folderCreate a tracker folder
1 argument
nametext
rename_brandtracker_folderRename a tracker folder
2 arguments
folder_idnumbernametext
delete_brandtracker_folderDelete a tracker folder
3 arguments
folder_idnumberactiontextconfirmtrue / false
move_tracked_brandsMove tracked brands into a folder (folder_id=null takes them out of any folder)
3 arguments
brandtracker_idslistfolder_idnumberworkspace_link_idslist
get_brand_activityWhat a tracked brand did across Meta, TikTok, Google and email
11 arguments
brandtracker_idtextbrandtextviewtextsourcetextsincetextuntiltextdaytexttypeslistpagenumberlimitnumberdetailtext
analyze_tracked_brandA deep look at one tracked brand
4 arguments
brandtracker_idtextbrandtextsnapshot_datetextdetailtext
analyze_brand_changesWhat changed for a tracked brand over a period (1d, 7d, 14d, 30d; rank gained is read over 7d for 1d, hooks over 30d for 14d, creative tests are the latest)
6 arguments
brandtracker_idtextbrandtextperiodtextfocustextsnapshot_datetextdetailtext
get_brandtracker_scaling_adsThe ads of a tracked brand that gained the most rank, with their rank history
32 arguments
brandtracker_idtextbrandtextad_rank_windowtextad_rank_sorttextmax_current_ranknumbermin_rank_deltanumberpagenumberlimitnumberdetailtextfacebook_page_idtextall_facebook_pagestrue / falseordertextgrowth_ranklistquerytextkeywordslistmedia_typetextstatustextcreated_aftertextcreated_beforetextmin_days_runningnumbermax_days_runningnumbermin_duplicatesnumbermax_duplicatesnumberad_languagetextad_languageslistad_countriesobjectmain_countrieslistctalistad_copy_hasheslistpartnerstrue / falsepartner_idslisthide_low_impressionstrue / false
get_brandtracker_transcriptsVideo scripts of a tracked brand, grouped by text
9 arguments
brandtracker_idtextbrandtexttime_periodtextpagenumberlimitnumbereu_onlytrue / falseordertextsort_bytextsnapshot_datetext
daily_radarDaily digest across your tracked brands
4 arguments
folder_idslistfocustextevent_typeslistfolder_idnumber

Boards

14 tools
list_boardsYour boards
8 arguments
scopetextstatetextkindtextsurfacetextparent_board_idtextroot_onlytrue / falsepagenumberlimitnumber
get_boardOne board
1 argument
board_idtext
create_boardCreate a board
6 arguments
nametextkindtextsurfacetextdescriptiontextvisibilitytextparent_board_idtext
update_boardRename a board, change its description or its visibility
4 arguments
board_idtextnametextdescriptiontextvisibilitytext
move_boardMove a board under a folder board (parent_board_id=null moves it to the top level)
2 arguments
board_idtextparent_board_idtext
archive_boardArchive a board and everything under it (restore_board brings it back)
2 arguments
board_idtextconfirmtrue / false
restore_boardRestore an archived board
1 argument
board_idtext
list_board_itemsThe items saved on a board
3 arguments
board_idtextpagenumberlimitnumber
find_saved_itemsSearch everything you saved, on every board and in your favorites
13 arguments
querytextsource_typeslistboard_idtextscopetextstatetextsaved_fromtextsaved_totextsort_bytextordertextpagenumberlimitnumberinclude_itemstrue / falsedetailtext
add_board_itemSave an item on a collection board
5 arguments
board_idtextsource_typetextsource_idtextsource_indextextpositionnumber
move_board_itemMove a saved item to another board
4 arguments
board_idtextitem_idtexttarget_board_idtextpositionnumber
remove_board_itemRemove a saved item from a board
3 arguments
board_idtextitem_idtextconfirmtrue / false
create_board_share_linkCreate a public link to a board
2 arguments
board_idtextconfirmtrue / false
delete_board_share_linkRemove the public links to a board
2 arguments
board_idtextconfirmtrue / false

Favorites

10 tools
list_favoritesYour saved ads, shops or emails
6 arguments
kindtextscopetextfolder_idtextpagenumberlimitnumberdetailtext
add_favorite_itemSave an ad, a shop or an email
4 arguments
kindtextitem_idtextscopetextfolder_idtext
move_favorite_itemMove a saved favorite to a folder (folder_id=null moves it out of any folder)
4 arguments
kindtextfavorite_idtextscopetextfolder_idtext
remove_favorite_itemRemove a saved favorite, by its own id (favorite_id) or by the id of the saved record (item_id)
5 arguments
kindtextscopetextfavorite_idtextitem_idtextconfirmtrue / false
create_favorite_folderCreate a favorite folder
4 arguments
kindtextnametextscopetextparent_idtext
update_favorite_folderRename a favorite folder, or move it (move=true with parent_id, null for the top level)
6 arguments
kindtextfolder_idtextscopetextnametextparent_idtextmovetrue / false
delete_favorite_folderDelete a favorite folder
6 arguments
kindtextfolder_idtextmodetextscopetexttarget_folder_idtextconfirmtrue / false
set_favorite_folder_visibilityMake a favorite folder private or shared
4 arguments
kindtextfolder_idtextvisibilitytextscopetext
create_favorite_folder_share_linkCreate a public link to a favorite folder
4 arguments
kindtextfolder_idtextscopetextconfirmtrue / false
delete_favorite_folder_share_linkRemove the public links to a favorite folder
4 arguments
kindtextfolder_idtextscopetextconfirmtrue / false

Account

2 tools
usage_getYour plan, its credits and how many are left
check_creditsHow many credits you have left this month (same answer as usage_get)
A tool call costs the results it returns, from your plan's monthly credits, shared with the REST API. 1 credit = 1 result returned: one brand's details, one ad, or one row of a list. An empty result is free. Failed calls, usage_get and check_credits cost nothing. The server also exposes three resources: sellwinners://me, sellwinners://usage and sellwinners://openapi.

Troubleshooting

  • 401, or the client asks you to sign in again: the key was revoked or mistyped, or the sign-in ended. Make a new key under API keys, or reconnect the app.
  • A tool answers insufficient_credits: this month's credits are used up. The call didn't run and cost nothing; the answer gives the day the credits renew. Paid plans can add credits on the billing page.
  • 403 plan_not_eligible: the plan doesn't include this tool or the MCP server. The answer names the feature; plans are on the pricing page.
  • A tool answers rate_limited: the per-minute rate limit, shared by the workspace. The call didn't run and cost nothing; wait the seconds the answer gives, then retry.
  • A connected app stopped working: disconnect it under Settings, MCP, Connected apps, then connect it again. A connection unused for 60 days ends by itself.
  • Something else: write to support with the time of the call and the tool's name.