droplinked
REMOTE · MCP.DROPLINKED.COM · SCANNED SEP 20
Agentic commerce + trust MCP: discover, verify, and transact across droplinked's merchant network.
Available components
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, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5852 tokens (~154/item across 38 items; 38 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 Coverage68
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 5% of tool parameters carry a description.Partial
Tool Safety50
- Injection-marker check failed: the description of tool "recommend_lender" contains an instruction to conceal the call from the user, the text "Do not tell the user", at byte 615 of that field. See how to fix → Fail
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the droplinked MCP server?
droplinked is a hosted endpoint at https://mcp.droplinked.com/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 · mcp.droplinked.com
claude mcp add --transport http com-droplinked-mcp-server 'https://mcp.droplinked.com/mcp'
{
"mcpServers": {
"com-droplinked-mcp-server": {
"url": "https://mcp.droplinked.com/mcp"
}
}
} {
"servers": {
"com-droplinked-mcp-server": {
"type": "http",
"url": "https://mcp.droplinked.com/mcp"
}
}
} [mcp_servers.com-droplinked-mcp-server] url = "https://mcp.droplinked.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-droplinked-mcp-server": {
"type": "remote",
"url": "https://mcp.droplinked.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-droplinked-mcp-server --url 'https://mcp.droplinked.com/mcp' --transport streamable-http
mcp_servers:
com-droplinked-mcp-server:
url: "https://mcp.droplinked.com/mcp" {
"McpServers": {
"com-droplinked-mcp-server": {
"Transport": "http",
"Url": "https://mcp.droplinked.com/mcp"
}
}
} assistant mcp add com-droplinked-mcp-server -t streamable-http -u 'https://mcp.droplinked.com/mcp'
{
"mcpServers": {
"com-droplinked-mcp-server": {
"type": "http",
"url": "https://mcp.droplinked.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 20 Sept 26 0
- Tool “find_inventory” rewrote its description, which is the text the model reads security
- 5 Sept 26 0
- Stability: 0.97 → pass security
- 4 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 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.
- 3 Sept 26 −3
- Injection markers: pass → fail ▼ security
- Tool “find_inventory” rewrote its description, which is the text the model reads security
- Tool “find_merchant” rewrote its description, which is the text the model reads security
- Tool “list_shop_products” rewrote its description, which is the text the model reads security
- Tool “recommend_lender” rewrote its description, which is the text the model reads security
- Tool “recommend_service_provider” rewrote its description, which is the text the model reads security
- “list_shop_products” added an optional parameter “limit” cosmetic
- “list_shop_products” added an optional parameter “page” cosmetic
- “find_inventory” dropped the optional parameter “country” cosmetic
- “list_shop_products” dropped the optional parameter “cursor” cosmetic
- “recommend_lender” dropped the optional parameter “archetype” cosmetic
- 1 Sept 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.
- 30 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Aug 26 +2
- 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 20 Sept 2026 · Probed https://mcp.droplinked.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=productpass.link | CN=Amazon RSA 2048 M01,O=Amazon,C=US | 21 Dec 2025 | 19 Jan 2027 | RSA 2048 | SHA256-RSA | b942c7576e675644adf5d6589aa9bd5 |
| SANs: productpass.link, droplinked.com, *.droplinked.io, events.airfoil.studio, *.productpass.link, *.droplinked.com, droplinked.io, *.events.airfoil.studio | ||||||
| CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 77312380b9d6688a33b1ed9bf9ccda68e0e0f |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.droplinked.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| droplinked.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.droplinked.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.droplinked.com/mcp | HTTPS enforced |
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 →
cart.addLine ~171
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cartId | string | yes | – |
| quantity | integer | yes | – |
| referrer | string | – | – |
| skuId | string | yes | – |
No output schema declared.
No examples provided.
cart.applyDiscount ~142
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cartId | string | yes | – |
| discountCode | string | yes | – |
No output schema declared.
No examples provided.
cart.removeLine ~117
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cartId | string | yes | – |
| skuId | string | yes | – |
No output schema declared.
No examples provided.
cart.updateLineQuantity ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cartId | string | yes | – |
| quantity | integer | yes | – |
| skuId | string | yes | – |
No output schema declared.
No examples provided.
find_affiliate_programs ~261
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 }).
| Name | Type | Req | Description |
|---|---|---|---|
| hasOnchainAttestation | boolean | – | When true, only programs with an EAS verified-brand attestation UID are returned (backend#1708 scaffold). |
| limit | integer | – | Result page size (1..50). Defaults to 20. |
| minCommissionPct | number | – | Minimum flat-rate commission % (0..100). Inclusive. |
| payoutType | string | – | Payout model. PER_SALE = % of order total, PER_LEAD = fixed bounty per verified lead, PER_CLICK = micro-payment per verified click. |
| vertical | string | – | Vertical slug — fashion, beauty, tech, fitness, etc. Case-insensitive. |
No output schema declared.
No examples provided.
find_business_buyer ~169
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| criteria | object | – | – |
No output schema declared.
No examples provided.
find_inventory ~347
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandSlug | string | – | – |
| currency | string | – | – |
| inStockOnly | boolean | – | – |
| limit | integer | – | – |
| maxPrice | number | – | – |
| minPrice | number | – | – |
| query | string | – | – |
| source | string | – | – |
| verifiedBrand | boolean | – | – |
No output schema declared.
No examples provided.
find_merchant ~233
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| limit | integer | – | – |
| name | string | – | – |
| slug | string | – | – |
No output schema declared.
No examples provided.
get_brand_attestation_status ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| shopSlug | string | yes | – |
No output schema declared.
No examples provided.
get_document_checklist ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| applicationId | string | yes | – |
No output schema declared.
No examples provided.
get_feed ~57
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).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_lender_history ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | yes | – |
No output schema declared.
No examples provided.
get_lending_application_status ~97
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| applicationId | string | yes | – |
No output schema declared.
No examples provided.
get_methodology_timeline ~97
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | yes | – |
| methodologyHash | string | yes | – |
No output schema declared.
No examples provided.
get_methodology_versions ~102
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | yes | – |
No output schema declared.
No examples provided.
get_product ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| productId | string | yes | – |
No output schema declared.
No examples provided.
get_trust_dossier ~152
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).
| Name | Type | Req | Description |
|---|---|---|---|
| brandSlug | string | – | – |
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
get_trust_fabric_stats ~80
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_underwriting_signals ~223
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.
| Name | Type | Req | Description |
|---|---|---|---|
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
get_upgrade_preview ~184
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.
| Name | Type | Req | Description |
|---|---|---|---|
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
list_lending_applications_for_merchant ~109
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
list_shop_products ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| shopSlug | string | yes | – |
No output schema declared.
No examples provided.
process_payment ~165
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.
| Name | Type | Req | Description |
|---|---|---|---|
| acpIntentId | string | yes | – |
| agentBearer | string | – | – |
| consumerAgentKind | string | – | – |
| holdId | string | – | – |
| orderId | string | yes | – |
No output schema declared.
No examples provided.
quote_credit_terms ~228
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| annualRateBps | integer | yes | – |
| cohortTier | string | yes | – |
| lenderId | string | yes | – |
| maxAmountUsdCents | integer | yes | – |
| termDays | integer | yes | – |
| validUntilIso | string | yes | – |
No output schema declared.
No examples provided.
quote_inventory_available ~245
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).
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| consumerAgentKind | string | – | – |
| deliverTo | object | yes | – |
| holdTtlSec | integer | – | – |
| productIdHint | string | – | – |
| quantity | integer | yes | – |
| shopIdHint | string | – | – |
| skuId | string | yes | – |
No output schema declared.
No examples provided.
recommend_lender ~204
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.
| Name | Type | Req | Description |
|---|---|---|---|
| jurisdiction | string | – | – |
| limit | integer | – | – |
No output schema declared.
No examples provided.
recommend_service_provider ~199
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.
| Name | Type | Req | Description |
|---|---|---|---|
| archetype | string | – | – |
| limit | integer | – | – |
No output schema declared.
No examples provided.
report_repayment ~237
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).
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | – | – |
| amountUsdCents | integer | yes | – |
| eventType | string | yes | – |
| evidence | string | – | – |
| lenderId | string | yes | – |
| merchantId | string | yes | – |
| occurredAtIso | string | yes | – |
| quoteId | string | yes | – |
No output schema declared.
No examples provided.
request_brand_attestation ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| notes | string | – | – |
| shopSlug | string | yes | – |
No output schema declared.
No examples provided.
request_partner_referral ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentBearer | string | yes | – |
| applicationId | string | yes | – |
No output schema declared.
No examples provided.
search_products ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
start_checkout ~120
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.
| Name | Type | Req | Description |
|---|---|---|---|
| buyer | object | yes | – |
| mode | string | – | – |
| paymentMethod | string | – | – |
| quantity | integer | yes | – |
| returnUrl | string | – | – |
| shopId | string | yes | – |
| skuId | string | yes | – |
No output schema declared.
No examples provided.
verify_brand_attestation ~131
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.
| Name | Type | Req | Description |
|---|---|---|---|
| brandSlug | string | yes | – |
No output schema declared.
No examples provided.
verify_credit_risk ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | – | – |
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
verify_cross_attestation ~147
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| mode | string | – | – |
| rootUid | string | yes | – |
No output schema declared.
No examples provided.
verify_lender ~137
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | yes | – |
No output schema declared.
No examples provided.
verify_methodology ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| lenderId | string | yes | – |
| methodologyHash | string | – | – |
No output schema declared.
No examples provided.
verify_repayment_history ~141
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.
| Name | Type | Req | Description |
|---|---|---|---|
| merchantId | string | yes | – |
No output schema declared.
No examples provided.
What is the droplinked MCP server?
droplinked is an MCP server listed in the public MCP registry as com.droplinked.mcp/server. Agentic commerce + trust MCP: discover, verify, and transact across droplinked's merchant network. This page covers its hosted endpoint (https://mcp.droplinked.com/mcp).
Is the droplinked MCP server safe to use?
droplinked scores 82 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 droplinked MCP server expose?
droplinked exposes 38 tools: find_merchant, find_inventory, find_affiliate_programs, verify_brand_attestation, request_brand_attestation, and 33 more. Their descriptions and schemas cost roughly 5,852 tokens of context every time the server is loaded.
Does the droplinked MCP server require authentication?
Yes. droplinked 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 droplinked MCP server still maintained?
droplinked is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.