---
title: "MCP server: connect Claude, ChatGPT and other agents"
description: "Connect Claude Code, Claude.ai, the Claude Messages API or ChatGPT to the Bridge to Brands MCP server at https://mcp.brdg2b.ai/mcp. Auth, tools and setup snippets."
canonical: https://brdg2b.ai/docs/mcp
updated: 2026-10-16
---

# MCP server: connect Claude, ChatGPT and other agents

Bridge to Brands is a product of RunOps Inc.

**Endpoint:** `https://mcp.brdg2b.ai/mcp`, MCP Streamable HTTP (SSE kept as a fallback for older clients). One server for all accounts; the credential decides the account.

## Which auth your client uses

| Client | API key in a header | OAuth 2.1 |
|---|---|---|
| Claude Code / Claude Desktop (`claude mcp add --header`) | yes | yes |
| Claude Messages API `mcp_servers` | yes (`authorization_token`) | bring your own token |
| Claude.ai custom connectors | yes, beta "Request headers" (per organisation) | yes |
| ChatGPT custom connectors (Developer mode) / Apps SDK | no | yes |

## Setup

**Claude Code**

```bash
claude mcp add --transport http brdg2b https://mcp.brdg2b.ai/mcp \
  --header "Authorization: Bearer b2b_live_XXXXXXXX_..."
```

**Claude Messages API**

```json
"mcp_servers": [{ "type": "url", "url": "https://mcp.brdg2b.ai/mcp",
                  "name": "brdg2b", "authorization_token": "b2b_live_..." }]
```

**Claude.ai / Claude Desktop**: Settings → Connectors → Add custom connector. URL `https://mcp.brdg2b.ai/mcp`; either Request headers → `Authorization: Bearer b2b_live_…` (if your organisation has the beta), or Sign in → Google → pick the key (OAuth).

**ChatGPT**: Settings → Apps & Connectors → Developer mode → Add. URL `https://mcp.brdg2b.ai/mcp`, Authentication: OAuth → sign in → pick the key.

## Tools

The tool table below is generated from the server's own tool list at build time.

Read tools carry `readOnlyHint: true`; every tool is `openWorldHint: true` because it calls third-party portals. Errors come back as data the model can act on, for example "brand not connected: ask the account owner to connect HOKA in app.brdg2b.ai/brands". Every tool call is metered to the key behind the credential.

## Tool list

The MCP server exposes 17 tools (generated from the server):

| Tool | Kind | What it does |
|---|---|---|
| `list_brands()` | read-only | Lists every brand Bridge to Brands supports, whether this account has connected each brand's dealer portal, and what each brand can do. |
| `list_accounts(brand?)` | read-only | Lists the retailer's logins (accounts) per brand — a brand can have several, such as 'Retail stores' and 'Amazon FBA', each seeing different warehouses, prices, availability and ship-tos. |
| `search_products(brand, query, account?, limit?, mode?, page?)` | read-only | Searches one brand's dealer catalog by free text and returns matching styles with their colourways, images and dealer prices. |
| `get_product(brand, style_id, account?)` | read-only | Returns one style's colourways, size run, images and dealer prices. |
| `get_availability(brand, style_id, account?, accounts?, color_id?)` | read-only | Reads the brand's live availability grid — sizes × delivery windows with quantities — for one style (one colourway or all). |
| `lookup_items(brand, items, account?)` | read-only | Resolves up to 200 items — by UPC, SKU, style+colour+size or vendor variant id — to the brand's exact variant, with immediate availability, future windows and dealer price. |
| `list_ship_tos(brand, account?)` | read-only | Lists the account's stores as the brand's portal knows them — the destinations a fill-in can ship to. |
| `place_order(brand, idempotency_key, kind, lines, po, ship_to_ref, account?, confirm?, consumer?, mode?, ship_dates?, terms_ack?)` | writes | Stages an order as an UNSUBMITTED draft or basket in the brand's dealer portal and returns the links where the user reviews and submits it, or with mode `submit` places it with the brand where the brand and the account allow it. |
| `submit_order(order_id, confirm?, ship_dates?, terms_ack?)` | writes (destructive) | Places a staged order with the brand: the staged basket is read back, compared with the order and submitted exactly once. |
| `cancel_order(order_id)` | writes (destructive) | Asks the brand's portal to cancel every vendor order of a submitted order, where the brand allows cancelling. |
| `get_order(order_id)` | read-only | Returns one order — staged by brdg2b or read from the vendor's own order book — with its status, portal links, confirmed lines and shipments. |
| `list_orders(account?, brand?, cursor?, limit?, since?, source?, status?)` | read-only | Lists the account's orders, newest first: those staged through brdg2b and those in the vendors' own order books. |
| `track_order(brand?, order_id?, po?, vendor_order_number?)` | read-only | Returns the shipments of one order with carrier, tracking number and a tracking link per package. |
| `refresh_order(order_id)` | read-only | Re-reads one order from the brand's portal now and returns the updated order. |
| `get_usage(group_by?, period?)` | read-only | Returns the calling key's own usage — requests, results, orders, lines and units — for a period. |
| `request_brand(name, portal_url, note?)` | writes | Asks Bridge to Brands to build a connector for a brand that is not in list_brands. |
| `list_brand_requests()` | read-only | Lists this account's requests for new brands and their status. |
