A side-by-side look at the Buywhere MCP and HOTLIKESHOP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Buywhere MCP for e-commerce work as a local process; choose HOTLIKESHOP for e-commerce over a hosted endpoint. You can also run both side by side in one mcpServers block.
BUYWHERE_API_KEY.search_products, get_product, compare_products.search_products, get_product, list_categories.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | E-Commerce | E-Commerce |
| Quality signal | 67/100 · Great | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | API key required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | BUYWHERE_API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 15 | 1 |
| Directory activity | 4 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 13 | 32 |
| Full listing | View Buywhere MCP | View HOTLIKESHOP |
search_productsSearch 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.get_productGet a specific product by its ID, including full details and current price.compare_productsCompare multiple products side-by-side. Returns price, brand, rating, and category for each.get_dealsGet 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"`.list_categoriesList top-level product categories available in the BuyWhere catalog.find_best_priceUse 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.find_similarFind 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.ingest_productsIngest (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.search_products_v2REQUIRED 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.get_product_v2REQUIRED 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.compare_products_v2REQUIRED 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.get_deals_v2REQUIRED 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.search_productsSearch the public catalog by keyword in the product name; returns id, name, price (VND), stock, category and url. Read-only, no api_key required. WHEN TO USE: the user already has a search term or product name. PREFER INSTEAD: list_categories + list_category_products to browse without a keyword, best_sellers for "popular", latest_products for "new", get_product for the full detail of one id. Not for buying — pass a found id to quote_order. Tìm sản phẩm công khai theo tên; chỉ đọc, không cần api_key.get_productGet the full public detail of ONE product by its numeric id: name, price (VND), stock, category, long description and url. Read-only, no api_key required. WHEN TO USE: after search_products / list_category_products / best_sellers gave you an id and the user wants the full description of that single item. PREFER INSTEAD: compare_products to evaluate 2-5 ids at once, similar_products to find alternatives. Requires a known product id (not a name). Not for buying — pass the id to quote_order. Xem chi tiết 1 sản phẩm công khai theo id (kèm mô tả); chỉ đọc, không cần api_key.list_categoriesList every public category with its id, name and in-stock product count. Read-only, takes no parameters, no api_key required. WHEN TO USE: call this FIRST to discover the category taxonomy and get the category_id values required by list_category_products, best_sellers, latest_products and recommend_products. PREFER INSTEAD: search_products when the user already has a keyword, or how_to_start for onboarding. This only lists categories — it does not return individual products. Liệt kê danh mục công khai kèm số sản phẩm; dùng để lấy category_id.list_category_productsList in-stock public products inside ONE category by category_id: id, name, price (VND), stock. Read-only, no api_key required. PREREQUISITE: get category_id from list_categories first. WHEN TO USE: browse everything in a chosen category. PREFER INSTEAD: search_products for keyword search across all categories, best_sellers to rank a category by sales, recommend_products to filter by budget, latest_products for newest. Not for buying — pass a chosen id to quote_order. Liệt kê sản phẩm công khai trong 1 danh mục theo category_id.get_2faGenerate the current 2FA/TOTP code (6 digits) from a Base32 secret key (Google Authenticator style). Computed on the server in-memory only, never stored or logged. Free, no api_key required. WHEN TO USE: the user has an authenticator secret key (from an account they bought or own) and needs the live TOTP code now. PREFER INSTEAD: get_mail_code for email OTP/verification codes delivered to a mail-bundled order. Requires a valid Base32 secret. Sinh mã 2FA/TOTP hiện tại (6 số) từ khóa bí mật Base32; tính cục bộ, không lưu, không gửi đi đâu.check_live_facebookCheck whether ONE Facebook UID (numeric) is live or dead via the public profile-picture endpoint (server-side). Read-only, free, no api_key required. Facebook blocks datacenter IPs, so if it cannot verify it returns status "needs_proxy" — pass your own "proxy" to check reliably. WHEN TO USE: a single Facebook UID. PREFER INSTEAD: check_health_bulk for many accounts at once or for Instagram/Telegram/TikTok, deep_inspect for a detailed profile (followers, bio, media). Kiểm tra 1 UID Facebook (số) sống/chết; FB chặn IP máy chủ nên nếu không check được sẽ trả "needs_proxy" — truyền "proxy" riêng để check chuẩn.check_health_bulkBulk live/dead check for MANY accounts at once (max 20 per call): Facebook UID (numeric) or Instagram/Telegram/TikTok usernames. Returns per-item status + a summary. Read-only, free, no api_key required. IG/FB items that cannot be verified (datacenter IP blocked) are moved to "skipped" — pass your own "proxy" to check them reliably. WHEN TO USE: a list of 2-20 accounts, or any non-Facebook platform. PREFER INSTEAD: check_live_facebook for a single Facebook UID, deep_inspect for one detailed profile. Kiểm tra sống/chết HÀNG LOẠT (tối đa 20/lần): UID Facebook hoặc username IG/TG/TikTok; mục IG/FB không check được bị đưa vào "skipped" — truyền "proxy" riêng để check chuẩn.deep_inspectDeep profile lookup for ONE social account (server-side, best-effort, public data only): Instagram/TikTok → followers, bio, verified, media; Telegram → title, members; Facebook UID → live/dead + avatar. Read-only, free, no api_key required. IG/FB block datacenter IPs → if it cannot read it returns status "needs_proxy"; pass your own "proxy" to read reliably. WHEN TO USE: you want rich detail about one profile. PREFER INSTEAD: check_health_bulk to sweep many accounts for live/dead only, check_live_facebook for a quick single-UID liveness check. Xem SÂU 1 tài khoản MXH (chỉ đọc công khai); IG/FB chặn IP máy chủ → nếu không xem được trả "needs_proxy", truyền "proxy" riêng để xem chuẩn.recommend_productsRecommend in-stock public products by budget and/or keyword/category, cheapest first, with a simple combo suggestion. Read-only, no api_key required, public fields only (price VND). WHEN TO USE: the user has a budget or a vague need ("something under 50k for Facebook"). PREFER INSTEAD: search_products for an exact keyword, best_sellers for popularity, latest_products for newest, list_category_products to see a whole category. Optionally scope with category_id from list_categories. Gợi ý sản phẩm CÒN HÀNG theo ngân sách và/hoặc từ khóa/danh mục (rẻ trước) kèm gợi ý combo; chỉ trả field công khai (giá VND).topup_guideExplain how to add funds (deposit) to a hotlikeshop account and list the active deposit methods/networks + min/max. Info only — this tool never moves money. Read-only. WHEN TO USE: call this FIRST, before create_usdt_deposit or create_binance_deposit, to see which networks are enabled; pass api_key to also show current balance & the shortfall vs a target amount. PREFER INSTEAD: how_to_start for full new-user onboarding, get_my_balance if you only need the balance number. Pass lang="en" for an English guide. Hướng dẫn nạp tiền (chỉ thông tin, KHÔNG thanh toán); truyền api_key để kèm số dư & phần còn thiếu, kèm quy đổi USD.how_to_startOnboarding guide for NEW users: how to start buying on hotlikeshop through this MCP (create account -> get api_key -> top up -> search & buy). Read-only, no api_key required. WHEN TO USE: the very FIRST call for a new / international user, or whenever someone lacks an api_key or asks "how does this work". Lists which tools are free vs. which need an api_key. PREFER INSTEAD: topup_guide for deposit specifics, quote_order + buy_product to actually purchase, search_products to browse. Pass lang="en" (default) or lang="vi". Hướng dẫn bắt đầu cho người mới: tạo tài khoản -> lấy api_key -> nạp tiền -> tìm & mua.best_sellersList best-selling in-stock public products (most sold first), public fields only (price VND + units sold). Read-only, no api_key required. WHEN TO USE: the user wants "popular / hot / most bought" items. PREFER INSTEAD: latest_products for "new arrivals", search_products for a keyword, recommend_products for a budget, list_category_products for a full category. Optionally scope with category_id (from list_categories) or a keyword. Danh sách sản phẩm BÁN CHẠY còn hàng (đã bán nhiều nhất trước); chỉ trả field công khai (giá VND + số đã bán).Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"buywhere-buywhere-mcp": {
"command": "npx",
"args": [
"-y",
"@buywhere/mcp-server"
],
"env": {
"BUYWHERE_API_KEY": "YOUR_BUYWHERE_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"hotlikeshop": {
"url": "https://hotlikeshop.com/api/mcp"
}
}
}