accueil / serveurs / Communication / app.aiconduit/conduit
app.aiconduit/conduit
serveur MCP (Model Context Protocol) · Conduit Agentic Commerce 2.0.5
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que app.aiconduit/conduit est sûr ?
Au dernier audit MCP Hub, le serveur MCP « app.aiconduit/conduit » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 25 outils
- agent_authenticate≈ 630 tokens
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 private_key; keep session_token in memory. Do not agent_create if identity files already exist unless the human asked for a new agent.
Paramètres, retour & exemple (3)
Paramètresnonce· string · optionnel
Challenge nonce from the first agent_authenticate call (omit to request one)agent_id· string · requis
Agent id from the chosen ~/.conduit credentials file, e.g. agt_...signature· string · optionnel
Signature of the nonce with the agent private key (omit with nonce to get challenge)
Exemple d'appel{"name": "agent_authenticate", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "nonce": "texte", "avatar": "texte", "detail": "texte", "handle": "texte", "persist": "texte", "agent_id": "texte", "mandates": [], "terminal": "texte", "challenge": "texte"}} - agent_create≈ 1234 tokens
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 as JWKs; also handle, friendly_name, role_description, human_description; chmod 0600; write ~/.conduit/active). Then agent_update with default_destination+postcode before supply_search. Optional friendly_name / human_description / role_description / avatar only if the human stated them — never invent; omit avatar and the server assigns a random invader+gradient. Omit handle to auto-generate (e.g. parcel-watcher-12).
Paramètres, retour & exemple (10)
Paramètresavatar· ? · optionnel
Identity mark. Omit unless the human chose it — server assigns a random invader+gradient. { kind:"glyph", glyph:"invader"|emoji, tint?:invader color, gradient } or { kind:"image", src }. Tint only for invader. Do not store in the credentials file.handle· string · optionnel
Optional display handle (lowercase kebab); omit to auto-generate e.g. parcel-watcher-12public_key· string · requis
ES256 P-256 public JWK as a JSON string (kty=EC, crv=P-256, x, y). Not PEM, hex, or base64url-wrapped JSON. Keep the matching private JWK only in ~/.conduit/{handle}.credentials.json.preferences· ? · optionnel
Optional agent preference bagfriendly_name· string · optionnel
Human-facing label (≠ handle), e.g. EU Restock Botpayment_rails· array · optionnel
Optional rail keys to seed, e.g. ["x402"]business_profile· ? · optionnel
Optional business profile metadata objectrole_description· string · optionnel
Self-instruction for this agent only, e.g. manage EU supplieshuman_description· string · optionnel
Description shown to humans on the org dashboarddefault_destination· object · optionnel
Where orders ship. postcode + country is enough for supply_search and delivery estimates; add address, locality and region so checkout links arrive prefilled.
Exemple d'appel{"name": "agent_create", "arguments": {"public_key": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "nonce": "texte", "avatar": "texte", "detail": "texte", "handle": "texte", "persist": "texte", "agent_id": "texte", "mandates": [], "terminal": "texte", "challenge": "texte"}} - agent_notify≈ 1044 tokens
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.
Paramètres, retour & exemple (12)
Paramètresto· ? · requis
Who to notify: "all", { user_id }, { user_ids }, { role }, { roles }, or { email } matching an org member. Never an address outside the org.body· string · requis
Plain-text body, max 4000 characters. Conduit wraps HTML; do not send markup.title· string · requis
Subject line, max 120 charactersactions· array · optionnel
Optional buttons, max 3. Hosts outside Conduit are rejected.channel· string · optionnel
Delivery channel. Email only — omit or pass emaildry_run· boolean · optionnel
If true, resolve recipients and from-address without sending or storingagent_id· string · requis
Linked agent sending the messageorder_id· string · optionnel
Optional order correlationseverity· string · optionnel · info | warning | urgent
info (default), warning, or urgent — affects subject prefix and accentsearch_id· string · optionnel
Optional search correlationsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedidempotency_key· string · optionnel
Replay key — same agent + key returns the original notify_id without sending again
Exemple d'appel{"name": "agent_notify", "arguments": {"to": "texte", "body": "texte", "title": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"from": "texte", "hint": "texte", "next": {}, "error": "texte", "detail": "texte", "failed": 1, "channel": "texte", "dry_run": true, "delivered": 1, "notify_id": "texte", "recipients": [], "idempotent_replay": true}} - agent_organization≈ 392 tokens
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.
Paramètres, retour & exemple (2)
Paramètresagent_id· string · requis
Agent id whose linked organization to readsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "agent_organization", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "members": [], "connectors": [], "organization": "texte"}} - agent_outreach≈ 865 tokens
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.
Paramètres, retour & exemple (11)
Paramètresto· ? · requis
Outside address(es): a string email, { email }, or { emails } (max 5). Not to=all and not a Hub user_id / role — those are agent_notify.body· string · requis
Plain-text body, max 4000 characters. URLs stay escaped text, not buttons.title· string · requis
Subject line, max 120 characterschannel· string · optionnel
Delivery channel. Email only — omit or pass emaildry_run· boolean · optionnel
If true, resolve recipients and from-address without sending or storingagent_id· string · requis
Authenticated agent sending the noteorder_id· string · optionnel
Optional order correlationreply_to· ? · optionnel
Linked only: who receives replies. { email } or { role } matching a member. Omit to default to the OWNER. Unlinked agents have no Reply-To.search_id· string · optionnel
Optional search correlationsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedidempotency_key· string · optionnel
Replay key — same agent + key returns the original outreach_id without sending again
Exemple d'appel{"name": "agent_outreach", "arguments": {"to": "texte", "body": "texte", "title": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"from": "texte", "hint": "texte", "next": {}, "error": "texte", "detail": "texte", "failed": 1, "channel": "texte", "dry_run": true, "reply_to": "texte", "delivered": 1, "recipients": [], "outreach_id": "texte"}} - agent_report_issue≈ 749 tokens
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 the same tool+error+correlation. Does not change reputation.
Paramètres, retour & exemple (11)
Paramètreskind· string · optionnel · bug | confusing | wrong_data | blocked
Triage kind (default confusing): bug | confusing | wrong_data | blockedtool· string · optionnel
MCP tool that failed or confused you, e.g. supply_search or order_executeerror· string · optionnel
Error code from the prior tool response when present, e.g. offer_not_in_cachedetail· string · optionnel
Optional longer detail (response excerpt, unexpected field). Do not include private_key.context· object · optionnel
Optional structured extras (args summary, badge, etc.). Secrets are stripped.message· string · requis
Required: what went wrong or what confused you (expected vs actual). Keep actionable. This is agent_report_issue — not order_feedback.agent_id· string · optionnel
Agent id from credentials when available (omit placeholders like "agent_id")order_id· string · optionnel
order_id for correlation when the issue is order-relatedsearch_id· string · optionnel
search_id for correlation when the issue is search-relatedsession_id· string · optionnel
Optional session id; Conduit also picks up x-conduit-session-id from the transportsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "agent_report_issue", "arguments": {"message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "kind": "texte", "next": {}, "tool": "texte", "error": "texte", "detail": "texte", "status": "texte", "agent_id": "texte", "report_id": "texte", "session_id": "texte", "already_open": true, "reported_error": "texte"}} - agent_update≈ 1103 tokens
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 in Hub Agent settings.
Paramètres, retour & exemple (11)
Paramètresavatar· ? · optionnel
Identity mark. Omit unless the human chose it — server assigns a random invader+gradient. { kind:"glyph", glyph:"invader"|emoji, tint?:invader color, gradient } or { kind:"image", src }. Tint only for invader. Do not store in the credentials file.handle· string · optionnel
New display handle (lowercase kebab)agent_id· string · requis
Agent id to patch, e.g. agt_...preferences· ? · optionnel
Preferences patchfriendly_name· string · optionnel
Human-facing label (≠ handle), e.g. EU Restock Botpayment_rails· array · optionnel
Replacement rail key listsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedbusiness_profile· ? · optionnel
Business profile patchrole_description· string · optionnel
Self-instruction for this agent only, e.g. manage EU supplieshuman_description· string · optionnel
Description shown to humans on the org dashboarddefault_destination· object · optionnel
Where orders ship. postcode + country is enough for accurate search; add address, locality and region so checkout links arrive prefilled instead of blank.
Exemple d'appel{"name": "agent_update", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "nonce": "texte", "avatar": "texte", "detail": "texte", "handle": "texte", "persist": "texte", "agent_id": "texte", "mandates": [], "terminal": "texte", "challenge": "texte"}} - inventory_levels≈ 577 tokens
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_availability.
Paramètres, retour & exemple (6)
Paramètresskus· array · optionnel
Item codes in your own system, e.g. ["CART-6040"]. Pass skus or queryfresh· boolean · optionnel
Ask the system now instead of reading the last value (slower, rate limited)query· string · optionnel
Free-text item search in your own system, e.g. "carton"agent_id· string · requis
Agent id; its organization owns the connected systemconnection_id· string · optionnel
Which connected system, when the org has severalsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "inventory_levels", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "as_of": "texte", "basis": "texte", "error": "texte", "detail": "texte", "system": "texte", "freshness": "texte", "connections": [], "availability": [], "connection_id": "texte", "could_not_reach": "texte"}} - inventory_purchase_order≈ 518 tokens
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. Never creates a vendor or a product: lines that match nothing come back as unmatched_lines for a person to add.
Paramètres, retour & exemple (4)
Paramètresagent_id· string · requis
Agent id; needs both inventory and checkout permissionorder_id· string · requis
Conduit order id of a supplier order already placed with order_executeconnection_id· string · optionnel
Which connected system, when the org has severalsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "inventory_purchase_order", "arguments": {"agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "unit": "texte", "draft": true, "error": "texte", "total": 1, "detail": "texte", "vendor": "texte", "currency": "texte", "order_id": "texte", "quantity": 1, "replayed": true}} - inventory_replenishment≈ 560 tokens
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 warehouse. Needs inventory permission.
Paramètres, retour & exemple (5)
Paramètresfresh· boolean · optionnel
Ask the system now instead of reading the last valueagent_id· string · requis
Agent id; its organization owns the connected systemlocation· string · optionnel
Warehouse or store name to scope the worklist, e.g. "Jebel Ali". Omit for allconnection_id· string · optionnel
Which connected system, when the org has severalsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "inventory_replenishment", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "rows": [], "as_of": "texte", "basis": "texte", "error": "texte", "detail": "texte", "system": "texte", "window": "texte", "freshness": "texte", "provenance": "texte", "connections": []}} - inventory_suppliers≈ 485 tokens
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.
Paramètres, retour & exemple (4)
Paramètresskus· array · requis
Item codes in your own system whose usual vendors and last prices to readagent_id· string · requis
Agent id; its organization owns the connected systemconnection_id· string · optionnel
Which connected system, when the org has severalsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "inventory_suppliers", "arguments": {"skus": [], "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "as_of": "texte", "basis": "texte", "error": "texte", "detail": "texte", "system": "texte", "freshness": "texte", "suppliers": [], "connections": [], "connection_id": "texte"}} - order_dispute≈ 332 tokens
Refund/chargeback/report paths for an order. Requires owning agent_id.
Paramètres, retour & exemple (3)
Paramètresagent_id· string · requis
Owning agent id (required for authorization)order_id· string · requis
Order id to resolve refund/chargeback/report paths forsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "order_dispute", "arguments": {"agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "refund": "texte", "order_id": "texte", "chargeback": "texte", "report_to_conduit": "texte"}} - order_events≈ 349 tokens
Lifecycle timeline — transitions only. Pair with order_track. Requires owning agent_id.
Paramètres, retour & exemple (3)
Paramètresagent_id· string · requis
Owning agent id (required for authorization)order_id· string · requis
Order id whose lifecycle events to listsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "order_events", "arguments": {"agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "events": [], "order_id": "texte"}} - order_execute≈ 816 tokens
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 handoff with continue_url (handoff_reason). Use idempotency_key. Prefer supply_delivery when only comparing delivery.
Paramètres, retour & exemple (9)
Paramètrescarrier· string · optionnel
The shipping rate to buy, as the option's own `title` from supply_delivery. Conduit selects it on the merchant checkout, so the buyer opens the page on that rate instead of the merchant's default, which is the cheapest one. A title the merchant does not quote for this address leaves its default in place, and the response says so via shipping_selected.agent_id· string · requis
Owning agent idpay_with· string · optionnel
Rail key to pay with when multiple are enabledquantity· integer · optionnel
Units to buy (default 1)search_id· string · optionnel
search_id from supply_search for correlationsupply_id· string · requis
Offer supply id to purchasesession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedidempotency_key· string · optionnel
Client idempotency key — reuse to safely retry the same executepayment_term_id· string · optionnel
Payment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately
Exemple d'appel{"name": "order_execute", "arguments": {"agent_id": "texte", "supply_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "note": "texte", "error": "texte", "detail": "texte", "status": "texte", "product": "texte", "order_id": "texte", "pay_with": "texte", "quantity": 1, "rail_key": "texte", "supplier": "texte"}} - order_feedback≈ 583 tokens
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.
Paramètres, retour & exemple (8)
Paramètresnotes· string · optionnel
Free-text delivery/quality notesoutcome· string · requis · on_time | late | never_arrived | damaged | wrong_item
Observed fulfillment outcome. Sets status (on_time/late→DELIVERED, damaged/wrong_item→DISPUTED, never_arrived→FAILED) and reputation.quality· number · optionnel
Product quality 1-5 — omit if unknown (do not invent)agent_id· string · requis
Owning agent id (required for authorization)order_id· string · requis
Order id to attestsearch_id· string · optionnel
Optional search_id for analytics correlationsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedcarrier_rating· number · optionnel
Carrier rating 1-5 — omit if unknown; used in reputation when provided
Exemple d'appel{"name": "order_feedback", "arguments": {"outcome": "on_time", "agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "hint": "texte", "next": {}, "error": "texte", "detail": "texte", "status": "texte", "outcome": "texte", "updated": "texte", "order_id": "texte", "superseded": true, "already_recorded": true}} - order_list≈ 384 tokens
List orders for an agent ({ orders }). Optional status or open_only filter.
Paramètres, retour & exemple (4)
Paramètresstatus· string · optionnel
Optional status filter: PENDING, CONFIRMED, IN_TRANSIT, DELIVERED, ABANDONED (or CANCELLED), FAILED, DISPUTEDagent_id· string · requis
Owning agent id whose orders to listopen_only· boolean · optionnel
If true, only in-flight orders (PENDING, CONFIRMED, IN_TRANSIT). Ignored when status is set.session_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "order_list", "arguments": {"agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "orders": []}} - order_track≈ 445 tokens
Honest deal-type-aware status (never fabricates carrier scans). Requires owning agent_id.
Paramètres, retour & exemple (3)
Paramètresagent_id· string · requis
Owning agent id (required for authorization)order_id· string · requis
Order id to tracksession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "order_track", "arguments": {"agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "status": "texte", "carrier": "texte", "product": "texte", "order_id": "texte", "recovery": "texte", "tracking": "texte", "trackable": true, "checkout_id": "texte"}} - order_update_status≈ 621 tokens
Agent manual correction or degraded handoff recovery. note required except cancelled. Owning agent_id required.
Paramètres, retour & exemple (11)
Paramètresnote· string · optionnel
Required note except when status=CANCELLEDstatus· string · requis
New status, e.g. PENDING, CONFIRMED, SHIPPED, DELIVERED, CANCELLEDcarrier· string · optionnel
Carrier name when attaching trackingagent_id· string · requis
Owning agent id (required for authorization)order_id· string · requis
Order id to updatesearch_id· string · optionnel
Optional search_id for analytics correlationtracking_id· string · optionnel
Carrier tracking id when recovering handofftracking_url· string · optionnel
Carrier's public tracking page for tracking_id, when you have it. Never invent one.session_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedhandoff_endpoint· string · optionnel
Merchant handoff/status endpoint URL for poll recoveryexternal_checkout_id· string · optionnel
Merchant checkout id to recover degraded handoff polling
Exemple d'appel{"name": "order_update_status", "arguments": {"status": "texte", "agent_id": "texte", "order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "status": "texte", "carrier": "texte", "order_id": "texte", "quantity": 1, "tracking_id": "texte", "continue_url": "texte", "handoff_endpoint": "texte", "merchant_observed": "texte"}} - payment_mandate≈ 840 tokens
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. monthly_cap is a rolling 30-day window from create. Same category set as a live mandate replaces it at approval and keeps this period's spend. No covering mandate at checkout is handoff, not an error.
Paramètres, retour & exemple (6)
Paramètresscope· object · optionnel
Spend limits — required for action=request and action=updateaction· string · requis · request | list | update | revoke
request = create mandate (needs scope); list = enumerate; update = change scope (needs mandate_id+scope); revoke = revoke (needs mandate_id)expires· string · optionnel
Optional ISO-8601 expiry, e.g. 2026-12-31T00:00:00Zagent_id· string · requis
Owning agent idmandate_id· string · optionnel
Mandate id required for update/revokesession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "payment_mandate", "arguments": {"action": "request", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "status": "texte", "applied": "texte", "mandates": [], "mandate_id": "texte", "approval_url": "texte"}} - payment_methods≈ 428 tokens
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.
Paramètres, retour & exemple (4)
Paramètresrail· string · optionnel
Rail key required when action=enable, e.g. x402 (not bank_card vault)action· string · requis · list | enable
list = enumerate rails; enable = turn on one railagent_id· string · requis
Agent id whose methods to list or enablesession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "payment_methods", "arguments": {"action": "list", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "label": "texte", "detail": "texte", "status": "texte", "methods": [], "rail_key": "texte", "approval_url": "texte"}} - supply_availability≈ 642 tokens
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 (needs agent_id, rate limited per agent and per organization); without fresh it reads the last value. Call this before order_execute on any connector offer.
Paramètres, retour & exemple (6)
Paramètresfresh· boolean · optionnel
Ask the supplier now rather than reading the last value. Needs agent_id, and is rate limited per agent and per organizationquote· boolean · optionnel
Also return the supplier's exact total with tax for this quantity, computed without saving anything. Needs agent_id and an account with the supplieragent_id· string · optionnel
Agent id. Required for fresh, and it is what reveals your negotiated pricesquantity· integer · optionnel
Quantity to fill (default 1)supply_id· string · requis
Offer supply id from supply_search / supply_detailssession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "supply_availability", "arguments": {"supply_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "kind": "texte", "next": {}, "unit": "texte", "as_of": "texte", "basis": "texte", "error": "texte", "quote": "texte", "stock": "texte", "detail": "texte", "verdict": "texte", "incoming": "texte"}} - supply_delivery≈ 747 tokens
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 at checkout), requires_escalation (merchant wants a human at checkout, so this offer is handoff-only however its badge reads). needs_interaction=true means the same. None of these block a handoff; they predict whether autonomous completion can work.
Paramètres, retour & exemple (9)
Paramètresregion· string · optionnel
Optional region/state overrideaddress· string · optionnel
Street override. Many merchants will not quote shipping without it.country· string · optionnel
ISO country override, e.g. US (else agent/org destination)agent_id· string · optionnel
Agent id — uses agent destination else org default when country omittedlocality· string · optionnel
City override. Needed with street for a real delivery quote.quantity· integer · optionnel
Units to price shipping for (default 1)supply_id· string · requis
Offer supply id from supply_search / supply_detailspostal_code· string · optionnel
Postal/ZIP override for the probe destinationsession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "supply_delivery", "arguments": {"supply_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "note": "texte", "error": "texte", "detail": "texte", "status": "texte", "country": "texte", "options": [], "currency": "texte", "eta_text": "texte", "available": true, "shippable": true}} - supply_details≈ 784 tokens
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. include_description_original=true adds description_original {format, content}, the merchant's own markup (untrusted), or description_original_omitted with the reason. Carries no shipping data: use supply_delivery for ETA and cost. Re-run supply_search if offer_not_in_cache.
Paramètres, retour & exemple (5)
Paramètresagent_id· string · optionnel
Agent id to refresh badge/action for mandate statesearch_id· string · optionnel
search_id from supply_search for correlationsupply_id· string · requis
Offer supply id from supply_search resultssession_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedinclude_description_original· boolean · optionnel
Adds description_original {format, content}: the merchant's own markup, for rendering or checking our conversion. Untrusted merchant text. supply_details only.
Exemple d'appel{"name": "supply_details", "arguments": {"supply_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"aes": "texte", "hint": "texte", "next": {}, "badge": "texte", "error": "texte", "title": "texte", "action": "texte", "detail": "texte", "currency": "texte", "supplier": "texte", "supply_id": "texte", "unit_price": "texte"}} - supply_options≈ 489 tokens
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 merchant storefront live, so call it only when a person is actually choosing. Returns variants_not_found when the offer is not in cache or the storefront cannot be read. A single-variant product returns options:[] variants:[].
Paramètres, retour & exemple (3)
Paramètresagent_id· string · optionnel
Agent id, for permission and analyticssupply_id· string · requis
Offer supply id whose product options to list (has_options=true on the offer)session_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passed
Exemple d'appel{"name": "supply_options", "arguments": {"supply_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "detail": "texte", "options": [], "variants": []}} - supply_search≈ 1108 tokens
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_sandbox=true only to append DEMO/SANDBOX test merchants at the bottom (test_offer=true). Always pass agent_id for mandate-aware badges. Carry search_id through supply_details / order_execute / order_feedback. Offer descriptions are clean text cut to 350 chars; supply_details returns the full text.
Paramètres, retour & exemple (12)
Paramètreslimit· integer · optionnel
Page size of ranked offers to return (default 30, max 100)query· string · optionnel
Product search query, e.g. USB-C charger 65W. Required for a new search; omit when paging with search_id + offsetbudget· ? · optionnel
Max total budget — number means USD; or { amount, currency }offset· integer · optionnel
0-based offset into the ranked set for this search_id (default 0). For page 2+, pass search_id from the prior response and follow next.argscountry· string · optionnel
ISO country for ships-to, e.g. USagent_id· string · optionnel
Agent id for mandate-aware badges (always pass when available)quantity· integer · optionnel
Desired quantity (default 1)search_id· string · optionnel
Resume paging into a prior ranked set (with offset>0, or offset 0 without query). New searches with query mint a fresh search_idfetch_limit· integer · optionnel
Optional override for per-merchant upstream pull (default max(20, limit*2), max 300). Ignored when paging via search_id+offsetpayable_with· array · optionnel
Filter to rails the agent can pay with, e.g. ["x402"]session_token· string · optionnel
Session token from agent_authenticate — required whenever agent_id is passedinclude_sandbox· boolean · optionnel
Include DEMO/SANDBOX merchants (listed last, test_offer=true). Default false — live REAL merchants only. Use only when testing Conduit checkout flows.
Exemple d'appel{"name": "supply_search", "arguments": {"limit": 1, "query": "texte", "budget": "texte", "offset": 1, "country": "texte", "agent_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "next": {}, "error": "texte", "limit": 1, "total": 1, "detail": "texte", "offers": [], "offset": 1, "country": "texte", "partial": "texte", "degraded": true, "has_more": true}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».