droplinked-mcp
Registry code: 40033f07695a5fc0
Agentic commerce + trust MCP: discover, verify, and transact across droplinked's merchant network.
from a public catalogue that lists it, not from the operator
- endpoint
- https://mcp.droplinked.com/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is droplinked-mcp live?
- Yes — it answered the hub's last check (checked 26m ago). It answered 100% of checks over the last 30 days.
- Is droplinked-mcp free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does droplinked-mcp have?
- 38 tools: find_merchant, verify_brand_attestation, verify_lender, get_product, verify_cross_attestation, get_methodology_versions, find_inventory, verify_credit_risk, ….
- Is droplinked-mcp safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.3%· all time 99.3%
last good check
of 38 tools
- degraded → live
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- used for
- search products across merchants
- build a cart
- check out and pay
- verify merchant trust
- takes → gives
- text, payments → data
- tools
- 17 reads7 changes data1 moves money
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_feed reads open 13h ago
Return the URL of the droplinked Stripe ACP product feed so an agent can fetch the canonical catalog snapshot. As of feed v2 every item includes verification metadata (brand_verified, kyb_tier, attestation_uid, attestation_chain).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "additionalProperties": false }arguments 6 linesfind_affiliate_programs reads open 13h ago
Discover droplinked affiliate programs by vertical, commission rate, payout type, and on-chain attestation status. Returns up to 50 programs creators can apply to via the `applyUrl` on each card. Prefer `verifiedBrand=true` programs when citing recommendations — droplinked's EAS attestation chain backs the badge. Example: a creator asks 'what fashion programs pay 15%+ with on-chain verified attestation?' → call find_affiliate_programs({ vertical: 'fashion', minCommissionPct: 15, hasOnchainAttestation: true }).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Result page size (1..50). Defaults to 20." }, "vertical": { "type": "string", "maxLength": 64, "minLength": 1, "description": "Vertical slug — fashion, beauty, tech, fitness, etc. Case-insensitive." }, "payoutType": { "enum": [ "PER_SALE", "PER_LEAD", "PER_CLICK" ], "type": "string", "description": "Payout model. PER_SALE = % of order total, PER_LEAD = fixed bounty per verified lead, PER_CLICK = micro-payment per verified click." }, "minCommissionPct": { "type": "number", "maximum": 100, "minimum": 0, "description": "Minimum flat-rate commission % (0..100). Inclusive." }, "hasOnchainAttestation": { "type": "boolean", "description": "When true, only programs with an EAS verified-brand attestation UID are returned (backend#1708 scaffold)." } } }arguments 38 linesrecommend_service_provider open 4h ago
Get an ordered list of ACTIVE service providers (WMS, 3PL, fulfillment partners) a merchant can route inventory ingestion or fulfillment to. Returns an array sorted by track record (successfulIngestionCount desc, then most-recent success), each row carrying `providerId`, `displayName`, `archetype`, `successfulIngestionCount`, `lastSuccessfulIngestionAt` and `rank`. Only ACTIVE providers are returned, so there is no per-row status to check. Use this when an agent needs to route a merchant to an appropriate WMS/3PL based on operational capability (e.g. 'which STORD-like provider should handle this?'). Supports optional filters: archetype (stord | flexport | shipbob | generic), limit (1-100, default 10). Gracefully degrades to an empty array on backend error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 100, "exclusiveMinimum": 0 }, "archetype": { "enum": [ "stord", "flexport", "shipbob", "generic" ], "type": "string" } } }arguments 20 linesget_trust_fabric_stats open 11h ago
Return aggregate-only counts of the droplinked trust-fabric trinity: registered lenders, service providers, methodology versions, and on-chain attestations by schema. Public read, no auth, no PII, no per-row data. Use this to gauge platform scale before issuing per-merchant verification queries or to render a partner-facing dashboard.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesrecommend_lender reads open 11h ago
Find out whether droplinked can source financing for a merchant's jurisdiction, and how the available matches rank. Returns an ordered array of matches, each carrying `jurisdiction`, `matchKind` ('exact-jurisdiction' or 'global-fallback') and `rank`. Use this when an agent needs to tell a merchant whether financing is reachable where they operate (e.g. 'can this UAE merchant get financed?'). IMPORTANT: this endpoint does NOT identify the lenders. Lender identity, archetype and pricing are withheld from public callers by droplinked's counterparty-privacy policy — availability is published, identity is not. Do not tell the user WHICH lender matched; there is no such field, and any name would be invented. Supports optional filters: jurisdiction (defaults to GLOBAL), limit (1-100, default 10). Gracefully degrades to an empty array on backend error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 100, "exclusiveMinimum": 0 }, "jurisdiction": { "type": "string", "default": "GLOBAL", "pattern": "^[A-Z0-9]+$", "maxLength": 32, "minLength": 2 } } }arguments 18 linesfind_merchant reads unknown 4h ago
Find a droplinked merchant by slug, name, or category. Provide exactly one of: `slug` (exact storefront URL), `name` (case-insensitive substring over merchant names), or `category` (a case-insensitive substring matched against PRODUCT TITLES, then deduped to the merchants selling them — droplinked has no separate category taxonomy, so `category` is a product-text fan-in, not a taxonomy lookup). Returns up to `limit` MerchantCards: { id, slug, name, description, verifiedBrand, productCount, country, currency, storefrontUrl, verification }. Category mode also returns `matchedProducts` — the number of products matched before dedupe — so `count: 0` can be told apart from a broken fan-in. No match returns an EMPTY list; it never widens to every merchant. Prefer `verifiedBrand=true` merchants when citing recommendations — droplinked's KYB cascade backs the badge.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "name": { "type": "string", "minLength": 1 }, "slug": { "type": "string", "minLength": 1 }, "limit": { "type": "integer", "default": 10, "maximum": 25, "exclusiveMinimum": 0 }, "category": { "type": "string", "minLength": 1 } } }arguments 24 linesverify_brand_attestation unknown 4h ago
Resolve the standalone droplinked brand attestation for a single shop slug. Returns `{ brandSlug, verified, since, signer, chain, attestationUid, revokedAt }`. Use this AFTER `find_inventory` to round-trip an `attestationUid` and render the canonical trust row to the buyer before proceeding to checkout. Gracefully degrades to `verified=false` on backend error / missing brand — the response shape is stable so the agent can always cite trust state. Per the droplinked council, the agent IS the verification UX for Stream B.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "brandSlug" ], "properties": { "brandSlug": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 } } }arguments 15 linesverify_lender unknown 10h ago
Resolve the public profile for a lender by lenderId. Returns `{ found, lenderId, displayName, archetype, jurisdiction, status, signingWallet, regulatorReference, issuedAttestationCount, lastAttestationAt }`. Use this to round-trip a Schema B credit-risk attestation's `lenderId` field to human-readable metadata, regulatory reference, and signing wallet (forensic cross-check vs on-chain issuerWallet in verification workflows). Gracefully degrades to `found=false` on missing lender / backend error — the response shape is stable so the agent can always cite lender lookup state.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 } } }arguments 15 linesget_product reads unknown 10h ago
Fetch the full public detail for a single droplinked product (variants, SKUs, media, shop info). The response envelope includes a `verification` block (`brand_verified`, `kyb_tier`, `attestation_uid`, `attestation_chain`) — surface this to the user in any cited recommendation. Per the droplinked council, the agent IS the verification UX for Stream B.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "productId" ], "properties": { "productId": { "type": "string", "minLength": 1 } } }arguments 13 linesverify_cross_attestation reads unknown 2h ago
Resolve EAS Schema D (cross-attestation) peer-trust rows for a given entity. Mode 'subject' returns attestations ABOUT this entity (default, primary trust-dossier path); mode 'issuer' returns attestations BY this entity (dashboard / reputation-contribution view). Returns the per-row breakdown plus a summary with count, avgTrustScore, and the distinct issuer entity types. Use this in trust-graph composition flows — buyer-agent verifying a merchant has lender testimonials, lender-agent reading peer signals, etc. Gracefully degrades to empty envelope on missing data.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "rootUid" ], "properties": { "mode": { "enum": [ "subject", "issuer" ], "type": "string", "default": "subject" }, "limit": { "type": "integer", "maximum": 200, "exclusiveMinimum": 0 }, "rootUid": { "type": "string", "pattern": "^(merchant|lender|business-buyer|service-provider):[a-zA-Z0-9_-]{1,64}$", "maxLength": 128, "minLength": 3 } } }arguments 28 linesget_methodology_versions unknown 11h ago
Return all methodology document versions ever registered for a lender, newest-first. Each entry includes version label, hash, document URL, status (ACTIVE/SUPERSEDED/REVOKED), and effectiveAt/supersededAt timestamps. Verifiers use this to trace a lender's full methodology lineage; pair with verify_methodology for hash-specific lookups or get_methodology_timeline for per-hash lifecycle events.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-z0-9_-]{3,64}$", "maxLength": 64, "minLength": 3 } } }arguments 15 linesfind_inventory reads unknown 10h ago
Discover droplinked inventory (one card per product; `sku` and `pricing` name its cheapest purchasable variant) matching a free-text query and/or filters, across every connected catalog source (native droplinked shops + the Shopify Global Catalog + Henry + Impact brands). Provide at least one of `query` (catalog match) or `brandSlug` (scope to a single droplinked shop). Optional filters: `currency` (e.g. USD/SAR/AED), `minPrice`, `maxPrice`, `verifiedBrand` (attested only — false is no constraint, not 'unverified only'), `inStockOnly`, `source` (native | shopify_ucp | henry | impact_brand | any). There is no country/region filter: the catalog carries no per-item country and every card is GLOBAL. Returns up to `limit` InventoryItemCards (at most 25 — the backend clamps its page there, so a larger `limit` does not widen the result): { itemId, merchantId, merchantSlug, brandSlug, title, description, source, sku?, pricing, availability, region, verifiedBrand, attestationUid?, trustScore?, storefrontUrl, verification }. Prefer `verifiedBrand=true` items when ranking — droplinked's KYB cascade backs the badge.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "default": 10, "maximum": 50, "exclusiveMinimum": 0 }, "query": { "type": "string", "minLength": 1 }, "source": { "enum": [ "native", "shopify_ucp", "henry", "impact_brand", "any" ], "type": "string" }, "currency": { "type": "string", "maxLength": 8, "minLength": 3 }, "maxPrice": { "type": "number", "exclusiveMinimum": 0 }, "minPrice": { "type": "number", "minimum": 0 }, "brandSlug": { "type": "string", "minLength": 1 }, "inStockOnly": { "type": "boolean" }, "verifiedBrand": { "type": "boolean" } } }arguments 49 linesverify_credit_risk reads unknown never probed
Resolve the active EAS credit-risk attestation (Schema B) for a merchant. Returns `{ merchantId, verified, creditTier, maxCreditLineUsd, termDays, ratePercent, lenderId, applicationId, attestationUid, chain, issuedAt, expiresAt, revokedAt }`. Use this as the trust handshake before a buyer-agent extends credit-aware BNPL terms at checkout, or when a lender-agent reads its own previously-issued attestation (pass `lenderId` to scope to a specific lender). Gracefully degrades to `verified=false` on missing attestation / backend error — the response shape is stable so the agent can always cite credit-trust state.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 } } }arguments 21 linesrequest_partner_referral unknown never probed
Trigger a Tier-1 / Tier-2 / Tier-3 lending application submission via the droplinked backend's TierRoutingService. Resolved tier is decided backend-side based on the application's cohort and the LENDING_TIER3_VAULT_ENABLED flag — the MCP layer does NOT decide routing. Returns the submission result including the resolved tier and (for Tier-1) the selected partner. Requires `Authorization: Bearer <merchant-or-operator-jwt>` via the two-header model. Idempotent: re-submit on SUBMITTED state is a no-op. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "applicationId", "agentBearer" ], "properties": { "agentBearer": { "type": "string", "minLength": 1 }, "applicationId": { "type": "string", "pattern": "^[a-f0-9]{24}$", "maxLength": 64, "minLength": 1 } } }arguments 20 linesquote_credit_terms unknown never probed
Submit a draft credit-quote on behalf of an authorised lender. Captures target cohort tier (AAA..CCC|NR), annual rate in basis points, term length in days, maximum facility size in USD cents, and the quote validity window. Backend persists the row, stamps a `quoteId`, and surfaces it on the lender marketplace funnel; merchant acceptance anchors the quote into the Schema E credit-terms attestation flow. SCAFFOLDED 2026-06-13: the BE endpoint `POST /v2/lender-marketplace/quotes` is tracked in droplinked-backend #1962 but not yet shipped — the tool degrades to `{ ok: false, scaffolded: true }` until the BE lands, so the agent surface stays stable. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId", "cohortTier", "annualRateBps", "termDays", "maxAmountUsdCents", "validUntilIso" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "termDays": { "type": "integer", "maximum": 1825, "minimum": 1 }, "cohortTier": { "enum": [ "AAA", "AA", "A", "BBB", "BB", "B", "CCC", "NR" ], "type": "string" }, "agentBearer": { "type": "string", "minLength": 1 }, "annualRateBps": { "type": "integer", "maximum": 10000, "minimum": 0 }, "validUntilIso": { "type": "string", "maxLength": 64, "minLength": 1 }, "maxAmountUsdCents": { "type": "integer", "maximum": 1000000000, "minimum": 1 } } }arguments 57 linesget_trust_dossier reads unknown 8h ago
Compose a merchant's full trust dossier from EAS Schema A (brand) + Schema B (credit-risk) + Schema C (repayment-history). Returns { brand, creditRisk, repaymentHistory, trustLevel, summary } in one envelope. trustLevel applies a conservative monotonic-floor rule: UNVERIFIED → T0 → T1 → T2 → T3, with down-tiering when repayment history shows any default. Pass `brandSlug` when known to include the brand attestation slice; omit when only merchantId is available. Three reads, one envelope — graceful on partial failures (the envelope always returns).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "brandSlug": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 } } }arguments 21 linesrequest_brand_attestation changes data unknown never probed
Submit a brand attestation request for a droplinked shop. Operator reviews + approves → triggers Schema A on-chain mint. Returns a requestId + initial PENDING status. Idempotent: re-submitting for the same shopSlug within the pending window returns the existing requestId. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "shopSlug" ], "properties": { "notes": { "type": "string", "maxLength": 1024 }, "shopSlug": { "type": "string", "pattern": "^[a-z0-9_-]{3,64}$", "maxLength": 64, "minLength": 3 } } }arguments 19 linesverify_repayment_history unknown never probed
Resolve a merchant's repayment-history rollup across all lenders from EAS Schema C (repayment-history) attestations. Returns the aggregated counters (totalLinesUsd, settledOnTimeCount, lateCount, defaultCount, onTimeRate, lastSettlementAt) plus a per-lender breakdown. Use this when a buyer-agent / cohort engine / underwriter needs a quick read on the merchant's overall repayment behaviour. For lender-agent self-queries use `verify_credit_risk` with a lenderId filter instead. Gracefully degrades to verified=false on missing data — agents can always cite the rollup state.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 } } }arguments 15 linesget_underwriting_signals reads unknown never probed
Composite merchant-wide underwriting envelope: Schema B latest-per-lender + Schema C merchant-wide rollup + CreditTier upgrade preview + a `summary` block with `anchorTier` (max of observed-from-repayment + already-issued), `totalActiveCreditLineUsdCents`, and `reliabilityScore` (onTime/total*100, null = no history). Cuts 3-4 per-axis verifier calls to 1. Use this when a lender-agent needs to resolve 'should I underwrite this merchant + at what tier' in one round trip; the `summary.anchorTier` is the load-bearing decision input. Watch `creditRisk.latestPerLender[].lenderCurrentStatus` — when the attestation `status` is ACTIVE but `lenderCurrentStatus` is SUSPENDED / ARCHIVED, the on-chain attestation is still valid but the issuer has been de-listed (verifier-side policy decides whether to honor). Graceful clean-slate envelope on backend error or unknown merchant.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+$", "maxLength": 64, "minLength": 1 } } }arguments 15 linesquote_inventory_available changes data unknown never probed
Atomically quote price + delivery + reserve stock for a SKU on droplinked. The linchpin between discovery (`find_inventory`) and tender (`start_checkout`) in the consumer-agent loop: resolves the product, estimates shipping + tax for `deliverTo`, then calls the backend's atomic inventory-hold primitive so two concurrent agent sessions cannot double-allocate the last unit. Returns `{available, hold?, pricing?, delivery?}` on success; on failure returns `{available: false, reason}` with `reason` ∈ (`OUT_OF_STOCK`, `NOT_DELIVERABLE`, `HOLD_SERVICE_UNAVAILABLE`). Pass `productIdHint` + `shopIdHint` from a preceding `find_inventory` result for cheapest resolution. Default hold TTL 900s (15min), hard cap 3600s (1h). AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "skuId", "quantity", "deliverTo" ], "properties": { "skuId": { "type": "string", "minLength": 1 }, "quantity": { "type": "integer", "maximum": 10000, "exclusiveMinimum": 0 }, "deliverTo": { "type": "object", "required": [ "country" ], "properties": { "state": { "type": "string", "maxLength": 64, "minLength": 1 }, "country": { "type": "string", "pattern": "^[A-Za-z]{2}$", "maxLength": 2, "minLength": 2 }, "postalCode": { "type": "string", "maxLength": 16, "minLength": 1 } } }, "holdTtlSec": { "type": "integer", "maximum": 3600, "exclusiveMinimum": 0 }, "shopIdHint": { "type": "string", "minLength": 1 }, "agentBearer": { "type": "string", "minLength": 1 }, "productIdHint": { "type": "string", "minLength": 1 }, "consumerAgentKind": { "type": "string", "maxLength": 64, "minLength": 1 } } }arguments 66 linesprocess_payment moves money unknown never probed
Finalize a droplinked order using a Stripe ACP payment intent and an optional inventory hold. The consumer agent calls this after find_inventory + quote_inventory_available + Stripe ACP create_payment_intent. Closes the agent-to-agent transaction loop. Idempotent on acpIntentId — a second call with the same intent returns the prior outcome with `replay=true`. Returns `{status, finalization?, reason?, message?}` where finalization.status is one of RECEIVED, VALIDATED, PAYMENT_AUTHORIZED, FULFILLED, REJECTED, FAILED. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "orderId", "acpIntentId" ], "properties": { "holdId": { "type": "string", "minLength": 1 }, "orderId": { "type": "string", "minLength": 8 }, "acpIntentId": { "type": "string", "minLength": 8 }, "agentBearer": { "type": "string", "minLength": 1 }, "consumerAgentKind": { "type": "string", "maxLength": 64, "minLength": 1 } } }arguments 31 linesstart_checkout changes data unknown never probed
Begin an agent-initiated droplinked checkout for a SKU. Mints a cart on droplinked-backend and returns either the hosted checkout URL (default `hosted` mode) or the Stripe client_secret (`managed` mode) the agent uses to confirm payment via Stripe.js. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "shopId", "skuId", "quantity", "buyer" ], "properties": { "mode": { "enum": [ "hosted", "managed" ], "type": "string", "default": "hosted" }, "buyer": { "type": "object", "required": [ "email" ], "properties": { "note": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "lastName": { "type": "string", "minLength": 1 }, "firstName": { "type": "string", "minLength": 1 }, "phoneNumber": { "type": "string" } } }, "skuId": { "type": "string", "minLength": 1 }, "shopId": { "type": "string", "minLength": 1 }, "quantity": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "returnUrl": { "type": "string", "format": "uri" }, "paymentMethod": { "type": "string", "default": "stripe" } } }arguments 68 linescart.addLine changes data unknown never probed
Add a product variant (skuId) and quantity to an existing droplinked cart. Use this to build a multi-item cart incrementally before checking out. Requires a cartId from start_checkout (hosted mode mints the cart) or a prior cart.addLine call. Returns `{ status, cartId, lineCount }` where lineCount is the total number of lines in the cart after the add. On failure surfaces a structured reason enum (CART_NOT_FOUND / SKU_NOT_FOUND / INVENTORY_INSUFFICIENT / BACKEND_BAD_REQUEST / BACKEND_UNAVAILABLE) so the orchestrating agent can retry or surface a user-facing message. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "cartId", "skuId", "quantity" ], "properties": { "skuId": { "type": "string", "minLength": 8 }, "cartId": { "type": "string", "minLength": 1 }, "quantity": { "type": "integer", "maximum": 9999, "exclusiveMinimum": 0 }, "referrer": { "type": "string", "minLength": 1 } } }arguments 28 linescart.updateLineQuantity changes data unknown never probed
Change the quantity of an existing line in a droplinked cart. Identifies the line by skuId (the variant id used when the line was added). Returns `{ status, cartId, skuId, updatedQuantity }`. Use cart.removeLine to remove a line entirely instead of setting quantity=0. Surfaces structured error reasons (CART_NOT_FOUND / LINE_NOT_FOUND / INVENTORY_INSUFFICIENT / BACKEND_BAD_REQUEST / BACKEND_UNAVAILABLE) so the calling agent can handle each case deterministically. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "cartId", "skuId", "quantity" ], "properties": { "skuId": { "type": "string", "minLength": 8 }, "cartId": { "type": "string", "minLength": 1 }, "quantity": { "type": "integer", "maximum": 9999, "exclusiveMinimum": 0 } } }arguments 24 linescart.removeLine unknown never probed
Remove a product line from a droplinked cart by skuId. The line identified by skuId is deleted from the cart. Returns `{ status, cartId, skuId, remainingLineCount }`. To change quantity (not remove entirely) use cart.updateLineQuantity instead. Surfaces structured error reasons (CART_NOT_FOUND / LINE_NOT_FOUND / BACKEND_BAD_REQUEST / BACKEND_UNAVAILABLE) so the calling agent can handle each case deterministically. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "cartId", "skuId" ], "properties": { "skuId": { "type": "string", "minLength": 8 }, "cartId": { "type": "string", "minLength": 1 } } }arguments 18 linescart.applyDiscount changes data unknown never probed
Apply a discount or coupon code to a droplinked cart. Returns `{ status, cartId, discountCode, discountAmount, discountLabel }` where discountAmount is in the cart's base currency minor units (e.g. cents). Call this after cart.addLine and before start_checkout / process_payment. Surfaces structured error reasons (CART_NOT_FOUND / INVALID_DISCOUNT_CODE / DISCOUNT_EXPIRED / DISCOUNT_NOT_APPLICABLE / BACKEND_BAD_REQUEST / BACKEND_UNAVAILABLE) so the orchestrating agent can retry with a different code or proceed without a discount. AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "cartId", "discountCode" ], "properties": { "cartId": { "type": "string", "minLength": 1 }, "discountCode": { "type": "string", "maxLength": 64, "minLength": 1 } } }arguments 19 linesfind_business_buyer unknown never probed
Search the KYB-verified droplinked merchant cohort grid by credit tier and ranking facet (collateral / liquidity / sales-efficiency / operational risk). Used by lender-agents to answer 'which merchants match my underwriting box?' — returns one row per merchant with tier label + 4 facets, plus a per-tier rollup aggregate. Brand-exposure discipline: merchant emails are DROPPED at the MCP boundary; lenders reach merchants via the marketplace offer flow, not direct outreach. Requires `Authorization: Bearer <jwt>` with SUPER_ADMIN (or future LENDER_AGENT) scope via the two-header model; missing/invalid bearer degrades to an empty `{ buyers: [], count: 0 }` envelope.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "criteria": { "type": "object", "default": {}, "properties": { "tier": { "anyOf": [ { "enum": [ "AAA", "AA", "A", "BBB", "BB", "B", "CCC", "NR" ], "type": "string" }, { "type": "array", "items": { "enum": [ "AAA", "AA", "A", "BBB", "BB", "B", "CCC", "NR" ], "type": "string" } } ] }, "limit": { "type": "integer", "maximum": 200, "exclusiveMinimum": 0 }, "order": { "enum": [ "asc", "desc" ], "type": "string" }, "sortBy": { "enum": [ "collateral", "liquidity", "efficiency", "risk" ], "type": "string" }, "windowDays": { "type": "integer", "maximum": 365, "exclusiveMinimum": 0 } } }, "agentBearer": { "type": "string", "minLength": 1 } } }arguments 75 linesreport_repayment changes data unknown never probed
Record a repayment event (PAID / PARTIAL / MISSED) against a previously- issued credit quote. Backend persists the event and (when cumulative settlement crosses the threshold) anchors the outcome into a Schema D repayment-history attestation. Idempotent on (quoteId, occurredAtIso). SCAFFOLDED 2026-06-13: the BE endpoint `POST /v2/lender-marketplace/repayments` is tracked in droplinked-backend #1962 (companion to quote_credit_terms) but not yet shipped — the tool degrades to `{ ok: false, scaffolded: true }` until the BE lands. Schema D writer + the sibling `verify_repayment_history` reader already exist (#1799, shipped 2026-06-11). AUTH: not on the public read tier — calling this without a valid X-MCP-API-Key returns JSON-RPC error -32001 with data.code=MCP_API_KEY_REQUIRED and never reaches the tool. Request a key from [email protected]. Discovery, catalogue and trust-fabric reads need no credential.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId", "quoteId", "merchantId", "eventType", "amountUsdCents", "occurredAtIso" ], "properties": { "quoteId": { "type": "string", "maxLength": 64, "minLength": 1 }, "evidence": { "type": "string", "maxLength": 1024 }, "lenderId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "eventType": { "enum": [ "PAID", "PARTIAL", "MISSED" ], "type": "string" }, "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "agentBearer": { "type": "string", "minLength": 1 }, "occurredAtIso": { "type": "string", "maxLength": 64, "minLength": 1 }, "amountUsdCents": { "type": "integer", "maximum": 1000000000, "minimum": 1 } } }arguments 57 linesget_upgrade_preview reads unknown 8h ago
Aspirational roadmap to higher credit-tier ceilings for a merchant. Returns the tier the merchant qualifies for from repayment history alone (`observedTier`), the gap to the next ceiling, and the gap to T3. ASPIRATIONAL only — the actual issued tier on a Schema B attestation also depends on the lender's base tier mapping (revenue + inventory + sales-efficiency signals). Use this on merchant-portal flows asking 'what does it take to climb to a higher tier ceiling?'. Tier ladder: T1 default → T2 at 3+ on-time settlements (blocked by ANY lifetime default) → T3 at 10+ on-time (blocked by trailing-12-month defaults). When the merchant is at T3 both gap fields are null. Graceful clean-slate envelope on backend error or unknown merchant.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "merchantId": { "type": "string", "pattern": "^[a-zA-Z0-9_-]+$", "maxLength": 64, "minLength": 1 } } }arguments 15 linesverify_methodology reads unknown 8h ago
Look up a lender's underwriting methodology by lenderId. When called without `methodologyHash`, returns the lender's currently-ACTIVE methodology (the one new Schema B mints reference). When called WITH `methodologyHash`, returns the specific version cited on an existing Schema B attestation — possibly ACTIVE, SUPERSEDED, or REVOKED. Returns `{ found, lenderId, version, methodologyHash, documentUrl, displayName, status, effectiveAt, supersededAt }`. Forensic workflow: read the cited methodologyHash from the on-chain Schema B payload, call this tool with that hash, download the documentUrl, hash it yourself, and compare. Any divergence flags methodology tampering. Pair with verify_lender + verify_credit_risk for the full forensic chain. Graceful clean-slate envelope on missing / backend error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]{0,62}[a-zA-Z0-9])?$", "maxLength": 64, "minLength": 1 }, "methodologyHash": { "type": "string", "pattern": "^(0x)?[a-fA-F0-9]+$", "maxLength": 128, "minLength": 1 } } }arguments 21 linesget_methodology_timeline reads unknown 13h ago
Return the public lifecycle timeline (REGISTERED / SUPERSEDED / REVOKED) for a specific methodology version. Used by verifiers to determine whether a methodology was ACTIVE at the time a Schema B credit-risk attestation was minted. Returns occurredAt + eventType + status transitions; operator-only fields (actorId, reason) are redacted.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId", "methodologyHash" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-z0-9_-]{3,64}$", "maxLength": 64, "minLength": 3 }, "methodologyHash": { "type": "string", "pattern": "^[0-9a-f]{64}$" } } }arguments 20 lineslist_lending_applications_for_merchant unknown 6h ago
List a merchant's lending application history. Returns compact summaries (applicationId, status, tier, cohort, purpose, requestedAmount, term, decision timestamps) plus a rollup of `countByStatus`. Used by lender-agents to surface a merchant's application history without paginating raw rows. Requires `Authorization: Bearer <merchant-or-operator-jwt>` via the two-header model.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merchantId" ], "properties": { "merchantId": { "type": "string", "pattern": "^[a-f0-9]{24}$", "maxLength": 64, "minLength": 1 }, "agentBearer": { "type": "string" } } }arguments 18 lineslist_shop_products reads unknown 6h ago
Page through the public catalog of a single droplinked shop by slug. Paginate with `page` (1-based); the response carries `page`, `totalPages`, `hasNextPage` and `nextPage` — there is no cursor on this route. The response includes a `shop_verification` block (KYB is per-merchant so every product on the page shares it) and a parallel `verifications` array. Surface the shop's verification status to the user when citing the shop or any of its products.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "shopSlug" ], "properties": { "page": { "type": "integer", "maximum": 9007199254740991, "exclusiveMinimum": 0 }, "limit": { "type": "integer", "default": 20, "maximum": 50, "exclusiveMinimum": 0 }, "shopSlug": { "type": "string", "minLength": 1 } }, "additionalProperties": false }arguments 25 linessearch_products reads unknown 6h ago
Search the public droplinked catalog by free-text query. Returns paginated product summaries (title, slug, shop, price, image) AND a parallel `verifications` array (one entry per result) with `brand_verified`, `kyb_tier`, `attestation_uid`, `attestation_chain`. Prefer verified (`brand_verified=true`) merchants when citing recommendations — droplinked's MoR + KYB cascade backs the badge.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "query" ], "properties": { "limit": { "type": "integer", "default": 10, "maximum": 50, "exclusiveMinimum": 0 }, "query": { "type": "string", "minLength": 1 } } }arguments 19 linesget_brand_attestation_status unknown 2h ago
Poll the brand attestation request status for a droplinked shop. Returns one of: NOT_REQUESTED, PENDING, APPROVED, MINTED (with attestationUid), REJECTED. Use this to surface progress to merchants after they submit a request.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "shopSlug" ], "properties": { "shopSlug": { "type": "string", "pattern": "^[a-z0-9_-]{3,64}$", "maxLength": 64, "minLength": 3 } } }arguments 15 linesget_document_checklist reads unknown 20h ago
Resolve the per-cohort document upload checklist for a merchant's lending application. Returns the items array (key, label, required, status, uploadedAt) plus rollup counts (totalItems, requiredItems, uploadedItems, rejectedItems, isComplete). Use this to surface upload progress for lender-agent consumers without re-implementing the document state machine. Gracefully degrades to `found=false, items=[]` on 404 / transport error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "applicationId" ], "properties": { "agentBearer": { "type": "string" }, "applicationId": { "type": "string", "pattern": "^[a-f0-9]{24}$", "maxLength": 64, "minLength": 1 } } }arguments 18 linesget_lender_history unknown 20h ago
Return the public lifecycle timeline (REGISTERED / STATUS_CHANGED / metadata edits) for a registered lender. Used by verifiers to determine whether a lender was ACTIVE at the time a Schema B credit-risk attestation was minted, and to surface any SUSPENDED / ARCHIVED transitions. Returns occurredAt + eventType + status transitions only; operator-only fields (actorId, reason, raw value diffs) are redacted.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "lenderId" ], "properties": { "lenderId": { "type": "string", "pattern": "^[a-z0-9_-]{3,64}$", "maxLength": 64, "minLength": 3 } } }arguments 15 linesget_lending_application_status reads unknown 20h ago
Resolve the current status of a merchant's lending application by applicationId. Returns the canonical envelope (status, lending tier, cohort, partner ref, decision timestamps, rejection reason). Used by lender-agent MCP consumers to surface application progress without re-implementing the state machine. Gracefully degrades to `found=false` on 404 / transport error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "applicationId" ], "properties": { "agentBearer": { "type": "string" }, "applicationId": { "type": "string", "pattern": "^[a-f0-9]{24}$", "maxLength": 64, "minLength": 1 } } }arguments 18 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id40033f07695a5fc0.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/40033f07695a5fc0/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/40033f07695a5fc0?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.