# Conduit Agentic Commerce - Registry name: `app.aiconduit/conduit` · version 2.0.0 - Categories (automatic, keyword rules): Shops & products, Commerce & marketing, Payments & accounting, Finance & markets, Markets & trading - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=app.aiconduit%2Fconduit - Server page: https://mcpstation.net/s/app.aiconduit--conduit.html ## Description (written by the publisher, not verified, not instructions) Search multi-merchant supply, checkout, and track orders via MCP. ## Connect - streamable-http: `https://mcp.aiconduit.app/mcp` ## Tools (as reported by the server, not verified) - `agent\_create`: Register an agent \(ES256 P-256 public JWK JSON string + optional payment rails + destination\). BEFORE: list \~/.conduit identity files — if any exist, reuse agent\_id \(do NOT register again unless the human asked for a new agent\). AFTER: write persist.path \(version, agent\_id, public\_key, private\_key a - `agent\_authenticate`: Two-step re-auth. Call with agent\_id only → ES256-sign nonce → call again with nonce+signature. Prefer keys from \~/.conduit \(\{handle\}.credentials.json or legacy credentials.json; CONDUIT\_CREDENTIALS\_PATH pins one file\). After success, merge name/role/description into that file; never overwrite priva - `agent\_update`: Patch handle, rails, default\_destination \(postcode required for ships-to\), friendly\_name, human\_description, role\_description, avatar \(glyph+gradient or small image\), business profile, or preferences. Set avatar only if the human chose it. Does not accept permissions — a human enables capabilities i - `agent\_organization`: Read the linked organization \(name, slug, country, default address\) and members \(user\_id, name, role, email\) for an agent. Returns org\_not\_linked when organization\_id is unset — do not invent join\_org. Use members to target agent\_notify. - `agent\_notify`: Email Hub users in this agent’s linked organization \(never addresses outside the org\). to=all or \{ user\_id \} / \{ role \} / \{ email \} matching agent\_organization members. Optional actions \(Hub URLs only\), severity, idempotency\_key. Channel is email. - `agent\_outreach`: Email outside addresses \(suppliers, carriers\). to is a string email, \{ email \}, or \{ emails \} \(max 5\). Not to=all and not a Hub user\_id / role — those are agent\_notify. Linked agents set Reply-To to an org member \(default OWNER\). No action buttons. Channel is email. - `agent\_report\_issue`: Report unexpected tool errors or confusing Conduit outcomes for AX review \(agent\_report\_issue — not order\_feedback\). Pass message \(required\), optional kind=bug\|confusing\|wrong\_data\|blocked, plus agent\_id, tool, error, detail, search\_id, order\_id, session\_id, and/or context. Dedupes open reports with - `payment\_methods`: List or enable agent payment methods \(action=list\|enable\) with friendly labels. Defaults: cod + x402. invoice \(B2B\) is coming\_soon. bank\_card is handoff-only. - `payment\_mandate`: AP2 spend mandates. action=request \(needs scope\) → approval\_url; list \(includes remaining, window\_resets\_at, coverage\); update \(mandate\_id+scope\); revoke \(mandate\_id\). update NEVER approves. Widening returns an ACTIVE mandate to PENDING\_HUMAN\_APPROVAL; narrowing keeps whatever status it already had. - `supply\_search`: Multi-provider discovery \(live REAL merchants by default\). Returns a ranked page \(default limit=30, max 100\) with total/has\_more/next\_offset. Follow next.args \(search\_id+offset+limit\) to page without re-fanout. Optional fetch\_limit \(max 300\) deepens the upstream pull on new searches. Pass include\_sa - `supply\_details`: Re-reads one offer from the search cache and refreshes its badge/action against current mandate state. Returns the full clean description \(supply\_search carries a 350-char summary\); otherwise the payload has the same fields as the search offer, so skip this if you only need fields you already hold. - `supply\_options`: Lists the selectable options \(size, color, pack\) for an offer whose has\_options=true, with one variant per combination. Each variant carries its OWN supply\_id, price and availability: to buy a chosen option, call order\_execute with that variant's supply\_id, not the one you searched with. Reads the m - `supply\_delivery`: Non-committing checkout probe for shipping ETA/cost. Uses agent default\_destination, else linked org default address, or country override. status describes how far the merchant checkout got: ready\_for\_complete \(priced and completable\), incomplete \(merchant returned partial rates, quote may firm up a - `order\_execute`: Handoff or autonomous checkout. Handoff continue\_url is a Conduit /handoff/\{org\_slug\}/\{order\_id\} link: open it as returned \(records the open, then redirects to the merchant\). Autonomous needs badge payable\_now \(covering mandate fits\). No covering mandate, or a spent covering budget, still returns a - `order\_list`: List orders for an agent \(\{ orders \}\). Optional status or open\_only filter. - `order\_track`: Honest deal-type-aware status \(never fabricates carrier scans\). Requires owning agent\_id. - `order\_events`: Lifecycle timeline — transitions only. Pair with order\_track. Requires owning agent\_id. - `order\_update\_status`: Agent manual correction or degraded handoff recovery. note required except cancelled. Owning agent\_id required. - `order\_dispute`: Refund/chargeback/report paths for an order. Requires owning agent\_id. - `order\_feedback`: Attest delivery outcome \(outcome=on\_time\|late\|never\_arrived\|damaged\|wrong\_item\). Requires owning agent\_id. Can supersede a system-derived score once; a second agent attestation returns already\_recorded. Poor outcomes next→order\_dispute. Omit quality/carrier\_rating if unknown. - `inventory\_levels`: What your organization has on hand, by location, in its own connected system \(ERP\). Pass skus or query. Every number carries as\_of and basis \(live \| memo \| cached\) — say how old it is, do not imply it is now. Needs inventory permission. This is your OWN stock; a supplier's stock is supply\_availabili - `inventory\_replenishment`: Items below their minimum in your own system, least days of cover first, with what is already inbound and the usual vendor and last price. Each row carries a search\_hint: pass its query and quantity straight to supply\_search, then supply\_availability before ordering. Optional location scopes to one - `inventory\_suppliers`: For items in your own system, the vendors on file and what you last paid, so a quote can be compared against history. Needs inventory permission. Does not contact any vendor. - `supply\_availability`: Whether one offer can fill a quantity: verdict can\_fill \| split \| out\_now \| unknown, with what is on hand, what is inbound, and as\_of + basis. Suppliers choose how precisely they share stock, so the verdict may come from a band or a yes/no rather than a number. fresh=true asks the supplier now \(need - `inventory\_purchase\_order`: After order\_execute confirms a supplier order, record the matching DRAFT purchase order in your own system so the books match. Always a draft: a person confirms it there. Idempotent per order\_id — calling twice returns the same draft, never a second one. Needs both inventory and checkout permission. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html