io.github.richmondteo-code/buywhere-mcp
Agent-native product catalog API for Southeast Asia — search, compare prices, find deals.
Open source Open in the app JSON README (API)
About
Agent-native product catalog API for Southeast Asia — search, compare prices, find deals.
Details
- Kind
- MCP servers
- Topic
- E-commerce & business
- Publisher
- richmondteo-code
- Origin
- official
- Category
- ferramentas
- Transport
- desconhecido
- Version
- 1.0.0
- Last push
- 2026-04-16T16:04:19Z
- Repository state
- ativo
- Language
- JavaScript
- Added
- 2026-08-29 04:01:18
- Updated
- 2026-08-30 16:01:02
- Origin id
io.github.richmondteo-code/buywhere-mcp
README
# buywhere-mcp
MCP server for the [BuyWhere](https://buywhere.ai) product catalog. Lets Claude Desktop, Cursor, Windsurf, and other MCP-compatible agents search and retrieve products without writing any HTTP code.
## Setup
### 1. Get your API key
Sign up at [buywhere.ai/developers](https://buywhere.ai/dashboard) and copy your API key.
### 2. Configure your client
#### Claude Desktop
Open `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) and add:
```json
{
"mcpServers": {
"buywhere": {
"command": "python",
"args": ["mcp_server.py"],
"env": {
"BUYWHERE_API_KEY": "your_api_key_here"
}
}
}
}
```
#### Cursor
Open **Settings → MCP** and add a new server, or edit `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"buywhere": {
"command": "python",
"args": ["mcp_server.py"],
"env": {
"BUYWHERE_API_KEY": "your_api_key_here"
}
}
}
}
```
#### Windsurf
Edit `~/.codeium/windsurf/mcp_config.json`:
```json
{
"mcpServers": {
"buywhere": {
"command": "python",
"args": ["mcp_server.py"],
"env": {
"BUYWHERE_API_KEY": "your_api_key_here"
}
}
}
}
```
### 3. Ask your agent to search products
Restart your client, then try:
> *"Search BuyWhere for wireless earbuds under $50 in Singapore"*
> *"Use BuyWhere to compare the cheapest iPhone 15 cases"*
> *"Get me the affiliate link for product ID abc123 from BuyWhere"*
---
## Tools
### `search_products`
Search the BuyWhere catalog using keywords or natural language.
| Parameter | Type | Required | Description |
|------------|---------|----------|-------------|
| `query` | string | yes | Keyword or natural-language query |
| `country` | string | no | Country code hint (`sg`, `my`, `id`) |
| `category` | string | no | Category slug (e.g. `electronics/smartphones`) |
| `limit` | integer | no | Max results, 1–50 (default 10) |
### `get_product`
Fetch full details for a single product.
| Parameter | Type | Required | Description |
|--------------|--------|----------|-------------|
| `product_id` | string | yes | BuyWhere product ID |
### `get_price`
Compare current prices for a product across all available merchants. Returns listings ranked by total price (including shipping), plus best-price and best-value recommendations.
| Parameter | Type | Required | Description |
|--------------|--------|----------|-------------|
| `product_id` | string | yes | BuyWhere product ID |
### `compare_prices`
Side-by-side comparison of 2–5 products. Returns structured differentiators, price range, pros/cons, and a best-value recommendation — purpose-built for AI agent decision-making.
| Parameter | Type | Required | Description |
|---------------|----------|----------|-------------|
| `product_ids` | string[] | yes | Array of 2–5 BuyWhere product IDs |
### `get_affiliate_link`
Get the click-tracked BuyWhere affiliate link for a product. Always use this instead of raw product URLs when sharing links with users — it logs the referral and redirects to the merchant page.
| Parameter | Type | Required | Description |
|--------------|--------|----------|-------------|
| `product_id` | string | yes | BuyWhere product ID |
### `get_catalog`
List available product categories. Use this to discover what categories exist before searching or filtering.
| Parameter | Type | Required | Description |
|---------------|--------|----------|-------------|
| `parent_slug` | string | no | Parent slug for subcategories (omit for top-level) |
## Resources
| URI | Description |
|-----|-------------|
| `buywhere://catalog/sg` | Available categories in Singapore |
| `buywhere://catalog/my` | Available categories in Malaysia |
| `buywhere://catalog/id` | Available categories in Indonesia |
## Environment variables
| Variable | Required | Description |
|--------------------|----------|-------------|
| `BUYWHERE_API_KEY` | yes | Your BuyWhere API key |
| `BUYWHERE_API_URL` | no | Override API base URL (default: `https://api.buywhere.ai`) |
## Sample agent conversation
```
User: Find the cheapest mechanical keyboard on BuyWhere and compare the top 2
Claude: I'll search BuyWhere for mechanical keyboards and compare the top results.
[Calls search_products with query="mechanical keyboard", limit=5]
Found 12 products. Top results:
1. Keychron K2 — SGD 89.00 (prod_abc123)
2. Royal Kludge RK61 — SGD 65.00 (prod_def456)
[Calls compare_prices with product_ids=["prod_abc123", "prod_def456"]]
Comparison: Keychron K2 vs Royal Kludge RK61
Price range: SGD 65 – SGD 89
Key differences:
• Keychron K2: full-size TKL layout, Mac-optimised keycaps
• RK61: compact 60% layout, budget-friendly
Best value: Royal Kludge RK61 at SGD 65
[Calls get_affiliate_link with product_id="prod_def456"]
Here's your purchase link: https://api.buywhere.ai/r/prod_def456
```
## Development
```bash
npm install
npm run build
BUYWHERE_API_KEY=your_key python mcp_server.py
```