{"name":"io.github.BuyWhere/buywhere-mcp","slug":"buywhere-buywhere-mcp","title":null,"description":"Agent-native product catalog: 300M+ products, 150,000+ stores, deliver_to ranking.","url":"https://mcp.market/server/buywhere-buywhere-mcp","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce","ai"],"presence":{"score":44,"stars":14,"forks":2,"downloads_week":96,"last_push_at":"2026-09-17T20:00:50.000Z","license":"MIT"},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T03:15:38.131Z","last_ok_at":"2026-09-21T03:15:38.131Z","latency_ms":231},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/BuyWhere/buywhere-mcp","website":"https://buywhere.ai","version":"1.2.0","remotes":[{"type":"streamable-http","url":"https://api.buywhere.ai/mcp","headers":[{"description":"Bearer token. Free key at https://api.buywhere.ai/v1/auth/register (1,000 calls/day, no card).","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@buywhere/mcp-server","version":"0.3.17","transport":{"type":"stdio"},"environmentVariables":[{"description":"API key from https://api.buywhere.ai/v1/auth/register","isRequired":true,"isSecret":true,"name":"BUYWHERE_API_KEY"}]}],"tools":[{"name":"compare_products","description":"Compare multiple products side-by-side. Returns price, brand, rating, and category for each.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"Array of product IDs to compare (2-10)","minItems":2,"maxItems":10}},"required":["ids"]}},{"name":"compare_products_v2","description":"REQUIRED deliver_to. Compare multiple products side-by-side. Always pass deliver_to=\"SG\" (or your buyer's country). Returns price, brand, rating, category, and a resolved outbound_url per product for the buyer market.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"Array of product IDs to compare (2-10)","minItems":2,"maxItems":10},"deliver_to":{"type":"string","description":"REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\")."}},"required":["ids","deliver_to"]}},{"name":"find_best_price","description":"Use this whenever a user asks about prices, wants to find the cheapest option, or asks \"what's the best price for X\" or \"where can I buy X for the lowest price\". Returns schema.org/Product entities with schema.org/AggregateOffer (lowPrice, offerCount, priceCurrency) across all merchants. BUY-74597 degraded contract: when the candidates query cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.degraded=true`, `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage=\"catalog_search\"`, with `best_price=null` and `alternatives=[]`. It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Keyword search query — alias for product_name"},"product_name":{"type":"string","description":"Product name to find best price for (e.g., \"iphone 15 pro 256gb\", \"samsung galaxy s24\")"},"category":{"type":"string","description":"Category to filter by (e.g., \"electronics\", \"fashion\")"},"country_code":{"type":"string","enum":["SG","MY","TH","PH","VN","ID","US"],"description":"Country to search in (defaults to SG). Alias: country."},"deliver_to":{"type":"string","description":"Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"market":{"type":"string","description":"Alias for country_code (deprecated, use country_code)."},"region":{"type":"string","enum":["us","sea"],"description":"Region filter - use \"us\" for United States or \"sea\" for Southeast Asia"}}}},{"name":"find_best_price_v2","description":"REQUIRED deliver_to. Use this whenever a user asks about prices, wants to find the cheapest option, or asks \"what's the best price for X\" or \"where can I buy X for the lowest price\". Always pass deliver_to=\"SG\" (or your buyer's country). Returns schema.org/Product entities with schema.org/AggregateOffer (lowPrice, offerCount, priceCurrency) across all merchants. Response includes a shopping_job_id (UUID) you can use to resume a multi-merchant price-comparison session for the buyer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Keyword search query — alias for product_name"},"product_name":{"type":"string","description":"Product name to find best price for (e.g., \"iphone 15 pro 256gb\", \"samsung galaxy s24\")"},"category":{"type":"string","description":"Category to filter by (e.g., \"electronics\", \"fashion\")"},"country_code":{"type":"string","enum":["SG","MY","TH","PH","VN","ID","US"],"description":"Country to search in (defaults to SG). Alias: country."},"deliver_to":{"type":"string","description":"REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\")."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"region":{"type":"string","enum":["us","sea"],"description":"Region filter - use \"us\" for United States or \"sea\" for Southeast Asia"}},"required":["deliver_to"]}},{"name":"find_similar","description":"Find products similar to a given product using vector similarity. Returns up to 10 nearest neighbours by semantic meaning (title+description embedding). Useful for \"more like this\" recommendations.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"product_id":{"type":"string","description":"UUID of the source product"},"limit":{"type":"integer","description":"Number of similar products to return (1-10, default 10)","default":10}},"required":["product_id"]}},{"name":"get_deals","description":"Get discounted products sorted by discount percentage. Returns schema.org/Product entities with schema.org/Offer properties: price, priceCurrency, availability, originalPrice, and discountPercentage. Covers Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US e-commerce. Supports currency, region (sea, us, eu, au) and country (SG, US, VN, MY, ...) filters. BUY-74597 degraded contract: when the discount-index scan cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage` (typically `offer_aggregation`). It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker. Branch on `meta.degraded === true` or `meta.status === \"degraded\"`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"min_discount":{"type":"number","description":"Minimum discount percentage (default 10)","default":10},"currency":{"type":"string","description":"Filter by currency code (SGD, USD, MYR, VND, THB). Defaults to SGD.","default":"SGD"},"region":{"type":"string","description":"Filter by region (sea, us, eu, au)"},"country_code":{"type":"string","enum":["SG","US","VN","TH","MY"],"description":"Filter by ISO country code. Alias: country."},"deliver_to":{"type":"string","description":"Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"market":{"type":"string","description":"Alias for country_code (deprecated, use country_code)."},"limit":{"type":"integer","description":"Number of results (max 100, default 20)","default":20},"offset":{"type":"integer","description":"Pagination offset","default":0}}}},{"name":"get_deals_v2","description":"REQUIRED deliver_to. Get discounted products sorted by discount percentage. Always pass deliver_to=\"SG\" (or your buyer's country). Returns schema.org/Product entities with schema.org/Offer properties: price, priceCurrency, availability, originalPrice, and discountPercentage. Covers Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US e-commerce. Supports currency, region (sea, us, eu, au) and country (SG, US, VN, MY, ...) filters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"min_discount":{"type":"number","description":"Minimum discount percentage (default 10)","default":10},"currency":{"type":"string","description":"Filter by currency code (SGD, USD, MYR, VND, THB). Defaults to SGD.","default":"SGD"},"region":{"type":"string","description":"Filter by region (sea, us, eu, au)"},"country_code":{"type":"string","enum":["SG","US","VN","TH","MY"],"description":"Filter by ISO country code. Alias: country."},"deliver_to":{"type":"string","description":"REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\")."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"limit":{"type":"integer","description":"Number of results (max 100, default 20)","default":20},"offset":{"type":"integer","description":"Pagination offset","default":0}},"required":["deliver_to"]}},{"name":"get_product","description":"Get a specific product by its ID, including full details and current price.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Product UUID"}},"required":["id"]}},{"name":"get_product_v2","description":"REQUIRED deliver_to. Get a specific product by its ID, including full details and current price. Always pass deliver_to=\"SG\" (or your buyer's country). Response includes a resolved outbound_url (https://…) that routes the buyer through the BuyWhere click tracker when the product has merchant offers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Product UUID"},"deliver_to":{"type":"string","description":"REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\")."}},"required":["id","deliver_to"]}},{"name":"ingest_products","description":"Ingest (upsert) a batch of products into the BuyWhere catalog. Use this to add or update product listings from any merchant/source. Requires a valid API key with ingest permissions. Accepts up to 1000 products per call with source, SKU, title, price, URL, and optional metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"source":{"type":"string","description":"Data source identifier (e.g. \"shopee_sg\", \"amazon_sg\", \"lazada_sg\")"},"products":{"type":"array","description":"Array of product objects to ingest (max 1000)","items":{"type":"object","required":["sku","merchant_id","title","price","url"],"properties":{"sku":{"type":"string","description":"Unique stock keeping unit identifier"},"merchant_id":{"type":"string","description":"Merchant identifier"},"title":{"type":"string","description":"Product title"},"description":{"type":"string","description":"Product description"},"price":{"type":"number","description":"Current price (must be >= 0)"},"currency":{"type":"string","description":"Currency code (default: SGD)","default":"SGD"},"url":{"type":"string","description":"Product URL on the merchant site"},"image_url":{"type":"string","description":"Main product image URL"},"category":{"type":"string","description":"Product category"},"brand":{"type":"string","description":"Brand name"},"is_active":{"type":"boolean","description":"Whether the product is active (default: true)"},"is_available":{"type":"boolean","description":"Whether the product is in stock"},"country_code":{"type":"string","description":"ISO country code (e.g. \"SG\", \"US\")"},"region":{"type":"string","description":"Region identifier (e.g. \"sea\", \"us\")"},"metadata":{"type":"object","description":"Additional product metadata"}}}}},"required":["source","products"]}},{"name":"list_categories","description":"List top-level product categories available in the BuyWhere catalog.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"region":{"type":"string","enum":["us","sg","my","gb","in","au"],"description":"Region alias mapped to ISO country code."},"country_code":{"type":"string","enum":["SG","US","VN","TH","MY","GB","IN","AU"],"description":"Filter by ISO country code. Defaults to SG."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"market":{"type":"string","description":"Alias for country_code (deprecated, use country_code)."}}}},{"name":"search_products","description":"Search the BuyWhere product catalog by keyword. Treat deliver_to as REQUIRED for buyer-facing use (ISO-3166 country of the end user); it takes precedence over country_code/country and prevents all-market scans. Returns product records with title, description, image, price, and merchant information. Covers e-commerce platforms across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US. Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields. BUY-74597 degraded contract: when the catalog query cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage` naming the failed stage (catalog_search / offer_aggregation / merchant_join). It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker. Agents should branch on `meta.degraded === true` (or `meta.status === \"degraded\"`) instead of treating empty `data` as no_match.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Keyword search query"},"query":{"type":"string","description":"Alias for q (accepted for agent convenience; use q). Without this, callers passing `query` get 0 rows and the reltuples-derived total — see BUY-75287."},"domain":{"type":"string","description":"Filter by merchant platform (e.g. lazada, shopee, amazon)"},"region":{"type":"string","description":"Filter by region (sea, us, eu, au)"},"country_code":{"type":"string","enum":["SG","US","VN","TH","MY"],"description":"Filter by ISO country code. Also infers default currency for price filters (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR)."},"deliver_to":{"type":"string","description":"Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"market":{"type":"string","description":"Alias for country_code (deprecated, use country_code)."},"min_price":{"type":"number","description":"Minimum price (in currency inferred from country_code, or SGD by default)"},"max_price":{"type":"number","description":"Maximum price (in currency inferred from country_code, or SGD by default)"},"limit":{"type":"integer","description":"Number of results (max 100, default 20)","default":20},"offset":{"type":"integer","description":"Pagination offset","default":0},"compact":{"type":"boolean","description":"Return agent-optimized compact shape: structured_specs, comparison_attributes, normalized_price_usd. Reduces response size ~40%. Recommended for agent tool-use.","default":false},"category":{"type":"string","description":"Filter by product category name (e.g. \"Laptops\", \"Smartphones\", \"Televisions\"). Use to exclude accessories and get actual products."},"mode":{"type":"string","enum":["keyword","semantic","hybrid"],"description":"Search mode: keyword=FTS only (default, matches REST /v1/products/search), semantic=vector only, hybrid=RRF blend of FTS+vector. Falls back to keyword if vector DB or FLOWAI_EMBED_API_KEY unavailable.","default":"keyword"}}}},{"name":"search_products_v2","description":"REQUIRED deliver_to. Search the BuyWhere product catalog by keyword. The deliver_to parameter is REQUIRED (ISO country code, e.g. \"SG\", \"US\") — it takes precedence over country_code/country and prevents all-market scans. Always pass deliver_to=\"SG\" (or your buyer's country). Returns product records with title, description, image, price, and merchant information. Covers e-commerce platforms across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US. Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Keyword search query"},"query":{"type":"string","description":"Alias for q (accepted for agent convenience; use q). Without this, callers passing `query` get 0 rows and the reltuples-derived total — see BUY-75287."},"domain":{"type":"string","description":"Filter by merchant platform (e.g. lazada, shopee, amazon)"},"region":{"type":"string","description":"Filter by region (sea, us, eu, au)"},"country_code":{"type":"string","enum":["SG","US","VN","TH","MY"],"description":"Filter by ISO country code. Also infers default currency for price filters (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR)."},"deliver_to":{"type":"string","description":"REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\")."},"country":{"type":"string","description":"Alias for country_code (deprecated, use country_code)"},"min_price":{"type":"number","description":"Minimum price (in currency inferred from country_code, or SGD by default)"},"max_price":{"type":"number","description":"Maximum price (in currency inferred from country_code, or SGD by default)"},"limit":{"type":"integer","description":"Number of results (max 100, default 20)","default":20},"offset":{"type":"integer","description":"Pagination offset","default":0},"compact":{"type":"boolean","description":"Return agent-optimized compact shape: structured_specs, comparison_attributes, normalized_price_usd. Reduces response size ~40%. Recommended for agent tool-use.","default":false},"category":{"type":"string","description":"Filter by product category name (e.g. \"Laptops\", \"Smartphones\", \"Televisions\"). Use to exclude accessories and get actual products."},"mode":{"type":"string","enum":["keyword","semantic","hybrid"],"description":"Search mode: keyword=FTS only (default, matches REST /v1/products/search), semantic=vector only, hybrid=RRF blend of FTS+vector. Falls back to keyword if vector DB or FLOWAI_EMBED_API_KEY unavailable.","default":"keyword"}},"required":["deliver_to"]}}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-20T20:59:23.576Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:59:23.552Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 906ms"]},"poisoning":{"score":15,"max":15,"notes":["13 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.buywhere.ai/mcp","reachable":true,"authRequired":false,"latencyMs":906,"serverInfo":{"name":"buywhere-catalog","version":"1.0.0"}}],"packages":[{"registryType":"npm","identifier":"@buywhere/mcp-server","version":"0.3.17","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-08-29T18:30:54.680Z","repositoryUrl":"git+https://github.com/BuyWhere/buywhere-mcp.git","weeklyDownloads":96}],"repo":{"found":true,"owner":"BuyWhere","repo":"buywhere-mcp","archived":false,"pushedAt":"2026-09-17T20:00:50Z","stars":14,"forks":2,"openIssues":14,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/276059411?v=4","ownerCreatedAt":"2026-04-14T16:23:25Z","license":"MIT"},"icon":{"url":"https://buywhere.ai/apple-touch-icon.png","source":"site","width":180,"height":180},"presence":{"stars":14,"forks":2,"downloadsWeek":96,"license":"MIT","lastPushAt":"2026-09-17T20:00:50.000Z","score":44}}}},"grade_history":[],"reviews":[]}