Skip to main content
ClaudeWave

CommerceBridge — remote MCP connector over the Commerce API (eBay, Shopify, Best Buy, Etsy marketplace data). No auth, no local agent.

MCP ServersRegistry oficial0 estrellas0 forksJavaScriptActualizado yesterday
Install in Claude Code / Claude Desktop
Method: NPX · vercel
Claude Code CLI
claude mcp add commercebridge -- npx -y vercel
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "commercebridge": {
      "command": "npx",
      "args": ["-y", "vercel"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Casos de uso

Resumen de MCP Servers

# CommerceBridge

A remote MCP server that wraps the live [Commerce API](https://commerce-api-isaiahduprees-projects.vercel.app) — eBay, Shopify, Best Buy, and Etsy marketplace data behind one `/v1` contract — as MCP tools any agent (Claude, ChatGPT, etc.) can call directly.

**Live:** `https://commercebridge-isaiahduprees-projects.vercel.app/mcp` (Vercel project `commercebridge`, team `isaiahduprees-projects`) — 14 tools, verified against real production data (Shopify live; eBay/Best Buy/Etsy honestly gated until their upstream app keys are provisioned). **Naming note:** the clean `commercebridge.vercel.app` alias is owned by an unrelated third-party product (a WhatsApp-commerce chatbot) — use the team-scoped URL above, same situation as `commerce-api`'s alias collision.

CommerceBridge does no scraping and holds no data of its own: every tool is a thin, faithful `fetch` relay to the upstream Commerce API. Whatever that API returns comes back unmodified, including its errors.

## Why Authentication: None

This connector's underlying data — eBay/Shopify/Best Buy/Etsy marketplace listings — is fully public and carries zero per-user state. There is no account to log into, nothing to authorize, and nothing to bill per-seat. So, deliberately, CommerceBridge has:

- **No OAuth** — no login flow, no token exchange, no `/.well-known/oauth-*` endpoints
- **No Supabase** — no user table, no session storage
- **No billing** — no plans, no usage metering, no upgrade gate

This is the same architectural call this org made for **StoreBridge**, its sibling connector over App Store/Google Play data: public read-only marketplace data gets the lean, stateless build. It is deliberately leaner than this org's OAuth-based Bridge-family connectors (RemindersBridge, MessagesBridge, etc.), which proxy a signed-in user's own private data and do need auth.

## Tools

14 tools, one per Commerce API endpoint, grouped by marketplace/engine:

### eBay — needs `EBAY_CLIENT_ID` / `EBAY_CLIENT_SECRET` on the upstream deployment
| Tool | Endpoint | What it does |
|---|---|---|
| `search_ebay` | `GET /v1/search` | Search live eBay listings by keyword/category across 8 sites (US, GB, DE, AU, CA, FR, IT, ES) |
| `get_ebay_item` | `GET /v1/item` | Get one eBay item's full detail by REST id or legacy id |
| `get_ebay_items` | `GET /v1/items` | Bulk-fetch up to 20 eBay items in one call |
| `search_ebay_sold` | `GET /v1/sold` | Sold/completed-item comps — needs eBay's separately-gated Marketplace Insights API |

### Shopify — keyless, live right now
| Tool | Endpoint | What it does |
|---|---|---|
| `search_shopify_products` | `GET /v1/shopify/products` | List any public Shopify store's catalog from its own `/products.json` |
| `get_shopify_product` | `GET /v1/shopify/product` | Get one product by handle |
| `get_shopify_collections` | `GET /v1/shopify/collections` | List a store's collections |
| `search_shopify` | `GET /v1/shopify/search` | Keyword-filter a store's catalog (title/vendor/type/tags) |

### Best Buy — not yet live upstream (route pending redeploy, then needs `BESTBUY_API_KEY`)
| Tool | Endpoint | What it does |
|---|---|---|
| `search_bestbuy` | `GET /v1/bestbuy/search` | Search Best Buy's US catalog by keyword/category |
| `get_bestbuy_product` | `GET /v1/bestbuy/product` | Get one product by SKU |

### Etsy — not yet live upstream (route pending redeploy, then needs `ETSY_KEYSTRING` + `ETSY_SHARED_SECRET`)
| Tool | Endpoint | What it does |
|---|---|---|
| `search_etsy` | `GET /v1/etsy/search` | Site-wide active-listing keyword search |
| `get_etsy_listing` | `GET /v1/etsy/listing` | Get one listing (only endpoint where `views` is populated) |
| `get_etsy_shop` | `GET /v1/etsy/shop` | Get one shop by `shop_id` or `shop_name` |
| `get_etsy_shop_listings` | `GET /v1/etsy/shop/listings` | List a shop's active listings |

Every tool is annotated `{readOnlyHint:true, destructiveHint:false, idempotentHint:true, openWorldHint:true}` — read-only, non-destructive, idempotent, over an open/external data source.

## Expected upstream errors — not a bug

**Only Shopify is live today.** Every other engine's tool call returns an MCP tool error (`isError: true`) whose text is the upstream's honest error envelope, verbatim — but the *exact* error differs by engine, because the upstream `commerce-api` production deployment currently lags its own source repo:

- **eBay** (`search_ebay*`, `get_ebay*`) — the route **is** deployed, but app keys aren't provisioned, so you get:
  ```
  credentials_required: eBay app credentials required — set EBAY_CLIENT_ID and EBAY_CLIENT_SECRET (free at developer.ebay.com). This API wraps eBay's free Browse API.
  ```
  `search_ebay_sold` additionally always returns a `501 not_enabled` gate regardless of eBay keys — that endpoint needs eBay's separately-approved Marketplace Insights API, which the base Browse API keys don't grant.

- **Best Buy** (`search_bestbuy`, `get_bestbuy_product`) and **Etsy** (`search_etsy*`, `get_etsy*`) — as of this writing, the code for these engines exists in the `commerce-api` source repo but **the live production deployment has not been redeployed to include it yet**, so these routes 404 at the HTTP layer, verified live:
  ```
  not_found: No route for GET /v1/bestbuy/search
  not_found: No route for GET /v1/etsy/shop
  ```
  Once `commerce-api` is redeployed, these will flip to `credentials_required` (`BESTBUY_API_KEY` / `ETSY_KEYSTRING`+`ETSY_SHARED_SECRET` missing) until those keys are provisioned, then to live data — with **zero changes needed here**.

CommerceBridge deliberately does **not** catch, hide, or fake around any of this — the tool handler passes whatever the upstream says straight through as `{isError: true, content: [{type:'text', text: '<code>: <message>'}]}`, whether that's `not_found`, `credentials_required`, or eventually real data.

## Configuration

| Env var | Default | Purpose |
|---|---|---|
| `COMMERCE_API_BASE_URL` | `https://commerce-api-isaiahduprees-projects.vercel.app` | Upstream Commerce API base URL. Override to point at a staging/local Commerce API deployment. |

No other configuration. No secrets belong in this repo — API keys live only on the upstream `commerce-api` deployment.

## Run locally

```bash
npm install
npm test              # local smoke test — initialize, tools/list, 2x tools/call (see below)
```

## Deploy

```bash
npx vercel --yes --prod
```

That's it — no environment variables are required for CommerceBridge itself (only the upstream `commerce-api` deployment needs its marketplace app keys). After deploy, point any MCP client at:

```
https://<your-deployment>.vercel.app/api/mcp
```

## Local smoke test

`npm test` runs `test/smoke.mjs`, which connects a real MCP `Client` to `buildServer()` from `lib/tools.js` over an in-memory transport (the exact same server code `api/mcp.js` serves over HTTP) and checks:

1. **`initialize`** — server identifies itself as `commercebridge` v1.0.0
2. **`tools/list`** — all 14 tools present, each with an object `inputSchema` and the expected RO annotations
3. **`tools/call` → `search_shopify_products`** (`store: "allbirds.com"`) — asserts `isError` is false and real products come back with `marketplace: "shopify"` — proves live data flows end-to-end
4. **`tools/call` → `search_ebay`** — asserts `isError` is true and the error text contains `credentials_required` — proves the upstream honest gate surfaces as a clean MCP tool error, not a crash

`test/local-server.mjs` is a second, thinner check that runs the actual `api/mcp.js` / `api/health.js` handlers behind a plain `http.Server`, to confirm the Vercel-shaped handlers themselves (GET/DELETE → 405, `/api/health` → `{ok, service, upstream}`) work outside of the SDK's in-memory transport.

## Architecture

```
lib/tools.js   — buildServer(): McpServer + all 14 tool registrations + upstream fetch relay
api/mcp.js     — POST /api/mcp — stateless StreamableHTTPServerTransport, no auth
api/health.js  — GET /api/health — {ok, service, upstream}
test/          — smoke.mjs (in-memory client/server), local-server.mjs (HTTP handler check)
```

Lo que la gente pregunta sobre commercebridge

¿Qué es IsaiahDupree/commercebridge?

+

IsaiahDupree/commercebridge es mcp servers para el ecosistema de Claude AI. CommerceBridge — remote MCP connector over the Commerce API (eBay, Shopify, Best Buy, Etsy marketplace data). No auth, no local agent. Tiene 0 estrellas en GitHub y se actualizó por última vez yesterday.

¿Cómo se instala commercebridge?

+

Puedes instalar commercebridge clonando el repositorio (https://github.com/IsaiahDupree/commercebridge) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar IsaiahDupree/commercebridge?

+

IsaiahDupree/commercebridge aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene IsaiahDupree/commercebridge?

+

IsaiahDupree/commercebridge es mantenido por IsaiahDupree. La última actividad registrada en GitHub es de yesterday, con 0 issues abiertos.

¿Hay alternativas a commercebridge?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega commercebridge en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: IsaiahDupree/commercebridge
[![Featured on ClaudeWave](https://claudewave.com/api/badge/isaiahdupree-commercebridge)](https://claudewave.com/repo/isaiahdupree-commercebridge)
<a href="https://claudewave.com/repo/isaiahdupree-commercebridge"><img src="https://claudewave.com/api/badge/isaiahdupree-commercebridge" alt="Featured on ClaudeWave: IsaiahDupree/commercebridge" width="320" height="64" /></a>

Más MCP Servers

Alternativas a commercebridge