Buywhere MCP vs PoloPan Fashion MCP Server

A side-by-side look at the Buywhere MCP and PoloPan Fashion MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Buywhere MCP logoBuywhere MCPE-Commerce · Local subprocess (stdio)Cross-border e-commerce product catalog for AI agents. Search 3M+ products across Singapore, SEA, and US markets with price comparison and deal discovery. Install via npx @buywhere/mcp-server.67GreatAuth: api key requiredPoloPan Fashion MCP Server logoPoloPan Fashion MCP ServerE-Commerce · Local subprocess (stdio)Fashion & apparel MCP: visual outfit search, stock verification, and 1-click checkout.63GoodAuth: not declared

Verdict: choose Buywhere MCP for e-commerce work as a local process; choose PoloPan Fashion MCP Server for e-commerce as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Buywhere MCP logoChoose Buywhere MCP when

  • You need dedicated capabilities in the E-Commerce domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: BUYWHERE_API_KEY.
  • You want tools like search_products, get_product, compare_products.
Explore Buywhere MCP

PoloPan Fashion MCP Server logoChoose PoloPan Fashion MCP Server when

  • You need dedicated capabilities in the E-Commerce domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like region.get_current, region.set_current, region.list_supported.
Explore PoloPan Fashion MCP Server

Feature & specification comparison

Rows where the two servers differ are marked.

SpecBuywhere MCP logoBuywhere MCPPoloPan Fashion MCP Server logoPoloPan Fashion MCP Server
CategoryE-CommerceE-Commerce
Quality signal67/100 · Great63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthAPI key requiredNot declared
PricingFreeNot declared
Required env varsBUYWHERE_API_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars151
Directory activity 4 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools1319

Tools & capabilities

Buywhere MCP tools 13

  • 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.
  • +1 more on the listing page

