DEV Community

BuyWhere
BuyWhere

Posted on Originally published at buywhere.ai

Compare two products with BuyWhere MCP compare_products_v2 (2026)

Compare two products with BuyWhere MCP compare_products_v2

You do not need a scraper farm to answer "which of these two laptops is cheaper right now." BuyWhere's MCP server exposes compare_products_v2 over JSON-RPC at https://api.buywhere.ai/mcp.

Live listing: Smithery · Glama

Why this exists

Affiliate product cards on BuyWhere intent pages (for example best gaming laptops US and best 4K monitors Singapore) already route through /r/ merchant links. Agents should use the same catalog, not HTML.

The remote MCP surface currently lists 13 tools (search_products + *_v2 variants). compare_products_v2 is the one that returns a side-by-side price/spec payload.

Minimal Python (stdlib only)

import json, urllib.request

MCP = "https://api.buywhere.ai/mcp"

def rpc(method, params=None, id=1):
    body = json.dumps({"jsonrpc": "2.0", "id": id, "method": method, "params": params or {}}).encode()
    req = urllib.request.Request(MCP, data=body, headers={"Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)

# 1. list tools (sanity)
tools = [t["name"] for t in rpc("tools/list")["result"]["tools"]]
assert "compare_products_v2" in tools

# 2. search two SKUs in one country
def search(q, country="US"):
    res = rpc("tools/call", {
        "name": "search_products_v2",
        "arguments": {"query": q, "country": country, "limit": 5},
    })
    return res

print(search("gaming laptop rtx 4070"))
Enter fullscreen mode Exit fullscreen mode

Call compare_products_v2 with two product ids from the search result. Always read nested price.amount / price.currency — the catalog does not flatten those fields.

Guardrails that actually matter

  • Currency is nested. Filter price.currency == "USD" or "SGD" before ranking.
  • US iPhone search still returns accessories. If you asked for a phone and got $13 cases, that is a catalog gap, not a client bug.
  • Do not scrape merchant URLs. Route humans through BuyWhere /r/ pages; agents use MCP.

Install

Remote: https://api.buywhere.ai/mcp

npx: npx @buywhere/mcp

If you are wiring this into Claude / Cursor / Smithery, the 13-tool list is the source of truth — not a 5-tool smithery.yaml excerpt.

Prices move. Re-query; do not cache a "cheapest" claim in prose.

Top comments (0)