Marketplace for AI agents: buy goods and services under spending caps, with returns and disputes.
Bitroad MCP Server (ai.bitroad/bitroad)
Bitroad is a marketplace for AI agents that searches a catalogue of goods and services, places orders under spending caps, tracks delivery, and supports returns and disputes. Access is provided via the Model Context Protocol using a Streamable HTTP transport and JSON-RPC 2.0.
🛠️ Key Features
Goods and services marketplace for AI agents
Order placement with spending caps
Delivery tracking
Returns and disputes handling
Endpoint: https://app.bitroad.ai/api/v1/mcp
🚀 Use Cases
Buying marketplace goods and services via an AI agent
Enforcing agent-defined spending limits
Managing post-purchase flows (returns and disputes)
⚡ Developer Benefits
Spec-compliant Streamable HTTP transport
JSON-RPC 2.0 interface
OAuth 2.1 authentication with dynamic client registration and PKCE
Most clients can use only the provided MCP URL
⚠️ Limitations
OAuth 2.1 is required for access; client setup may be needed if not using standard clients
Bitroad is a marketplace built for AI agents. Your agent searches a catalogue of
goods and services, places orders under spending caps you set, tracks delivery,
and handles returns and disputes, all through the Model Context Protocol.
Endpoint:https://app.bitroad.ai/api/v1/mcp
Transport is spec-compliant Streamable HTTP with JSON-RPC 2.0. Auth is OAuth 2.1
with dynamic client registration and PKCE, so most clients need nothing more than
the URL above.
Add the endpoint to your MCP client and approve the consent screen.
Your agent can now browse and read orders immediately.
To let it spend, add a card and set delegation caps in your dashboard. Until
you do, there is no purchase path at all.
Spending is bounded by three caps you control: per transaction, per day, and
total. A purchase above any cap is refused outright, with a reason of
per_tx_cap_exceeded, daily_cap_exceeded or total_cap_exceeded. Separately,
you can set a confirmation threshold: a purchase at or above it is allowed but
returns confirmation_required with a token, and needs your explicit sign-off
before it proceeds. Agents never see card details; a card can only be added by
you through Stripe hosted checkout.
Connect your client
There are three shapes. Pick the one that matches your client.
CLI clients
bash
# Claude Code
claude mcp add --transport http bitroad https://app.bitroad.ai/api/v1/mcp
# Gemini CLI
gemini mcp add --transport http bitroad https://app.bitroad.ai/api/v1/mcp
Run the client and trigger the OAuth flow (/mcp in Claude Code, automatic in
Gemini CLI), then approve on the Bitroad consent screen.
Config-file clients
Cursor, Claude Desktop, Cline, Windsurf, LibreChat and most other MCP clients
take a JSON block:
Keys are shown once. Revoke them from the same page.
Stdio bridge
Clients and directory crawlers that only speak stdio can run the bridge in this
repository. It forwards each JSON-RPC message to the hosted endpoint unchanged
and has no dependencies beyond Node 18+.
bash
git clone https://github.com/bitroadai/bitroad-mcp && cd bitroad-mcp
BITROAD_API_KEY=br_ik_... node bin/bitroad-mcp.js
Without BITROAD_API_KEY the handshake and tools/list still work; tools/call
returns an authentication error telling you to set it. BITROAD_MCP_URL
overrides the endpoint.
Tool catalogue
Call tools/list for the live catalogue with full JSON Schema. tools/list
returns the whole catalogue to every caller; your account type is enforced when a
tool is called, not when it is listed. Buyer and seller are separate account
types and one email can only be one of them, so a buyer calling a seller_* tool
is refused.
Listings, stock, orders, shipping and tracking, returns, and review responses,
under the seller_* prefix.
Services
A quote-based marketplace for work rather than goods, under the services_*
prefix: request a quote, accept it, and funds are held in escrow until you accept
the deliverable.
The catalogue also carries envelopes_list and envelopes_get, a preview
surface that is switched off on the hosted service. They appear in tools/list
but return a not-found error when called.
Buying a product is a two-step flow. purchase_create_intent reserves stock and
snapshots price, VAT and shipping, then purchase_confirm_intent charges and
creates the order. Intents expire after 15 minutes. All monetary values are
integer pence.
Idempotency
Write tools accept an optional _meta.idempotencyKey. Passing one gives you full
replay semantics on retries. If your client cannot set it, the server generates
one so the call still succeeds.