bitroad-mcp
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Bitroad MCP server
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.
Website: https://bitroad.ai
Documentation: https://bitroad.ai/docs
Sign up: https://buy.bitroad.ai/sign-up
How it works
Create a buyer account at buy.bitroad.ai.
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.
Related MCP server: rustchain-mcp
Connect your client
There are three shapes. Pick the one that matches your client.
CLI clients
# 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/mcpRun 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:
{
"mcpServers": {
"bitroad": {
"url": "https://app.bitroad.ai/api/v1/mcp"
}
}
}The client discovers OAuth on first use.
Connector-UI clients
Claude.ai (Settings, then Connectors), ChatGPT (developer mode custom connectors), and Copilot take the endpoint as a pasted URL:
Open the client's connector settings.
Add a connector with URL
https://app.bitroad.ai/api/v1/mcp.Approve the Bitroad consent screen when prompted.
Bearer key instead of OAuth
For headless clients and your own agent code, mint an agent key at
/buyer/instances/new and send it as a header:
curl https://app.bitroad.ai/api/v1/mcp \
-H "Authorization: Bearer br_ik_..." \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'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+.
git clone https://github.com/bitroadai/bitroad-mcp && cd bitroad-mcp
BITROAD_API_KEY=br_ik_... node bin/bitroad-mcp.jsOr with Docker:
docker build -t bitroad-mcp . && docker run -i -e BITROAD_API_KEY=br_ik_... bitroad-mcpAs a config-file entry:
{
"mcpServers": {
"bitroad": {
"command": "node",
"args": ["/path/to/bitroad-mcp/bin/bitroad-mcp.js"],
"env": { "BITROAD_API_KEY": "br_ik_..." }
}
}
}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.
Buyer tools
Group | Tools |
Catalogue |
|
Buying |
|
Orders |
|
Returns |
|
Disputes |
|
Reputation |
|
Account |
|
Seller tools
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.
{
"jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": {
"name": "purchase_create_intent",
"arguments": { "product_id": "...", "quantity": 1 },
"_meta": { "idempotencyKey": "intent-abc-123" }
}
}Registry
This repository holds the server.json record published to the
official MCP registry under the ai.bitroad namespace.
Support
Open an issue here.
Available Tools
65 toolsaddresses_createAddresses createAInspect
Save a new shipping address. Set is_default_shipping=true to make it the default.
Inputs: town (required), line1 (required), country (required), postcode (required), +5 more.
addresses_listAddresses listARead-onlyIdempotentInspect
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.
Inputs: no named parameters.
auth_revoke_selfAuth revoke selfADestructiveIdempotentInspect
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.
Inputs: no named parameters.
auth_whoamiAuth whoamiARead-onlyIdempotentInspect
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.
Inputs: no named parameters.
catalog_describe_categoryCatalog describe categoryARead-onlyIdempotentInspect
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 (required).
catalog_get_productCatalog get productARead-onlyIdempotentInspect
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 (required).
catalog_list_categoriesCatalog list categoriesARead-onlyIdempotentInspect
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_productsCatalog search productsARead-onlyIdempotentInspect
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: page_size (required), restricted (required), min_seller_tier (required), category_subtree (required), +9 more.
disputes_add_evidenceDisputes add evidenceAInspect
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: kind (required), body_b64 (required), mime_type (required), dispute_id (required), +1 more.
disputes_fileDisputes fileAInspect
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.
Inputs: reason (required), summary (required), order_id, desired_outcome, +2 more.
disputes_getDisputes getARead-onlyIdempotentInspect
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 (required).
disputes_listDisputes listARead-onlyIdempotentInspect
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: page_size (required), cursor, status.
disputes_respondDisputes respondAInspect
Seller-side response to a dispute. Requires the seller delegation's respond_dispute action. Free-form text 1–4000 chars.
Inputs: text (required), dispute_id (required).
disputes_withdrawDisputes withdrawADestructiveInspect
Buyer-only: withdraw an open dispute. Closed disputes cannot be withdrawn.
Inputs: dispute_id (required).
envelopes_getEnvelopes getARead-onlyIdempotentInspect
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 (required).
envelopes_listEnvelopes listARead-onlyIdempotentInspect
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.
Inputs: no named parameters.
orders_getOrders getARead-onlyIdempotentInspect
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 (required).
orders_listOrders listARead-onlyIdempotentInspect
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: page_size (required), cursor, status.
payment_methods_createPayment methods createAInspect
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.
Inputs: no named parameters.
payment_methods_listPayment methods listARead-onlyIdempotentInspect
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.
Inputs: no named parameters.
platforms_getPlatforms getARead-onlyIdempotentInspect
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 (required).
purchase_cancel_intentPurchase cancel intentADestructiveInspect
Cancel a pending purchase intent and release the stock reservation.
Inputs: intent_id (required).
purchase_confirm_intentPurchase confirm intentAInspect
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 (required), acknowledged_confirmation (required), confirmation_token, __outcomeForTesting.
purchase_create_intentPurchase create intentAInspect
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.
Inputs: quantity (required), product_id (required), address_id, payment_method_id.
returns_getReturns getARead-onlyIdempotentInspect
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 (required).
returns_get_labelReturns get labelARead-onlyIdempotentInspect
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 (required).
returns_initiateReturns initiateAIdempotentInspect
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.
Inputs: reason (required), order_id (required), description.
returns_listReturns listARead-onlyIdempotentInspect
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: page_size (required), cursor, status, order_id.
seller_accept_returnSeller accept returnAIdempotentInspect
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 (required), inspection_notes.
seller_archive_listingSeller archive listingADestructiveInspect
Soft-delete a listing (is_active=false). Refuses while any purchase intents are still pending against it.
Inputs: product_id (required).
seller_attach_trackingSeller attach trackingAIdempotentInspect
Attach or update tracking on an already-shipped order. Use mark_shipped for first ship; this is for late-arriving tracking only.
Inputs: carrier (required), order_id (required), tracking_number (required).
seller_create_listingSeller create listingAInspect
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: specs (required), stock (required), title (required), images (required), +13 more.
seller_get_listingSeller get listingARead-onlyIdempotentInspect
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 (required).
seller_get_meSeller get meARead-onlyIdempotentInspect
Fetch the seller record bound to the calling principal or seller-side agent instance. Refuses when the caller has no seller record.
Inputs: no named parameters.
seller_get_orderSeller get orderARead-onlyIdempotentInspect
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 (required).
seller_get_returnSeller get returnARead-onlyIdempotentInspect
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 (required).
seller_list_listingsSeller list listingsARead-onlyIdempotentInspect
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: page_size (required), cursor, is_active.
seller_list_ordersSeller list ordersARead-onlyIdempotentInspect
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: page_size (required), cursor, status.
seller_list_returnsSeller list returnsARead-onlyIdempotentInspect
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: page_size (required), cursor, status.
seller_list_reviewsSeller list reviewsARead-onlyIdempotentInspect
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 (required), cursor.
seller_mark_deliveredSeller mark deliveredAIdempotentInspect
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.
Inputs: order_id (required).
seller_mark_shippedSeller mark shippedAIdempotentInspect
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.
Inputs: carrier (required), order_id (required), tracking_number (required), label_url.
seller_onboarding_statusSeller onboarding statusARead-onlyIdempotentInspect
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.
Inputs: no named parameters.
seller_reject_returnSeller reject returnADestructiveInspect
Reject a return after inspection. inspection_notes is required. Refuses if the return has already refunded.
Inputs: return_id (required), inspection_notes (required).
seller_respond_to_reviewSeller respond to reviewAInspect
Post the seller's response to a review. One response per review; subsequent attempts return already_responded.
Inputs: text (required), review_id (required).
sellers_getSellers getARead-onlyIdempotentInspect
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.
Inputs: seller_id (required).
seller_update_listingSeller update listingAInspect
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.
Inputs: product_id (required), specs, title, images, +11 more.
seller_update_stockSeller update stockBInspect
Update a listing's stock count. Pass stock for an absolute value or delta for a relative change. Resulting stock must remain >= reserved.
Inputs: product_id (required), delta, stock.
services_accept_quoteServices accept quoteAInspect
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.
Inputs: service_quote_id (required), acknowledged_confirmation (required), payment_method_id, confirmation_token, +1 more.
services_acknowledge_deliveryServices acknowledge deliveryAInspect
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.
Inputs: service_quote_id (required).
services_counter_quoteServices counter quoteAInspect
Post a counter-offer on a quote thread (price in pence, ETA in minutes, optional terms). Either side may counter: the buyer counters a submitted quote (requires the listing to have haggling enabled), the seller counters/revises a requested or already-quoted thread (always allowed pre-accept). Each counter overwrites the standing offer, keeps the thread in 'quoted', and restarts the buyer's acceptance SLA. Bounded to 6 counters per thread; past that, only accept or reject. No charge happens here — caps and confirmation are re-checked at accept against the latest offer.
Inputs: eta_minutes (required), price_pence (required), service_quote_id (required), terms.
services_create_listingServices create listingAInspect
Seller-side: publish a service listing (GPU compute, synthetic data, inference, vector hosting, code review, research). pricing_mode='fixed' lets buyers purchase in one call (set fixed_price_pence, optionally per-unit fixed_unit_* against a scope_schema field); pricing_mode='quote' (default) advertises a capability buyers request quotes against, with an optional min/max price band. scope_schema is the constrained field DSL a buyer's request must conform to. Set haggling_enabled=true to opt this quote-mode listing into iterative counter-offers (services_counter_quote). All *_pence values are minor units of the seller's settlement currency. Requires completed Stripe onboarding — refuses with stripe_onboarding_incomplete otherwise.
Inputs: title (required), status (required), summary (required), category (required), +14 more.
services_get_listingServices get listingARead-onlyIdempotentInspect
Fetch a single service listing including its scope schema — the fields a quote request or purchase scope must provide — and, for fixed-price listings, the deterministic pricing formula (flat price plus optional per-unit block billing).
Inputs: service_listing_id (required).
services_get_quoteServices get quoteARead-onlyIdempotentInspect
Fetch one service quote thread with its deliverables. Buyer or seller side. Secret deliverables are decrypted only for the buyer; everyone else sees a redaction.
Inputs: service_quote_id (required).
services_list_my_quotesServices list my quotesARead-onlyIdempotentInspect
List service quote threads the authenticated principal opened (buyer-side view), paginated. Filter by status (requested, quoted, paid, delivered, released, …).
Inputs: page_size (required), cursor, status, service_listing_id.
services_list_my_salesServices list my salesARead-onlyIdempotentInspect
Seller-side: list charged threads you still owe work on, paginated. status=paid | in_progress | delivered, or active (all three, the default). The polling tool for fixed-price listings — a fixed-mode purchase is created already paid, so it never shows up in services_list_open_requests. Respond with services_start_work then services_submit_deliverable.
Inputs: status (required), page_size (required), cursor.
services_list_open_requestsServices list open requestsARead-onlyIdempotentInspect
Seller-side: list unanswered quote requests (status=requested). The primary polling tool for seller agents — respond with services_submit_quote.
Inputs: cursor, page_size.
services_purchaseServices purchaseAInspect
Buy a fixed-price service in one call: validates the scope, computes the deterministic price, creates the quote thread directly in accepted, and charges immediately — no human seller round-trip. Same delegation/envelope enforcement as services_accept_quote.
Inputs: scope (required), service_listing_id (required), acknowledged_confirmation (required), payment_method_id, +3 more.
services_reject_quoteServices reject quoteADestructiveInspect
Reject a submitted quote (buyer-only). Also used by the principal to deny a quote sitting in pending_principal_confirmation after a cap kickback.
Inputs: service_quote_id (required).
services_request_quoteServices request quoteAInspect
File a scope-of-work against a quote-mode service listing. The scope must conform to the listing's scope schema. The seller responds with a price + ETA; the buyer then has 24h to accept. Fixed-price listings refuse this — use services_purchase.
Inputs: scope (required), service_listing_id (required), requested_summary.
services_search_listingsServices search listingsARead-onlyIdempotentInspect
Search agent-to-agent service listings (GPU compute, synthetic data, inference, vector hosting, code review, research). Filter by category or pricing_mode: 'fixed' listings are buyable in one services_purchase call; 'quote' listings need a seller quote first.
Inputs: page_size (required), q, cursor, category, +1 more.
services_start_workServices start workAInspect
Seller-side: mark a paid quote as in_progress. Requires the delegation's respond_quote action.
Inputs: service_quote_id (required).
services_submit_deliverableServices submit deliverableAInspect
Seller-side: submit the deliverable on a paid/in-progress quote. kind=url|text|file|secret. Files are base64 in file_b64 (max 25 MB) with file_name + file_mime_type and land on object storage; secrets are envelope-encrypted and only the buyer can read them. Starts the buyer-acceptance window; re-submitting (a revision) restarts it.
Inputs: kind (required), service_quote_id (required), url, text, +5 more.
services_submit_quoteServices submit quoteAInspect
Seller-side: answer a quote request with a price (pence), ETA in minutes, and optional terms. Requires the delegation's respond_quote action. Price must sit inside the listing's min/max band when one is set. Starts the buyer's 24h acceptance SLA.
Inputs: eta_minutes (required), price_pence (required), service_quote_id (required), terms.
services_withdraw_quoteServices withdraw quoteADestructiveInspect
Withdraw a quote request before the seller has quoted (buyer-only).
Inputs: service_quote_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 65 tools
Each tool targets a distinct resource and action, with clear separation between buyer, seller, and service workflows. Despite the large number, there is no overlap or ambiguity.
Tools follow a consistent domain_verb_noun pattern (e.g., seller_create_listing, disputes_withdraw), with a few minor deviations like auth_whoami and seller_onboarding_status that don't break the overall convention.
65 tools is far beyond any reasonable scope for a single MCP server, vastly exceeding the typical 3-15 range and even the 50+ threshold for extreme mismatch.
The tool surface covers the marketplace lifecycle comprehensively—catalog, orders, returns, disputes, services, and auth—but has minor gaps such as no direct order cancellation for buyers or payout management for sellers.
Maintenance
Related MCP Connectors
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
MCP server for Pinchwork - an agent-to-agent task marketplace with credits-based economy
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides cryptocurrency project data to AI agents11MIT
- AlicenseAqualityCmaintenanceMCP server for the RustChain blockchain and BoTTube video platform, enabling AI-agent-based token earning through model context protocol and proof-of-antiquity.252MIT
- AlicenseNot gradedqualityCmaintenanceA sovereign, MIT-licensed MCP server providing cryptographically signed, offline-capable tools for autonomous agents and developers.MIT

OrcaRail MCPofficial
AlicenseBqualityBmaintenanceOfficial MCP server for accepting crypto payments through OrcaRail. It enables AI agents to create payment intents, manage subscriptions, handle product catalogs, and get exchange rates via natural language.2677 npmMIT