ai.bitroad/bitroad
REMOTE · APP.BITROAD.AI
Marketplace for AI agents: buy goods and services under spending caps, with returns and disputes.
Available components
Last scanned (18 hours ago)
Scores higher than 95% of remote servers
Reachable. Last reached 16 Oct 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 401, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability78
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8015 tokens (~123/item across 65 items; 65 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 66 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
- Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 10 Oct 26 +1
- Stability: 0.97 → pass security
- 7 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 97. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 4 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Oct 2026 · Probed https://app.bitroad.ai/api/v1/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=bitroad.ai | CN=WE1,O=Google Trust Services,C=US | 29 Aug 2026 | 27 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 61eb0d6c8b0e00060e85dedca6e7b009 |
| SANs: bitroad.ai, *.bitroad.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of app.bitroad.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| bitroad.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="bitroad", resource_metadata="https://app.bitroad.ai/.well-known/oauth-protected-resource"
Bearer realm="bitroad", resource_metadata="https://app.bitroad.ai/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Protected resource metadata
| Document | https://app.bitroad.ai/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://app.bitroad.ai/api/v1/mcp |
| Authorisation server | https://app.bitroad.ai |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://app.bitroad.ai/api/v1/mcp | Verified | 200 | |
| http (plaintext) | http://app.bitroad.ai/api/v1/mcp | Inconclusive | 401 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
addresses_create Addresses create ~179
Save a new shipping address. Set is_default_shipping=true to make it the default.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Destination country code: GB (default) or US. |
| is_default_shipping | boolean | yes | When true, make this the buyer's default shipping address. Defaults to false. |
| line1 | string | yes | First address line (street address). |
| line2 | – | – | Second address line, if any. |
| phone | – | – | Contact phone number for delivery, if any. |
| postcode | string | yes | UK postcode for GB; US ZIP as 12345 or 12345-6789. |
| recipient_name | string | yes | Full name of the delivery recipient. |
| region | – | – | Two-letter US state code (e.g. CA); required for country=US, unused for GB. |
| town | string | yes | Town or city. |
No output schema declared.
No examples provided.
addresses_list Addresses list ~47
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
auth_revoke_self Auth revoke self ~79
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 under an br_ik_* instance key — rotate those from the dashboard instead.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
auth_whoami Auth whoami ~72
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 null when called under an instance key.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
catalog_describe_category Catalog describe category ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Slug of the category to describe, e.g. "electronics/phones/smartphones". |
No output schema declared.
No examples provided.
catalog_get_product Catalog get product ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | string | yes | UUID of the product to fetch. |
No output schema declared.
No examples provided.
catalog_list_categories Catalog list categories ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | – | Category slug to root the listing at (that node plus descendants); omit for the full tree. |
No output schema declared.
No examples provided.
catalog_search_products Catalog search products ~352
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Category slug to filter by (see catalog_list_categories); unknown slugs return no hits. |
| category_subtree | boolean | yes | When true, also match products in descendant categories of `category`. Defaults to false. |
| certifications | array | – | Only products carrying at least one of these certification strings. |
| cursor | string | – | Opaque cursor from next_cursor in the previous page; omit for the first page. |
| improves_on_statutory | boolean | – | When true, only products whose return policy improves on the statutory minimum. |
| min_seller_tier | string | yes | Minimum seller verification tier: basic (default) < verified < premium. |
| page_size | integer | yes | Results per page, 1-100. Defaults to 20. |
| q | string | – | Free-text query matched case-insensitively against product title and description. |
| restricted | string | yes | Restricted-goods filter: exclude_age (default) hides age-restricted items, exclude_all hides all restricted, allow hides none. |
| seller_id | string | – | Filter to one seller's listings. |
| spec | object | – | Exact-match filters on category spec fields, as key/value pairs. |
| spec_max | object | – | Numeric upper bounds on spec fields; keys must be rangeable for the given leaf `category`. |
| spec_min | object | – | Numeric lower bounds on spec fields; keys must be rangeable for the given leaf `category`. |
No output schema declared.
No examples provided.
disputes_add_evidence Disputes add evidence ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| body_b64 | string | yes | File contents, base64-encoded. Max 25 MB per item. |
| caption | – | – | Optional caption shown alongside the evidence item. |
| dispute_id | string | yes | UUID of the open dispute to attach evidence to. |
| kind | string | yes | What the evidence item is. |
| mime_type | string | yes | MIME type of the file, e.g. 'image/jpeg'. |
No output schema declared.
No examples provided.
disputes_file Disputes file ~265
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, service_scope_mismatch, plus the generic three). Exactly one target. Filing on a service quote pauses its payout auto-release. A deterministic auto-classifier resolves clear-cut cases; the rest route to admin review with a 72h seller SLA.
| Name | Type | Req | Description |
|---|---|---|---|
| claimed_amount_pence | – | – | Amount claimed, in pence (minor units); cannot exceed the charged total. Omit if unsure. |
| desired_outcome | – | – | What the buyer wants, e.g. a full refund. Max 500 chars. |
| order_id | string | – | UUID of the goods order in dispute. Provide exactly one of order_id / service_quote_id. |
| reason | string | yes | Dispute reason. not_as_described/defective/not_received are goods-only; service_* reasons are service-quote-only. |
| service_quote_id | string | – | UUID of the service quote in dispute. Provide exactly one of order_id / service_quote_id. |
| summary | string | yes | Plain-text account of the problem, max 4000 chars. |
No output schema declared.
No examples provided.
disputes_get Disputes get ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dispute_id | string | yes | UUID of the dispute to fetch. |
No output schema declared.
No examples provided.
disputes_list Disputes list ~118
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).
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from next_cursor in the previous page; omit for the first page. |
| page_size | integer | yes | Results per page, 1-100. Defaults to 20. |
| status | string | – | Filter to a single dispute status; omit for all statuses. |
No output schema declared.
No examples provided.
disputes_respond Disputes respond ~68
Seller-side response to a dispute. Requires the seller delegation's `respond_dispute` action. Free-form text 1–4000 chars.
| Name | Type | Req | Description |
|---|---|---|---|
| dispute_id | string | yes | UUID of the dispute being responded to. |
| text | string | yes | The seller's response, free-form text. |
No output schema declared.
No examples provided.
disputes_withdraw Disputes withdraw ~38
Buyer-only: withdraw an open dispute. Closed disputes cannot be withdrawn.
| Name | Type | Req | Description |
|---|---|---|---|
| dispute_id | string | yes | UUID of the open dispute to withdraw. |
No output schema declared.
No examples provided.
envelopes_get Envelopes get ~53
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.
| Name | Type | Req | Description |
|---|---|---|---|
| envelope_id | string | yes | UUID of the payment envelope to fetch. |
No output schema declared.
No examples provided.
envelopes_list Envelopes list ~60
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 in the dashboard.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
orders_get Orders get ~56
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.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | UUID of the order to fetch. |
No output schema declared.
No examples provided.
orders_list Orders list ~123
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from next_cursor in the previous page; omit for the first page. |
| page_size | integer | yes | Results per page, 1-100. Defaults to 20. |
| status | string | – | Filter to a single order status; omit for all statuses. |
No output schema declared.
No examples provided.
payment_methods_create Payment methods create ~84
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 the user as a link to open in a browser; there is nothing else for the agent to do. Buyer principals only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
payment_methods_list Payment methods list ~52
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
platforms_get Platforms get ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | URL slug of the platform to fetch (not a UUID). |
No output schema declared.
No examples provided.
purchase_cancel_intent Purchase cancel intent ~36
Cancel a pending purchase intent and release the stock reservation.
| Name | Type | Req | Description |
|---|---|---|---|
| intent_id | string | yes | UUID of the pending intent to cancel. |
No output schema declared.
No examples provided.
purchase_confirm_intent Purchase confirm intent ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| __outcomeForTesting | string | – | Test-only override of the simulated card outcome. Omit in normal use. |
| acknowledged_confirmation | boolean | yes | Set true to acknowledge an intent that requires explicit confirmation. Defaults to false. |
| confirmation_token | – | – | Token from the confirmation_required response; must match when acknowledging a confirmation. |
| intent_id | string | yes | UUID of the purchase intent to confirm. |
No output schema declared.
No examples provided.
purchase_create_intent Purchase create intent ~183
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 the same address while earlier orders are unshipped are only charged the postage difference, so confirm each purchase before creating the next intent; an intent created while the previous one is unconfirmed pays full postage.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | – | UUID of a saved shipping address; defaults to the buyer's default address. |
| payment_method_id | string | – | UUID of a saved payment method owned by the buyer; defaults to the buyer's default card. |
| product_id | string | yes | UUID of the product to purchase. |
| quantity | integer | yes | Units to buy, 1-100. Defaults to 1. |
No output schema declared.
No examples provided.
returns_get Returns get ~54
Fetch a single return by id, including reason, status, restocking fee (if any), refund ledger, and the inspection trail once the parcel has arrived.
| Name | Type | Req | Description |
|---|---|---|---|
| return_id | string | yes | UUID of the return to fetch. |
No output schema declared.
No examples provided.
returns_get_label Returns get label ~63
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.
| Name | Type | Req | Description |
|---|---|---|---|
| return_id | string | yes | UUID of the return whose label is being fetched. |
No output schema declared.
No examples provided.
returns_initiate Returns initiate ~214
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 cooling_off_extended (days 15–30) are change-of-mind; defective is a faulty-item (CRA 2015) claim — full refund within 30 days, and past that it is recorded and routed for manual repair/replacement handling rather than denied. The seller must upload a prepaid label within 2 business days of approval or the buyer is auto-refunded. Idempotent on order_id.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | Free-text detail about the return, max 2000 chars. |
| order_id | string | yes | UUID of the order to return. |
| reason | string | yes | Why the item is coming back: statutory 14-day cooling-off, seller's extended cooling-off window, or defective goods. |
No output schema declared.
No examples provided.
returns_list Returns list ~134
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).
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from next_cursor in the previous page; omit for the first page. |
| order_id | string | – | Filter to returns for one order. |
| page_size | integer | yes | Results per page, 1-100. Defaults to 20. |
| status | string | – | Filter to a single return status; omit for all statuses. |
No output schema declared.
No examples provided.
seller_accept_return Seller accept return ~85
Acknowledge that a returned parcel arrived and was inspected. Moves return: approved → received. The refund engine runs idempotently afterwards via the existing webhook flow.
| Name | Type | Req | Description |
|---|---|---|---|
| inspection_notes | – | – | Optional inspection notes recorded on the return (max 2000 chars). |
| return_id | string | yes | UUID of the return to accept. Acceptance refunds the buyer immediately (idempotent). |
No output schema declared.
No examples provided.
seller_archive_listing Seller archive listing ~55
Soft-delete a listing (is_active=false). Refuses while any purchase intents are still pending against it.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | string | yes | UUID of the listing to archive (deactivate). Refused while purchase intents are pending. |
No output schema declared.
No examples provided.
seller_attach_tracking Seller attach tracking ~91
Attach or update tracking on an already-shipped order. Use mark_shipped for first ship; this is for late-arriving tracking only.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | yes | Carrier handling the shipment. |
| order_id | string | yes | UUID of the order to attach tracking to (must be awaiting fulfilment or shipped). |
| tracking_number | string | yes | Carrier tracking number; replaces any tracking already on the shipment. |
No output schema declared.
No examples provided.
seller_create_listing Seller create listing ~384
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category_slug | string | yes | Slug of a leaf catalog category to list under. |
| certifications | array | yes | Certification labels the product holds (free-form strings). |
| country_of_origin | string | – | ISO 3166-1 alpha-2 country of origin (e.g. GB). |
| description | string | yes | Full product description (max 20000 chars). |
| height_mm | integer | – | Package height in millimetres. |
| images | array | yes | Image URLs (https, max 12); the first entry becomes the primary image. |
| length_mm | integer | – | Package length in millimetres. |
| price_pence | – | yes | Item price in pence (integer minor units of the seller's currency). |
| return_policy | – | – | Return-policy object; omit to use the seller-country default. Validated against platform floors. |
| shipping_pence | – | yes | Shipping charge in pence (integer minor units). Defaults to 0. |
| slug | string | – | URL slug base (lowercase letters, digits, hyphens); a random suffix is appended. Omit to derive from title. |
| specs | object | yes | Category-specific spec values; must match the category's spec schema. |
| stock | integer | yes | Initial units in stock. Defaults to 0. |
| title | string | yes | Product title shown to buyers (1-300 chars). |
| vat_rate_bp | integer | yes | VAT rate in basis points, 0-2500 (2000 = 20%). Defaults to 0. |
| weight_grams | integer | – | Item weight in grams. |
| width_mm | integer | – | Package width in millimetres. |
No output schema declared.
No examples provided.
seller_get_listing Seller get listing ~62
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.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | string | yes | UUID of the listing to fetch. |
No output schema declared.
No examples provided.
seller_get_me Seller get me ~34
Fetch the seller record bound to the calling principal or seller-side agent instance. Refuses when the caller has no seller record.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seller_get_order Seller get order ~69
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.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | UUID of the order to fetch. |
No output schema declared.
No examples provided.
seller_get_return Seller get return ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| return_id | string | yes | UUID of the return to fetch. |
No output schema declared.
No examples provided.
seller_list_listings Seller list listings ~113
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from the previous page's next_cursor. |
| is_active | boolean | – | Filter by active status; omit to include archived listings too. |
| page_size | integer | yes | Results per page (1-100, default 20). |
No output schema declared.
No examples provided.
seller_list_orders Seller list orders ~113
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from the previous page's next_cursor. |
| page_size | integer | yes | Results per page (1-100, default 20). |
| status | string | – | Filter by order status; omit for all orders. |
No output schema declared.
No examples provided.
seller_list_returns Seller list returns ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from the previous page's next_cursor. |
| page_size | integer | yes | Results per page (1-100, default 20). |
| status | string | – | Filter by return status; omit for all returns. |
No output schema declared.
No examples provided.
seller_list_reviews Seller list reviews ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from the previous page's next_cursor. |
| page_size | integer | yes | Results per page (1-100, default 20). |
No output schema declared.
No examples provided.
seller_mark_delivered Seller mark delivered ~91
Declare a shipped order as delivered (no carrier confirmation is wired). Only valid from shipped; already-delivered is a no-op success. Notifies the buyer, who can dispute if it never arrived. Orders still shipped after 10 days are auto-marked delivered by the platform.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | UUID of the shipped order to declare delivered. Already-delivered is a no-op success. |
No output schema declared.
No examples provided.
seller_mark_shipped Seller mark shipped ~115
Mark an order as shipped with a tracking number. Idempotent on (order_id, tracking_number) — same pair is a no-op success. Enqueues carrier polling automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | yes | Carrier handling the shipment. |
| label_url | – | – | URL of the shipping label, if available. |
| order_id | string | yes | UUID of the paid order to mark as shipped. |
| tracking_number | string | yes | Carrier tracking number. Idempotent: repeating the same order + number is a no-op success. |
No output schema declared.
No examples provided.
seller_onboarding_status Seller onboarding status ~39
Read-only Stripe Connect onboarding status. Stripe Express onboarding itself is human-on-session; agents wait on this read until charges_enabled flips true before listing.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
seller_reject_return Seller reject return ~76
Reject a return after inspection. inspection_notes is required. Refuses if the return has already refunded.
| Name | Type | Req | Description |
|---|---|---|---|
| inspection_notes | string | yes | Reason for rejection, shared with the buyer (1-2000 chars). |
| return_id | string | yes | UUID of the return to reject. Rejection is terminal: no refund is issued. |
No output schema declared.
No examples provided.
seller_respond_to_review Seller respond to review ~75
Post the seller's response to a review. One response per review; subsequent attempts return already_responded.
| Name | Type | Req | Description |
|---|---|---|---|
| review_id | string | yes | UUID of the review to respond to. Each review allows one seller response. |
| text | string | yes | Public response text shown under the review (1-2000 chars). |
No output schema declared.
No examples provided.
seller_update_listing Seller update listing ~332
Patch an existing listing the calling seller owns. Specs are re-validated against the leaf schema; return_policy is re-validated against the platform statutory floor. Buyers with pending intents get re-validated at confirm time, not blocked here.
| Name | Type | Req | Description |
|---|---|---|---|
| certifications | array | – | Replacement list of certification labels. |
| country_of_origin | – | – | New ISO 3166-1 alpha-2 country of origin; null clears it. |
| description | string | – | New product description (max 20000 chars). |
| height_mm | – | – | New package height in millimetres; null clears it. |
| images | array | – | Replacement image URL array (https, max 12); the first entry becomes the primary image. |
| length_mm | – | – | New package length in millimetres; null clears it. |
| price_pence | – | – | New item price in pence (integer minor units). |
| product_id | string | yes | UUID of the listing to update. Omitted fields are left unchanged. |
| return_policy | – | – | Replacement return-policy object; validated against platform floors. |
| shipping_pence | – | – | New shipping charge in pence (integer minor units). |
| specs | object | – | Replacement spec values; must match the listing's category spec schema. |
| title | string | – | New product title (1-300 chars). |
| vat_rate_bp | integer | – | New VAT rate in basis points, 0-2500 (2000 = 20%). |
| weight_grams | – | – | New item weight in grams; null clears it. |
| width_mm | – | – | New package width in millimetres; null clears it. |
No output schema declared.
No examples provided.
seller_update_stock Seller update stock ~105
Update a listing's stock count. Pass `stock` for an absolute value or `delta` for a relative change. Resulting stock must remain >= reserved.
| Name | Type | Req | Description |
|---|---|---|---|
| delta | integer | – | Signed adjustment applied to current stock (e.g. -2). Result cannot go below reserved stock. |
| product_id | string | yes | UUID of the listing whose stock to change. |
| stock | integer | – | Absolute new stock level in units. Provide either stock or delta, not both. |
No output schema declared.
No examples provided.
sellers_get Sellers get ~79
Fetch a seller's public profile + trust signals (verification tier, dispute / refund / on-time-ship rates over a 90-day window, response times). Trust metrics carry a `stale: true` flag when the last computation is older than 36 hours.
| Name | Type | Req | Description |
|---|---|---|---|
| seller_id | string | yes | UUID of the seller whose public profile to fetch. |
No output schema declared.
No examples provided.
services_accept_quote Services accept quote ~183
Accept a submitted quote and charge immediately. Runs the same delegation caps and payment-envelope rails as goods purchases; cap kickbacks return confirmation_required with a token — re-accept with acknowledged_confirmation + the token after the principal signs off. Funds are held in escrow until the deliverable is accepted.
| Name | Type | Req | Description |
|---|---|---|---|
| __outcomeForTesting | string | – | Test-only: force a simulated card outcome. Never set in production. |
| acknowledged_confirmation | boolean | yes | Set true when retrying after a confirmation_required kickback, together with confirmation_token. |
| confirmation_token | – | – | Token from the confirmation_required kickback; must match to complete the charge. |
| payment_method_id | string | – | UUID of a saved payment method to charge. Omitted = envelope-bound card, else the principal's default. |
| service_quote_id | string | yes | UUID of the quoted thread to accept and pay. |
No output schema declared.
No examples provided.
services_acknowledge_delivery Services acknowledge delivery ~101
Explicitly accept the deliverable on a delivered quote. The acknowledgement is recorded immediately; the held payout releases as soon as the funds have settled in the seller's Stripe balance (instant when settled, otherwise the worker completes it — the returned status stays 'delivered' until then). Without this, funds auto-release 7 days after delivery unless a dispute is filed.
| Name | Type | Req | Description |
|---|---|---|---|
| service_quote_id | string | yes | UUID of the delivered quote thread to accept. |
No output schema declared.
No examples provided.
How do I install the ai.bitroad/bitroad MCP server?
ai.bitroad/bitroad is a hosted endpoint at https://app.bitroad.ai/api/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · app.bitroad.ai
claude mcp add --transport http ai-bitroad-bitroad 'https://app.bitroad.ai/api/v1/mcp'
What is the ai.bitroad/bitroad MCP server?
ai.bitroad/bitroad is an MCP server listed in the public MCP registry as ai.bitroad/bitroad. Marketplace for AI agents: buy goods and services under spending caps, with returns and disputes. This page covers its hosted endpoint (https://app.bitroad.ai/api/v1/mcp).
Is the ai.bitroad/bitroad MCP server safe to use?
ai.bitroad/bitroad scores 87 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ai.bitroad/bitroad MCP server expose?
ai.bitroad/bitroad exposes 65 tools: services_search_listings, services_purchase, services_request_quote, services_get_quote, services_accept_quote, and 60 more. Their descriptions and schemas cost roughly 7,869 tokens of context every time the server is loaded.
Does the ai.bitroad/bitroad MCP server require authentication?
Yes. ai.bitroad/bitroad asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the ai.bitroad/bitroad MCP server still maintained?
ai.bitroad/bitroad is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.