PoloPan Fashion MCP Server tools 19

  • region.get_currentGet the currently active shopping destination country, currency code, symbol, phone code, and catalog scope mode from persistent local configuration (~/.polopan/region.json).
  • region.set_currentSet the active shopping country/region using any natural country name, city (e.g. 'Dubai', 'London', 'California', 'Paris'), 2-letter ISO code ('US', 'GB', 'IN', 'AE', 'CA'), or currency ('USD', 'AED', 'GBP', 'EUR'). Saves to persistent local JSON (~/.polopan/region.json) so the user never needs to be asked again across turns and sessions.
  • region.list_supportedSearch the 240+ supported destination countries with localized currency codes, symbols, flags, phone codes, and price groups from live platform settings.
  • address.get_currentGet the default delivery/shipping address saved for the currently active region from local configuration (~/.polopan/region.json). WHEN TO USE (CRITICAL ANTI-SHORTCIRCUIT RULE): - ALWAYS call this BEFORE generating 1-click checkout links to check if the user already has a saved delivery address for their destination country. - If 'has_address' is false, DO NOT emit a naked checkout link. Prompt the user naturally for their shipping address (First Name, Street Address, City, Postal Code, Phone & Email) and save it using 'address.save'. - If 'has_address' is true, inform the user you are prefilling their saved address and proceed with checkout.
  • address.saveSave a customer delivery shipping address mapped to the active region in ~/.polopan/region.json. Matches Flutter app (newapp) address schema: firstName, lastName, address1, address2, city, province, zip, country, phone, email, type.
  • address.list_savedList all saved customer delivery addresses stored in ~/.polopan/region.json, optionally filtered by country.
  • address.set_defaultSet an existing address as the default shipping address for its country in ~/.polopan/region.json.
  • address.deleteDelete a saved delivery address by ID from ~/.polopan/region.json.
  • products.search.textSearch PoloPan catalog products using a text keyword query with optional multi-attribute filters. Returns matching fashion items with available in-stock sizes, product specifications, shipping/return policies, discounted pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). Automatically localized to active country / 240+ destination regions. PURPOSE & DISAMBIGUATION: - Primary text-based catalog search tool for fashion discovery across apparel, footwear, and accessories. - Distinct from 'products.search.image_url' / 'products.search.image_upload': Use this tool for textual queries and keyword filters, NOT for visual image search. - Distinct from 'products.search.alternatives': Use this tool for open discovery queries, NOT for finding direct visual substitutes of a known product handle. - Distinct from 'looks.curation.by_occasion': Use this tool to search individual products, NOT complete multi-piece outfit looks. WHEN TO USE: - When a user searches for clothing or fashion styles using keywords, brand names, colors, or categories (e.g. 'black leather jacket', 'floral summer midi dress', 'men linen shirts'). - When refining catalog searches with structured filters like price ranges, gender, sizes, country regions, or vendor brands. WHEN NOT TO USE: - Do NOT use when the user provides an image URL or image file (use 'products.search.image_url' or 'products.search.image_upload'). - Do NOT use when searching for cheaper/higher-end substitutes of a specific known product (use 'products.search.alternatives'). - Do NOT use to find curated complete occasion outfits (use 'looks.curation.by_occasion'). BEHAVIOR & SAFETY: - Read-only and idempotent with no persistent state modifications. - Automatically sanitizes and enriches product records with verified PoloPan short permalinks (https://s.polopan.com/p/{handle}), computed in-stock size lists, and human-readable shipping and return policy strings. - Handles pagination and multi-attribute filtering deterministically. PARAMETERS & CONSTRAINTS: - 'query' (string, required): Free-text search query or style keyword (e.g. 'black linen shirt', 'oversized hoodie'). - 'country' (string, optional): Target country name, city, currency, or ISO-2 code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region. - 'mode' (enum, optional): Catalog mode: 'global' (ships to country) or 'local' (domestic only). - 'page' (integer >= 1, default 1): Pagination page number. - 'page_size' (integer 1-100, default 20): Number of products returned per page. - 'sort_by' (enum, default 'relevance'): Ranking criterion ('relevance', 'price', 'title'). - 'sort_order' (enum, default 'desc'): Sort direction ('asc' for ascending, 'desc' for descending). - 'gender' (string, optional): Target demographic filter ('men', 'women', or 'unisex'). - 'size' (array of strings, optional): Size filter array (e.g. ['S', 'M', 'L', 'XL', '32', '40']). - 'price_min' (number, optional): Minimum price threshold in local currency. - 'price_max' (number, optional): Maximum price threshold in local currency. - 'vendor' (array of strings, optional): List of brand or vendor names to filter by. MANDATORY AGENT INSTRUCTIONS: 1. Always communicate available in-stock sizes, fast dispatch SLA, and return policy for each product (Negative return days = 'Exchange only |X| days'). 2. When presenting or shortlisting products, display the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care). 3. Return the clean base link (https://s.polopan.com/p/{handle}) during browsing. Provide direct checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.
  • products.search.image_urlSearch PoloPan catalog products using visual image similarity from a publicly accessible image URL with optional multi-attribute filters. Returns visually similar products with available sizes, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). Automatically localized to active country / 240+ destination regions. PURPOSE & DISAMBIGUATION: - Performs reverse visual search using computer-vision embeddings for a remote image URL. - Distinct from 'products.search.text': Use this tool when you have an image URL, NOT for textual keyword queries. - Distinct from 'products.search.image_upload': Use this tool for publicly hosted HTTP(S) image URLs, NOT for local file paths or base64 data. - Distinct from 'vision.outfit.detect_pieces': Use this tool to search catalog items matching an entire single-garment image, NOT for segmenting multi-garment influencer photos into bounding boxes. WHEN TO USE: - When the user shares a web link to an image (e.g. Pinterest, Instagram, blog post) and wants to find visually matching products in the PoloPan catalog. WHEN NOT TO USE: - Do NOT use when the image is stored on local disk or as base64 data (use 'products.search.image_upload'). - Do NOT use when searching by text descriptions (use 'products.search.text'). - Do NOT use when you need to crop/isolate individual outfit pieces from a full-body model photo (use 'vision.outfit.detect_pieces'). BEHAVIOR & SAFETY: - Read-only and idempotent with no persistent state modifications. - Downloads the image, generates visual embeddings, and retrieves ranked catalog matches. - Enriches all returned items with verified PoloPan purchase links and stock metadata. PARAMETERS & CONSTRAINTS: - 'image_url' (string, required): Publicly accessible HTTP(S) URL of the image to search for visual matches. - 'country' (string, optional): Target country name, city, currency, or ISO-2 code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region. - 'mode' (enum, optional): Catalog mode: 'global' (ships to country) or 'local' (domestic only). - 'page' (integer >= 1, default 1): Pagination page number. - 'page_size' (integer 1-100, default 20): Number of candidate items returned per page. - 'sort_by' (enum, default 'relevance'): Ranking attribute ('relevance', 'price', 'title'). - 'sort_order' (enum, default 'desc'): Sort order ('asc' or 'desc'). - 'gender' (string, optional): Target gender filter ('men', 'women', or 'unisex'). - 'size' (array of strings, optional): Filter by available size labels. - 'price_min' (number, optional): Minimum price threshold. - 'price_max' (number, optional): Maximum price threshold. - 'vendor' (array of strings, optional): Brand filter array. - 'personalize' (boolean, default false): Whether to apply personalized ranking weights.
  • products.search.image_uploadUpload a local image file (or base64 string) and search PoloPan catalog products using visual image similarity. Returns matching products with available in-stock sizes, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). Automatically localized to active country / 240+ destination regions. PURPOSE & DISAMBIGUATION: - Performs reverse visual search by uploading a local or base64-encoded image to secure temporary storage, then querying visual embeddings. - Distinct from 'products.search.image_url': Use this tool when the image file is local on the user's machine or in base64 format, NOT already on a public URL. - Distinct from 'vision.outfit.detect_pieces': Use this tool to search for products matching a single garment, NOT for decomposing full multi-piece outfits into bounding boxes. WHEN TO USE: - When a user uploads a local photo/screenshot or supplies base64 image data to find matching fashion products in the catalog. WHEN NOT TO USE: - Do NOT use when the image is already accessible via a public web URL (use 'products.search.image_url'). - Do NOT use for text-only searches (use 'products.search.text'). BEHAVIOR & SAFETY: - Read-only catalog query with temporary image upload artifact (automatically expires after 'expiry_hours', default 24h). - Resolves MIME types automatically if not explicitly provided. - Enriches all returned items with verified PoloPan purchase links and stock metadata. PARAMETERS & CONSTRAINTS: - 'image_path' (string, optional): Local file system path to the image file (one of image_path or image_base64 is required). - 'image_base64' (string, optional): Base64-encoded image data string. - 'country' (string, optional): Target country name, city, currency, or ISO-2 code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region. - 'mode' (enum, optional): Catalog mode: 'global' (ships to country) or 'local' (domestic only). - 'content_type' (string, default 'image/jpeg'): MIME type of the uploaded image (e.g. 'image/jpeg', 'image/png', 'image/webp'). - 'expiry_hours' (integer 1-168, default 24): Temporary upload lifetime in hours before expiration. - 'page' (integer >= 1, default 1): Pagination page number. - 'page_size' (integer 1-100, default 20): Number of items per page. - 'sort_by' (enum, default 'relevance'): Sorting attribute ('relevance', 'price', 'title'). - 'sort_order' (enum, default 'desc'): Sort direction ('asc' or 'desc'). - 'gender' (string, optional): Target gender filter ('men', 'women', or 'unisex'). - 'size' (array of strings, optional): Size filter array. - 'price_min' (number, optional): Minimum price threshold. - 'price_max' (number, optional): Maximum price threshold. - 'vendor' (array of strings, optional): Brand filter array. - 'personalize' (boolean, default false): Whether to personalize search ranking.
  • vision.outfit.detect_piecesDeconstruct an outfit image or influencer photo into individual fashion pieces (e.g. Upper-body garment, Lower-body garment, Dress, Footwear, Bag, Headwear) with normalized bounding box coordinates and detection confidence scores. PURPOSE & DISAMBIGUATION: - Computer-vision object detection tool designed to analyze multi-item outfit photographs and isolate individual garments with their spatial coordinates. - Distinct from 'products.search.image_url' / 'products.search.image_upload': Use this tool to segment a full outfit into pieces before querying, NOT to directly retrieve catalog search results. - Distinct from 'looks.curation.recommend': Use this tool for image-based piece decomposition, NOT text-based styling suggestions. WHEN TO USE: - When the user provides a full-body model photo, street style snapshot, or celebrity outfit and wants to identify each individual clothing piece (jacket, top, pants, shoes, bag) to find matching products for each piece. WHEN NOT TO USE: - Do NOT use when the image contains only a single standalone garment (use 'products.search.image_url' or 'products.search.image_upload' directly). - Do NOT use for text-only searches (use 'products.search.text'). BEHAVIOR & SAFETY: - Read-only and idempotent with no persistent state modifications. - Supports input via local file path ('image_path'), base64 string ('image_base64'), or public URL ('image_url'). Exactly one source must be provided. - Returns an array of detected piece objects with 'label', 'confidence' (0.0 to 1.0), and normalized 'box' coordinates [ymin, xmin, ymax, xmax]. PARAMETERS & CONSTRAINTS: - 'image_path' (string, optional): Local file system path to the outfit image (e.g. '/tmp/outfit.jpg'). - 'image_base64' (string, optional): Base64-encoded image data string. - 'image_url' (string, optional): Public HTTP(S) URL of the image. - 'threshold' (number 0.05-0.95, default 0.22): Detection confidence threshold for bounding box filtering.
  • +7 more on the listing page

Ready-to-paste client configs

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.

Buywhere MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "buywhere-buywhere-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@buywhere/mcp-server"
      ],
      "env": {
        "BUYWHERE_API_KEY": "YOUR_BUYWHERE_API_KEY_HERE"
      }
    }
  }
}

PoloPan Fashion MCP Server

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "polopan-fashion-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "polopan-products-mcp"
      ]
    }
  }
}

Frequently asked questions

Buywhere MCP is categorized under E-Commerce and uses a local stdio subprocess. PoloPan Fashion MCP Server belongs to E-Commerce and uses a local stdio subprocess. Pick Buywhere MCP for e-commerce work and PoloPan Fashion MCP Server for e-commerce.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Buywhere MCP is listed as free. Auth: api key required. PoloPan Fashion MCP Server has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add buywhere-buywhere-mcp and polopan-fashion-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Buywhere MCP has a quality signal of 67/100 (Great) with 4 views, 0 installs and 15 GitHub stars. PoloPan Fashion MCP Server has 63/100 (Good) with 1 views, 0 installs and 1 GitHub stars.