Connects your AI agent to 50M+ products across Singapore, Southeast Asia, and US markets through six core tools: search_products for catalog queries with filters on price and category, get_product for full specs and pricing, compare_prices for side-by-side analysis, get_price for real-time merchant data, get_affiliate_link for tracked URLs, and get_catalog for browsing taxonomy. Built on the BuyWhere API with multi-currency support and coverage of Lazada, Shopee, Amazon, and regional retailers. Reach for this when you're building shopping assistants, price comparison agents, or deal finders that need structured product data instead of web scraping. Supports both stdio and streamable HTTP transports. Requires a free API key from buywhere.ai.
claude mcp add --transport http buywhere-mcp https://api.buywhere.ai/mcpRun in your terminal. Add --scope user to make it available in every project.
Review the command, arguments, and environment values before installing — MCP servers run with your local permissions.
Verified live against the running server on Jun 10, 2026.
search_productsSearch the BuyWhere product catalog by keyword. Returns products from e-commerce platforms across multiple regions (Singapore, US, etc.). Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields.11 paramsSearch the BuyWhere product catalog by keyword. Returns products from e-commerce platforms across multiple regions (Singapore, US, etc.). Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields.
qstringlimitintegerdomainstringoffsetintegerregionstringcompactbooleancountrystringcategorystringmax_pricenumbermin_pricenumbercountry_codestringSG · US · VN · TH · MYget_productGet a specific product by its ID, including full details and current price.1 paramsGet a specific product by its ID, including full details and current price.
id*stringcompare_productsCompare multiple products side-by-side. Returns price, brand, rating, and category for each.1 paramsCompare multiple products side-by-side. Returns price, brand, rating, and category for each.
ids*arrayget_dealsGet discounted products sorted by discount percentage. Returns products with original price and discount percentage. Supports currency, region (sea, us, eu, au) and country (SG, US, VN, MY, ...) filters.7 paramsGet discounted products sorted by discount percentage. Returns products with original price and discount percentage. Supports currency, region (sea, us, eu, au) and country (SG, US, VN, MY, ...) filters.
limitintegeroffsetintegerregionstringcountrystringcurrencystringcountry_codestringSG · US · VN · TH · MYmin_discountnumberlist_categoriesList top-level product categories available in the BuyWhere catalog.2 paramsList top-level product categories available in the BuyWhere catalog.
countrystringcountry_codestringSG · US · VN · TH · MYfind_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". This finds the best current price across all merchants.5 paramsUse 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". This finds the best current price across all merchants.
regionstringus · seacountrystringcategorystringcountry_codestringSG · MY · TH · PH · VN · IDproduct_name*stringingest_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.2 paramsIngest (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.
source*stringproducts*arrayAI agents use BuyWhere to search products, compare prices, and discover deals across Singapore and US merchants in real time.
export BUYWHERE_API_KEY=bw_live_xxxx
npx -y @buywhere/mcp-server
Use with Claude Desktop, Cursor, VS Code Copilot, Cline, Windsurf, OpenCode, Codex, Continue.dev, and any MCP-compatible client.
Or get one in 3 seconds, no signup, no email: POST /v1/auth/register · Legacy form: buywhere.ai/api-keys
Join the "Build With BuyWhere" AI Agent Developer Challenge! Use the BuyWhere MCP server to create AI agents that search, compare, and recommend products across Singapore, SEA, and US markets.
Product search API for AI agents via Model Context Protocol. Built for AI agent commerce, not store management.
Official MCP Registry listing: io.github.BuyWhere/buywhere-mcp
Works with Claude Desktop, Cursor, VS Code Copilot, Cline, Windsurf, OpenCode, Codex, Continue.dev, and any MCP-compatible client. Also supports Agent-to-Agent (A2A) protocol.

44-second demo: product search, deal discovery, price comparison, and multi-region support.
User: "Find me wireless earbuds under $50 available in Singapore"
Agent: [calls search_products → returns 5 matching products]
User: "Compare the top 3"
Agent: [calls compare_prices → side-by-side with best-value pick]
Get a key in 3 seconds — no signup, no email:
# 1. Register (one call, returns api_key instantly)
curl -X POST https://api.buywhere.ai/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"agent_name":"your-agent"}'
# → {"api_key":"bw_...","tier":"unverified","rate_limit":{"rpm":20,"daily":1000}}
# 2. Use the key
export BUYWHERE_API_KEY=bw_...
npx -y @buywhere/mcp-server
Legacy email signup (60s, manual approval) → buywhere.ai/api-keys
Read the BuyWhere Engineering Blog for deep dives on MCP architecture, agent commerce, and the ecosystem.
Also follow the BuyWhere Hashnode blog mirror for the same engineering content on Hashnode.
| Tool | Description |
|---|---|
search_products | Search catalog by keyword, category, price, region |
get_product | Full product details by ID (prices, specs, images) |
compare_prices | Side-by-side comparison of 2–5 products |
get_price | Current prices across all merchants for one product |
get_affiliate_link | Click-tracked affiliate URL for a product |
get_catalog | Available product category taxonomy |
Framework quickstarts:
Add to claude_desktop_config.json:
{
"mcpServers": {
"buywhere": {
"command": "npx",
"args": ["-y", "@buywhere/mcp-server"],
"env": { "BUYWHERE_API_KEY": "bw_live_xxxx" }
}
}
}
Add to your MCP settings file:
{
"mcpServers": {
"buywhere": {
"command": "npx",
"args": ["-y", "@buywhere/mcp-server"],
"env": { "BUYWHERE_API_KEY": "bw_live_xxxx" }
}
}
}
Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"buywhere": {
"command": "npx",
"args": ["-y", "@buywhere/mcp-server"],
"env": { "BUYWHERE_API_KEY": "bw_live_xxxx" }
}
}
}
Add to opencode.json:
{
"mcpServers": {
"buywhere": {
"command": "npx",
"args": ["-y", "@buywhere/mcp-server"],
"env": { "BUYWHERE_API_KEY": "bw_live_xxxx" }
}
}
}
Add to ~/.continue/config.json:
{
"experimental": {
"mcpServers": {
"buywhere": {
"command": "npx",
"args": ["-y", "@buywhere/mcp-server"],
"env": { "BUYWHERE_API_KEY": "bw_live_xxxx" }
}
}
}
}
Mastra is a TypeScript-first AI agent framework with native MCP support.
npm install @mastra/core @mastra/mcp
import { Mastra } from '@mastra/core';
import { MastraMCPClient } from '@mastra/mcp';
const buywhere = new MastraMCPClient({
name: 'buywhere',
server: {
url: new URL('https://api.buywhere.ai/mcp'),
requestInit: {
headers: { 'Authorization': `Bearer ${process.env.BUYWHERE_API_KEY}` },
},
},
});
const agent = new Mastra({
agents: {
shoppingAgent: {
instructions: 'You are a shopping assistant. Use BuyWhere to find and compare products.',
tools: await buywhere.tools(),
},
},
});
const result = await agent.agents.shoppingAgent.generate(
'Find me the best deal on a Sony WH-1000XM5 in Singapore'
);
Full guide: BuyWhere + Mastra Integration
Use BuyWhere tools in LangChain agents via the MCP adapter:
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_anthropic import ChatAnthropic
async def main():
async with MultiServerMCPClient({
"buywhere": {
"url": "https://api.buywhere.ai/mcp",
"transport": "streamable_http",
"headers": {"Authorization": f"Bearer {BUYWHERE_API_KEY}"},
}
}) as client:
tools = await client.get_tools()
agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-5"), tools)
result = await agent.ainvoke({"messages": [("user", "Find the cheapest Sony headphones in Singapore")]})
Connect BuyWhere via LlamaIndex MCP client:
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
from llama_index.agent.openai import OpenAIAgent
async def main():
mcp_client = BasicMCPClient(
command_or_url="https://api.buywhere.ai/mcp",
headers={"Authorization": f"Bearer {BUYWHERE_API_KEY}"},
)
mcp_tool_spec = McpToolSpec(client=mcp_client)
tools = mcp_tool_spec.to_tool_list()
agent = OpenAIAgent.from_tools(tools)
response = await agent.achat("Compare prices for iPhone 16 Pro across Singapore and US")
Use BuyWhere in a CrewAI agent with MCP tool integration:
from crewai import Agent, Task, Crew
from crewai_tools import MCPServerAdapter
buywhere_server = MCPServerAdapter(
server_params={
"url": "https://api.buywhere.ai/mcp",
"headers": {"Authorization": f"Bearer {BUYWHERE_API_KEY}"},
"transport": "streamable-http",
}
)
shopping_agent = Agent(
role="Shopping Research Analyst",
goal="Find the best deals across Singapore and US markets",
tools=[buywhere_server],
)
task = Task(
description="Find the best price for Sony WH-1000XM5 headphones across all available markets",
agent=shopping_agent,
expected_output="Product comparison with prices and merchant links",
)
crew = Crew(agents=[shopping_agent], tasks=[task])
result = crew.kickoff()
| Variable | Default | Description |
|---|---|---|
BUYWHERE_API_KEY | (required) | API key (no signup: POST /v1/auth/register {"agent_name":"<name>"}) — returns instantly, no email verification |
BUYWHERE_API_URL | https://api.buywhere.ai/mcp | Custom API base URL |
# Run directly (no install)
npx -y @buywhere/mcp-server
# Install globally
npm install -g @buywhere/mcp-server
buywhere-mcp
Developer's AI Agent (Claude, Cursor, etc.)
│
├── MCP Protocol (stdio)
│
├── @buywhere/mcp-server
│ ├── search_products(q, category, min_price, max_price, country_code)
│ ├── get_product(product_id)
│ ├── compare_prices(product_ids[])
│ ├── get_price(product_id)
│ ├── get_affiliate_link(product_id, platform)
│ └── get_catalog()
│
└── BuyWhere API (api.buywhere.ai)
└── Product catalog across SG and US merchants
git clone https://github.com/BuyWhere/buywhere-mcp.git
cd buywhere-mcp
npm install
npm run build
npm start
BuyWhere is a product search API for AI agents. We aggregate product data from Singapore and US merchants into a single, agent-friendly interface — no store management, no Shopify integration. Just search and compare products in real time.
These complementary MCP packages extend BuyWhere into powerful multi-tool workflows:
| Protocol | Support |
|---|---|
| MCP (Model Context Protocol) | Full support — 6 tools, stdio transport |
| A2A (Agent-to-Agent) | Multi-agent task delegation — Agent Card |
See CONTRIBUTING.md for how to report issues, submit PRs, and suggest features.
Learn more about MCP servers and the BuyWhere ecosystem:
If you find this project useful:
MIT
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent