Bitroad is a remote MCP server that gives an AI agent 65 tools, among them addresses_create, addresses_list, auth_revoke_self. It answers at https://app.bitroad.ai/api/v1/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Marketplace for AI agents: buy goods and services under spending caps, with returns and disputes.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
addresses_create | Save a new shipping address. Set is_default_shipping=true to make it the default. Inputs: recipient_name, line1, line2, town, region, postcode |
addresses_list | List the principal's saved shipping addresses. The agent does NOT need to call this every purchase — purchase_create_intent will use the principal's default shipping address if `address_id` is omitted. |
auth_revoke_self | Disconnect this OAuth connection by revoking the access+refresh chain that issued the token making this call. Idempotent: a second call returns `{ revoked: false, reason: 'already_revoked' }`. Refuses with `not_oauth_token` when called unde |
auth_whoami | Return who this MCP credential acts as: principal email/role, agent name, client (Claude install) that issued the token, and when it was last used. Works for both br_ik_* instance keys and br_oat_* OAuth tokens; OAuth-specific fields are nu |
catalog_describe_category | Fetch one category by slug, including the spec JSON Schema for leaf categories. Useful before building a structured purchase intent so the agent emits a valid spec query. Inputs: slug |
catalog_get_product | Fetch a single product by id. Returns full description, structured spec values, seller id, live stock, and any restricted-goods flags. Prefer this over re-running search when the agent already has the product id. Inputs: product_id |
catalog_list_categories | List the marketplace's category taxonomy. Optionally pass `slug` to scope to a subtree (e.g. 'electronics'). Each leaf carries its JSON Schema for specs, plus filterable / rangeable arrays so agents know which spec keys are queryable. Inputs: slug |
catalog_search_products | Search marketplace products by free-text query, optional category, or seller. Returns a paginated list of summaries with pence-denominated prices, available stock, and restricted-goods flags. Pass a concise phrase, not a full sentence. Inputs: q, category, category_subtree, seller_id, certifications, restricted |
disputes_add_evidence | Attach an evidence item to an open dispute. The body is base64-encoded; per-item cap is 25 MB and per-dispute cap is 200 MB. Either the filing buyer or the seller-owner can upload. Inputs: dispute_id, kind, mime_type, body_b64, caption |
disputes_file | File a dispute on a goods order (order_id; reasons: not_as_described, defective, not_received, fraud_unauthorized_charge, duplicate_charge, other) or a service quote (service_quote_id; reasons: service_not_delivered, service_quality, servic Inputs: order_id, service_quote_id, reason, summary, desired_outcome, claimed_amount_pence |
disputes_get | Fetch one dispute by id with the full evidence trail and timeline. Buyer-side or seller-side caller — returns 404 if the dispute doesn't belong to either of the calling actor's roles. Inputs: dispute_id |
disputes_list | List disputes for the authenticated principal (buyer-side: ones they filed; seller-side: ones filed against their orders). Filter by `status` (admin_review, awaiting_seller, resolved_for_buyer, resolved_for_seller, withdrawn). Inputs: status, page_size, cursor |
disputes_respond | Seller-side response to a dispute. Requires the seller delegation's `respond_dispute` action. Free-form text 1–4000 chars. Inputs: dispute_id, text |
disputes_withdraw | Buyer-only: withdraw an open dispute. Closed disputes cannot be withdrawn. Inputs: dispute_id |
envelopes_get | Fetch a single envelope by id. Returns the same shape as envelopes_list. Returns 404 when the envelope is not bound to the calling agent instance. Inputs: envelope_id |
envelopes_list | List the active and historical payment envelopes the calling agent instance can draw against. Each entry shows balance, scope, validity, and per-tx / per-day caps. Read-only — envelopes are created, topped up, and revoked by the principal i |
orders_get | Fetch a single order with line items, shipment / tracking, payment status, and any associated returns or disputes. Buyer-side view — for seller-side use seller_get_order. Inputs: order_id |
orders_list | List orders the authenticated principal placed (buyer-side view), paginated with a cursor. Optional status filter (e.g. 'paid_awaiting_fulfillment', 'delivered', 'cancelled'). Use this to find an order id before calling orders_get. Inputs: status, page_size, cursor |
payment_methods_create | Returns a one-time Stripe Checkout URL to hand the user so they can add a payment card. The card is saved to their account automatically when they complete the hosted flow — no charge is made (setup mode only). Present the `checkout_url` to |
payment_methods_list | List the principal's saved payment methods (last4 + brand only — full card numbers are never exposed to agents). purchase_confirm_intent uses the principal's default method if no `payment_method_id` is passed. |
platforms_get | Fetch a platform's public reputation profile by slug: KYC status, rolling-window orders/disputes/refunds, on-time-ship rate, dispute resolution p50/p95, anomaly-pause count. Decommissioned platforms include the banner and reason. Inputs: slug |
purchase_cancel_intent | Cancel a pending purchase intent and release the stock reservation. Inputs: intent_id |
purchase_confirm_intent | Confirm a purchase intent — re-validates price within 1p tolerance, charges via Stripe Connect destination charges (per-seller application fee on item only), and creates the order. May return SCA / payment-action-required / declined errors. Inputs: intent_id, acknowledged_confirmation, confirmation_token, __outcomeForTesting |
purchase_create_intent | Create a purchase intent for a product. Reserves stock, snapshots price + VAT + shipping, and consults the delegation policy. Returns an intent id; intents expire after 15 minutes if not confirmed. Combined postage: same-seller purchases to Inputs: product_id, quantity, address_id, payment_method_id |
returns_get | Fetch a single return by id, including reason, status, restocking fee (if any), refund ledger, and the inspection trail once the parcel has arrived. Inputs: return_id |
returns_get_label | Fetch a short-lived signed URL for the return shipping label PDF. URL expires within minutes; re-call to get a fresh one. Only available once the return has progressed to label_ready. Inputs: return_id |
returns_initiate | Initiate a return on a delivered order. Uniform platform policy: a 30-day change-of-mind window from delivery, FREE, full refund, NO restocking fee, and the SELLER funds the return label. Reasons: cooling_off_statutory (days 0–14) and cooli Inputs: order_id, reason, description |
returns_list | List returns the authenticated principal filed (buyer-side view), paginated. Filter by `order_id` to find returns on a specific order, or by `status` (initiated, label_ready, in_transit, received, refunded, rejected). Inputs: order_id, status, page_size, cursor |
seller_accept_return | Acknowledge that a returned parcel arrived and was inspected. Moves return: approved → received. The refund engine runs idempotently afterwards via the existing webhook flow. Inputs: return_id, inspection_notes |
seller_archive_listing | Soft-delete a listing (is_active=false). Refuses while any purchase intents are still pending against it. Inputs: product_id |
seller_attach_tracking | Attach or update tracking on an already-shipped order. Use mark_shipped for first ship; this is for late-arriving tracking only. Inputs: order_id, carrier, tracking_number |
seller_create_listing | Create a product listing. Validates the payload against the leaf category's spec schema and the structured return policy. Restricted-goods classifier runs at write time; flagged listings are inserted but invisible until cleared. Inputs: title, description, category_slug, price_pence, shipping_pence, vat_rate_bp |
seller_get_listing | Fetch a single listing the bound seller owns, including its full description, current stock + reserved counts, spec values, and any moderation state. Refuses if the listing belongs to a different seller. Inputs: product_id |
seller_get_me | Fetch the seller record bound to the calling principal or seller-side agent instance. Refuses when the caller has no seller record. |
seller_get_order | Fetch a single seller-scoped order with buyer shipping address (PII-redacted where the policy requires it), items, shipment, payment status, and any associated return/dispute. Refuses if the order isn't against this seller. Inputs: order_id |
seller_get_return | Fetch a single return filed against one of the bound seller's orders, with reason, status, restocking fee, inspection notes, and the refund ledger. Refuses if the return isn't on a seller-owned order. Inputs: return_id |
seller_list_listings | List the bound seller's product listings, paginated. Includes archived/flagged listings by default — pass `is_active: true` to filter to live listings only. Returns slug, category, stock, price, and any moderation flags. Inputs: is_active, page_size, cursor |
seller_list_orders | List orders placed against the bound seller's products (seller-side view), paginated. Filter by `status` (e.g. 'paid_awaiting_fulfillment' to find orders that need shipping). This is the seller-equivalent of orders_list. Inputs: status, page_size, cursor |
seller_list_returns | List returns filed against the bound seller's orders, paginated. Filter by `status` (initiated, label_ready, in_transit, received, refunded, rejected) to triage what needs inspection. Seller-equivalent of returns_list. Inputs: status, page_size, cursor |
seller_list_reviews | List reviews left on this seller's orders, paginated. Filter by `responded: false` to find reviews that still need a seller response. A review's `rating` is 1-5; lower-rated ones are typically the highest priority to respond to. Inputs: page_size, cursor |
seller_mark_delivered, seller_mark_shipped, seller_onboarding_status, seller_reject_return, seller_respond_to_review, seller_update_listing, seller_update_stock, sellers_get, services_accept_quote, services_acknowledge_delivery, services_counter_quote, services_create_listing, services_get_listing, services_get_quote, services_list_my_quotes, services_list_my_sales, services_list_open_requests, services_purchase, services_reject_quote, services_request_quote, services_search_listings, services_start_work, services_submit_deliverable, services_submit_quote, services_withdraw_quote
Every block below points at https://app.bitroad.ai/api/v1/mcp. Pick your client and copy.
claude mcp add --transport http bitroad https://app.bitroad.ai/api/v1/mcp
{
"mcpServers": {
"bitroad": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.bitroad.ai/api/v1/mcp"]
}
}
}{
"mcpServers": {
"bitroad": {
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"servers": {
"bitroad": {
"type": "http",
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"context_servers": {
"bitroad": {
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"mcpServers": {
"bitroad": {
"serverUrl": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"mcpServers": {
"bitroad": {
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}name: Bitroad
version: 0.0.1
schema: v1
mcpServers:
- name: Bitroad
type: streamable-http
url: https://app.bitroad.ai/api/v1/mcp{
"mcpServers": {
"bitroad": {
"httpUrl": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"mcpServers": {
"bitroad": {
"type": "http",
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}{
"mcpServers": {
"bitroad": {
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapp.bitroad.ai%2Fapi%2Fv1%2Fmcp&type=streamable_http&id=bitroad&name=Bitroad
It answered our last check on 17 October 2026 in 208 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by bitroad.ai and served from app.bitroad.ai, the vendor's own domain: https://app.bitroad.ai/api/v1/mcp.
65, as returned by the server's own tools/list on 7 September 2026: addresses_create, addresses_list, auth_revoke_self, auth_whoami, catalog_describe_category, catalog_get_product, catalog_list_categories, catalog_search_products, and 57 more.
It answered our last check on 17 October 2026 in 208 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://app.bitroad.ai/api/v1/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: ai.bitroad. Endpoint host: app.bitroad.ai. ARD identifier: urn:air:ai.bitroad:mcp:bitroad.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.