Conduit Agentic Commerce
Server Details
Search multi-merchant supply, checkout, and track orders via MCP.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 25 tools
Most tools target clearly distinct resource+action pairs, and descriptions actively draw boundaries (e.g. agent_notify vs agent_outreach, order_feedback vs order_dispute, agent_report_issue vs order_feedback). The five supply_* tools (search/availability/details/options/delivery) are individually well-scoped but dense and easy to misorder. A couple of pairs (order_track vs order_events, notify vs outreach) still share a surface and rely on prose to separate them.
Every tool is snake_case with a consistent domain prefix (agent_, inventory_, order_, payment_, supply_) followed by a verb_noun-style suffix. The grouping makes the surface predictable and scannable. A few resource-noun names (agent_organization, payment_mandate, payment_methods) are natural fits for read operations and do not break the pattern.
At 25 tools it sits at the heavy end, but the server spans five real sub-domains (identity, inventory, orders, payments, supply), so each tool broadly earns its place. The 5-supply and 7-order clusters are the only places it feels slightly inflated. No tool looks redundant or trivial.
The surface covers the full agentic-commerce lifecycle: agent register/auth/update, org read, comms, inventory read + draft PO, order list/track/execute/update/dispute/feedback, and payments. Gaps are minor (no agent de-registration, no dedicated order cancel/search beyond status filters), and several are intentionally delegated to handoffs or human steps. Core workflows have no obvious dead ends.
Available Tools
25 toolsagent_authenticateAuthenticate agentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Challenge nonce from the first agent_authenticate call (omit to request one) | |
| agent_id | Yes | Agent id from the chosen ~/.conduit credentials file, e.g. agt_... | |
| signature | No | Signature of the nonce with the agent private key (omit with nonce to get challenge) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| nonce | No | |
| avatar | No | |
| detail | No | |
| handle | No | |
| persist | No | |
| agent_id | No | |
| mandates | No | |
| terminal | No | |
| challenge | No | |
| created_at | No | |
| public_key | No | |
| reputation | No | |
| open_orders | No | |
| permissions | No | |
| preferences | No | |
| organization | No | |
| total_orders | No | |
| friendly_name | No | |
| payment_rails | No | |
| organization_id | No | |
| business_profile | No | |
| role_description | No | |
| human_description | No | |
| destination_source | No | |
| default_destination | No | |
| effective_destination | No |
agent_createCreate agent profileAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| avatar | No | 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 | No | Optional display handle (lowercase kebab); omit to auto-generate e.g. parcel-watcher-12 | |
| public_key | Yes | 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 | No | Optional agent preference bag | |
| friendly_name | No | Human-facing label (≠ handle), e.g. EU Restock Bot | |
| payment_rails | No | Optional rail keys to seed, e.g. ["x402"] | |
| business_profile | No | Optional business profile metadata object | |
| role_description | No | Self-instruction for this agent only, e.g. manage EU supplies | |
| human_description | No | Description shown to humans on the org dashboard | |
| default_destination | No | Where orders ship. postcode + country is enough for supply_search and delivery estimates; add address, locality and region so checkout links arrive prefilled. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| nonce | No | |
| avatar | No | |
| detail | No | |
| handle | No | |
| persist | No | |
| agent_id | No | |
| mandates | No | |
| terminal | No | |
| challenge | No | |
| created_at | No | |
| public_key | No | |
| reputation | No | |
| open_orders | No | |
| permissions | No | |
| preferences | No | |
| organization | No | |
| total_orders | No | |
| friendly_name | No | |
| payment_rails | No | |
| organization_id | No | |
| business_profile | No | |
| role_description | No | |
| human_description | No | |
| destination_source | No | |
| default_destination | No | |
| effective_destination | No |
agent_notifyNotify org membersAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Who to notify: "all", { user_id }, { user_ids }, { role }, { roles }, or { email } matching an org member. Never an address outside the org. | |
| body | Yes | Plain-text body, max 4000 characters. Conduit wraps HTML; do not send markup. | |
| title | Yes | Subject line, max 120 characters | |
| actions | No | Optional buttons, max 3. Hosts outside Conduit are rejected. | |
| channel | No | Delivery channel. Email only — omit or pass email | |
| dry_run | No | If true, resolve recipients and from-address without sending or storing | |
| agent_id | Yes | Linked agent sending the message | |
| order_id | No | Optional order correlation | |
| severity | No | info (default), warning, or urgent — affects subject prefix and accent | |
| search_id | No | Optional search correlation | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| idempotency_key | No | Replay key — same agent + key returns the original notify_id without sending again |
Output Schema
| Name | Required | Description |
|---|---|---|
| from | No | |
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| failed | No | |
| channel | No | |
| dry_run | No | |
| delivered | No | |
| notify_id | No | |
| recipients | No | |
| idempotent_replay | No |
agent_organizationGet agent organizationARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent id whose linked organization to read | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| members | No | |
| connectors | No | |
| organization | No |
agent_outreachEmail a supplier or carrierAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 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 | Yes | Plain-text body, max 4000 characters. URLs stay escaped text, not buttons. | |
| title | Yes | Subject line, max 120 characters | |
| channel | No | Delivery channel. Email only — omit or pass email | |
| dry_run | No | If true, resolve recipients and from-address without sending or storing | |
| agent_id | Yes | Authenticated agent sending the note | |
| order_id | No | Optional order correlation | |
| reply_to | No | 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 | No | Optional search correlation | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| idempotency_key | No | Replay key — same agent + key returns the original outreach_id without sending again |
Output Schema
| Name | Required | Description |
|---|---|---|
| from | No | |
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| failed | No | |
| channel | No | |
| dry_run | No | |
| reply_to | No | |
| delivered | No | |
| recipients | No | |
| outreach_id | No | |
| idempotent_replay | No |
agent_report_issueReport an issueAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Triage kind (default confusing): bug | confusing | wrong_data | blocked | |
| tool | No | MCP tool that failed or confused you, e.g. supply_search or order_execute | |
| error | No | Error code from the prior tool response when present, e.g. offer_not_in_cache | |
| detail | No | Optional longer detail (response excerpt, unexpected field). Do not include private_key. | |
| context | No | Optional structured extras (args summary, badge, etc.). Secrets are stripped. | |
| message | Yes | Required: what went wrong or what confused you (expected vs actual). Keep actionable. This is agent_report_issue — not order_feedback. | |
| agent_id | No | Agent id from credentials when available (omit placeholders like "agent_id") | |
| order_id | No | order_id for correlation when the issue is order-related | |
| search_id | No | search_id for correlation when the issue is search-related | |
| session_id | No | Optional session id; Conduit also picks up x-conduit-session-id from the transport | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| kind | No | |
| next | No | |
| tool | No | |
| error | No | |
| detail | No | |
| status | No | |
| agent_id | No | |
| report_id | No | |
| session_id | No | |
| already_open | No | |
| reported_error | No |
agent_updateUpdate agent profileAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| avatar | No | 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 | No | New display handle (lowercase kebab) | |
| agent_id | Yes | Agent id to patch, e.g. agt_... | |
| preferences | No | Preferences patch | |
| friendly_name | No | Human-facing label (≠ handle), e.g. EU Restock Bot | |
| payment_rails | No | Replacement rail key list | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| business_profile | No | Business profile patch | |
| role_description | No | Self-instruction for this agent only, e.g. manage EU supplies | |
| human_description | No | Description shown to humans on the org dashboard | |
| default_destination | No | Where orders ship. postcode + country is enough for accurate search; add address, locality and region so checkout links arrive prefilled instead of blank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| nonce | No | |
| avatar | No | |
| detail | No | |
| handle | No | |
| persist | No | |
| agent_id | No | |
| mandates | No | |
| terminal | No | |
| challenge | No | |
| created_at | No | |
| public_key | No | |
| reputation | No | |
| open_orders | No | |
| permissions | No | |
| preferences | No | |
| organization | No | |
| total_orders | No | |
| friendly_name | No | |
| payment_rails | No | |
| organization_id | No | |
| business_profile | No | |
| role_description | No | |
| human_description | No | |
| destination_source | No | |
| default_destination | No | |
| effective_destination | No |
inventory_levelsStock in your own systemARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | No | Item codes in your own system, e.g. ["CART-6040"]. Pass skus or query | |
| fresh | No | Ask the system now instead of reading the last value (slower, rate limited) | |
| query | No | Free-text item search in your own system, e.g. "carton" | |
| agent_id | Yes | Agent id; its organization owns the connected system | |
| connection_id | No | Which connected system, when the org has several | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| as_of | No | |
| basis | No | |
| error | No | |
| detail | No | |
| system | No | |
| freshness | No | |
| connections | No | |
| availability | No | |
| connection_id | No | |
| could_not_reach | No |
inventory_purchase_orderRecord a purchase orderAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent id; needs both inventory and checkout permission | |
| order_id | Yes | Conduit order id of a supplier order already placed with order_execute | |
| connection_id | No | Which connected system, when the org has several | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| unit | No | |
| draft | No | |
| error | No | |
| total | No | |
| detail | No | |
| vendor | No | |
| currency | No | |
| order_id | No | |
| quantity | No | |
| replayed | No | |
| external_name | No | |
| supplier_order | No | |
| unmatched_lines | No |
inventory_replenishmentWhat to reorderARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fresh | No | Ask the system now instead of reading the last value | |
| agent_id | Yes | Agent id; its organization owns the connected system | |
| location | No | Warehouse or store name to scope the worklist, e.g. "Jebel Ali". Omit for all | |
| connection_id | No | Which connected system, when the org has several | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| rows | No | |
| as_of | No | |
| basis | No | |
| error | No | |
| detail | No | |
| system | No | |
| window | No | |
| freshness | No | |
| provenance | No | |
| connections | No | |
| connection_id | No | |
| next_to_watch | No | |
| could_not_reach | No |
inventory_suppliersUsual vendors and last pricesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| skus | Yes | Item codes in your own system whose usual vendors and last prices to read | |
| agent_id | Yes | Agent id; its organization owns the connected system | |
| connection_id | No | Which connected system, when the org has several | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| as_of | No | |
| basis | No | |
| error | No | |
| detail | No | |
| system | No | |
| freshness | No | |
| suppliers | No | |
| connections | No | |
| connection_id | No |
order_disputeGet dispute pathBRead-onlyIdempotentInspect
Refund/chargeback/report paths for an order. Requires owning agent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Owning agent id (required for authorization) | |
| order_id | Yes | Order id to resolve refund/chargeback/report paths for | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| refund | No | |
| order_id | No | |
| chargeback | No | |
| report_to_conduit | No |
order_eventsGet order eventsARead-onlyIdempotentInspect
Lifecycle timeline — transitions only. Pair with order_track. Requires owning agent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Owning agent id (required for authorization) | |
| order_id | Yes | Order id whose lifecycle events to list | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| events | No | |
| order_id | No |
order_executeExecute orderAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | No | 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 | Yes | Owning agent id | |
| pay_with | No | Rail key to pay with when multiple are enabled | |
| quantity | No | Units to buy (default 1) | |
| search_id | No | search_id from supply_search for correlation | |
| supply_id | Yes | Offer supply id to purchase | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| idempotency_key | No | Client idempotency key — reuse to safely retry the same execute | |
| payment_term_id | No | Payment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| note | No | |
| error | No | |
| detail | No | |
| status | No | |
| product | No | |
| order_id | No | |
| pay_with | No | |
| quantity | No | |
| rail_key | No | |
| supplier | No | |
| shortfall | No | |
| simulated | No | |
| supply_id | No | |
| bill_total | No | |
| created_at | No | |
| continue_url | No | |
| address_status | No | |
| bill_breakdown | No | |
| purchase_draft | No | |
| supplier_order | No | |
| handoff_quality | No | |
| shipping_option | No | |
| handoff_endpoint | No | |
| idempotent_replay | No | |
| shipping_selected | No | |
| external_checkout_id | No |
order_feedbackSubmit feedbackAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Free-text delivery/quality notes | |
| outcome | Yes | Observed fulfillment outcome. Sets status (on_time/late→DELIVERED, damaged/wrong_item→DISPUTED, never_arrived→FAILED) and reputation. | |
| quality | No | Product quality 1-5 — omit if unknown (do not invent) | |
| agent_id | Yes | Owning agent id (required for authorization) | |
| order_id | Yes | Order id to attest | |
| search_id | No | Optional search_id for analytics correlation | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| carrier_rating | No | Carrier rating 1-5 — omit if unknown; used in reputation when provided |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| status | No | |
| outcome | No | |
| updated | No | |
| order_id | No | |
| superseded | No | |
| already_recorded | No |
order_listList ordersARead-onlyIdempotentInspect
List orders for an agent ({ orders }). Optional status or open_only filter.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional status filter: PENDING, CONFIRMED, IN_TRANSIT, DELIVERED, ABANDONED (or CANCELLED), FAILED, DISPUTED | |
| agent_id | Yes | Owning agent id whose orders to list | |
| open_only | No | If true, only in-flight orders (PENDING, CONFIRMED, IN_TRANSIT). Ignored when status is set. | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| orders | No |
order_trackTrack orderBRead-onlyIdempotentInspect
Honest deal-type-aware status (never fabricates carrier scans). Requires owning agent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Owning agent id (required for authorization) | |
| order_id | Yes | Order id to track | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| status | No | |
| carrier | No | |
| product | No | |
| order_id | No | |
| recovery | No | |
| tracking | No | |
| trackable | No | |
| checkout_id | No | |
| tracking_id | No | |
| continue_url | No | |
| status_source | No | |
| address_status | No | |
| purchase_draft | No | |
| supplier_order | No | |
| tracking_source | No | |
| merchant_observed | No | |
| handoff_expires_at | No | |
| agent_status_locked | No |
order_update_statusUpdate order statusBInspect
Agent manual correction or degraded handoff recovery. note required except cancelled. Owning agent_id required.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Required note except when status=CANCELLED | |
| status | Yes | New status, e.g. PENDING, CONFIRMED, SHIPPED, DELIVERED, CANCELLED | |
| carrier | No | Carrier name when attaching tracking | |
| agent_id | Yes | Owning agent id (required for authorization) | |
| order_id | Yes | Order id to update | |
| search_id | No | Optional search_id for analytics correlation | |
| tracking_id | No | Carrier tracking id when recovering handoff | |
| tracking_url | No | Carrier's public tracking page for tracking_id, when you have it. Never invent one. | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| handoff_endpoint | No | Merchant handoff/status endpoint URL for poll recovery | |
| external_checkout_id | No | Merchant checkout id to recover degraded handoff polling |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| status | No | |
| carrier | No | |
| order_id | No | |
| quantity | No | |
| tracking_id | No | |
| continue_url | No | |
| handoff_endpoint | No | |
| merchant_observed | No | |
| agent_status_locked | No | |
| external_checkout_id | No |
payment_mandatePayment mandate (AP2)ADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Spend limits — required for action=request and action=update | |
| action | Yes | request = create mandate (needs scope); list = enumerate; update = change scope (needs mandate_id+scope); revoke = revoke (needs mandate_id) | |
| expires | No | Optional ISO-8601 expiry, e.g. 2026-12-31T00:00:00Z | |
| agent_id | Yes | Owning agent id | |
| mandate_id | No | Mandate id required for update/revoke | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| status | No | |
| applied | No | |
| mandates | No | |
| mandate_id | No | |
| approval_url | No |
payment_methodsPayment methodsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rail | No | Rail key required when action=enable, e.g. x402 (not bank_card vault) | |
| action | Yes | list = enumerate rails; enable = turn on one rail | |
| agent_id | Yes | Agent id whose methods to list or enable | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| label | No | |
| detail | No | |
| status | No | |
| methods | No | |
| rail_key | No | |
| approval_url | No |
supply_availabilityCan this supplier fill itARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fresh | No | Ask the supplier now rather than reading the last value. Needs agent_id, and is rate limited per agent and per organization | |
| quote | No | Also return the supplier's exact total with tax for this quantity, computed without saving anything. Needs agent_id and an account with the supplier | |
| agent_id | No | Agent id. Required for fresh, and it is what reveals your negotiated prices | |
| quantity | No | Quantity to fill (default 1) | |
| supply_id | Yes | Offer supply id from supply_search / supply_details | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| kind | No | |
| next | No | |
| unit | No | |
| as_of | No | |
| basis | No | |
| error | No | |
| quote | No | |
| stock | No | |
| detail | No | |
| verdict | No | |
| incoming | No | |
| quantity | No | |
| freshness | No | |
| locations | No | |
| supply_id | No | |
| link_state | No | |
| quote_error | No | |
| fresh_refused | No | |
| could_not_reach | No |
supply_deliveryGet delivery estimateARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Optional region/state override | |
| address | No | Street override. Many merchants will not quote shipping without it. | |
| country | No | ISO country override, e.g. US (else agent/org destination) | |
| agent_id | No | Agent id — uses agent destination else org default when country omitted | |
| locality | No | City override. Needed with street for a real delivery quote. | |
| quantity | No | Units to price shipping for (default 1) | |
| supply_id | Yes | Offer supply id from supply_search / supply_details | |
| postal_code | No | Postal/ZIP override for the probe destination | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| note | No | |
| error | No | |
| detail | No | |
| status | No | |
| country | No | |
| options | No | |
| currency | No | |
| eta_text | No | |
| available | No | |
| shippable | No | |
| supply_id | No | |
| postal_code | No | |
| payment_rails | No | |
| shipping_cost | No | |
| address_status | No | |
| needs_interaction | No | |
| placeholder_street | No |
supply_detailsGet supply detailsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Agent id to refresh badge/action for mandate state | |
| search_id | No | search_id from supply_search for correlation | |
| supply_id | Yes | Offer supply id from supply_search results | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| include_description_original | No | Adds description_original {format, content}: the merchant's own markup, for rendering or checking our conversion. Untrusted merchant text. supply_details only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| aes | No | |
| hint | No | |
| next | No | |
| badge | No | |
| error | No | |
| title | No | |
| action | No | |
| detail | No | |
| currency | No | |
| supplier | No | |
| supply_id | No | |
| unit_price | No | |
| description | No | |
| price_total | No | |
| payment_rails | No | |
| payment_terms | No | |
| delivery_options | No | |
| description_original | No | Only with include_description_original. The merchant's markup, untrusted. format is html or markdown today; plain is reserved. |
| description_original_omitted | No | Only with include_description_original, when there is no original: no_markup (plain text or none), oversize (over 20,000 chars), empty (markup with no visible text). |
supply_optionsList product optionsARead-onlyIdempotentInspect
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:[].
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Agent id, for permission and analytics | |
| supply_id | Yes | Offer supply id whose product options to list (has_options=true on the offer) | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| detail | No | |
| options | No | |
| variants | No |
supply_searchSearch supplyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size of ranked offers to return (default 30, max 100) | |
| query | No | Product search query, e.g. USB-C charger 65W. Required for a new search; omit when paging with search_id + offset | |
| budget | No | Max total budget — number means USD; or { amount, currency } | |
| offset | No | 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.args | |
| country | No | ISO country for ships-to, e.g. US | |
| agent_id | No | Agent id for mandate-aware badges (always pass when available) | |
| quantity | No | Desired quantity (default 1) | |
| search_id | No | Resume paging into a prior ranked set (with offset>0, or offset 0 without query). New searches with query mint a fresh search_id | |
| fetch_limit | No | Optional override for per-merchant upstream pull (default max(20, limit*2), max 300). Ignored when paging via search_id+offset | |
| payable_with | No | Filter to rails the agent can pay with, e.g. ["x402"] | |
| session_token | No | Session token from agent_authenticate — required whenever agent_id is passed | |
| include_sandbox | No | Include DEMO/SANDBOX merchants (listed last, test_offer=true). Default false — live REAL merchants only. Use only when testing Conduit checkout flows. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hint | No | |
| next | No | |
| error | No | |
| limit | No | |
| total | No | |
| detail | No | |
| offers | No | |
| offset | No | |
| country | No | |
| partial | No | |
| degraded | No | |
| has_more | No | |
| withheld | No | |
| search_id | No | |
| next_offset | No | |
| recommended | No | |
| badge_counts | No | |
| country_default | No | |
| include_sandbox | No | |
| sandbox_included | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
supply_details4 fields changed- added
Input schema / properties / include_description_originalAdded value: +{ + "description": "Adds description_original {format, content}: the merchant's own markup, for rendering or checking our conversion. Untrusted merchant text. supply_details only.", + "type": "boolean" +} - added
Output schema / properties / descriptionAdded value: +{ + "type": "string" +} - added
Output schema / properties / description_originalAdded value: +{ + "additionalProperties": false, + "description": "Only with include_description_original. The merchant's markup, untrusted. format is html or markdown today; plain is reserved.", + "properties": { + "content": { + "type": "string" + }, + "format": { + "enum": [ + "html", + "markdown", + "plain" + ], + "type": "string" + } + }, + "required": [ + "format", + "content" + ], + "type": "object" +} - added
Output schema / properties / description_original_omittedAdded value: +{ + "description": "Only with include_description_original, when there is no original: no_markup (plain text or none), oversize (over 20,000 chars), empty (markup with no visible text).", + "enum": [ + "no_markup", + "oversize", + "empty" + ], + "type": "string" +}
25 tool updates
- Changed
agent_authenticate2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_create2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_notify2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_organization2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_outreach2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_report_issue2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
agent_update2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
inventory_levels2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
inventory_purchase_order2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
inventory_replenishment2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
inventory_suppliers2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_dispute2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_events2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_execute2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_feedback2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_list2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_track2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
order_update_status2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
payment_mandate2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
payment_methods2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
supply_availability2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
supply_delivery2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
supply_details2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
supply_options2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
- Changed
supply_search2 fields changed- added
Output schema / properties / next / properties / args / additionalProperties / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } +] - removed
Output schema / properties / next / properties / args / additionalProperties / typeRemoved value: -"string"
8 tool updates
- Changed
agent_organization1 field changed- added
Output schema / properties / connectorsAdded value: +{ + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" +}
- Added
inventory_levels - Added
inventory_purchase_order - Added
inventory_replenishment - Added
inventory_suppliers - Changed
order_execute2 fields changed- added
Output schema / properties / purchase_draftAdded value: +{} - added
Output schema / properties / supplier_orderAdded value: +{}
- Changed
order_track2 fields changed- added
Output schema / properties / purchase_draftAdded value: +{} - added
Output schema / properties / supplier_orderAdded value: +{}
- Added
supply_availability
1 tool update
- Changed
order_update_status1 field changed- added
Input schema / properties / tracking_urlAdded value: +{ + "description": "Carrier's public tracking page for tracking_id, when you have it. Never invent one.", + "format": "uri", + "type": "string" +}
1 tool update
- Changed
order_execute3 fields changed- changed
Input schema / properties / carrier / descriptionPrevious value: -"Preferred carrier when delivery options allow"New value: +"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." - added
Output schema / properties / shipping_optionAdded value: +{ + "type": "string" +} - added
Output schema / properties / shipping_selectedAdded value: +{ + "type": "boolean" +}
1 tool update
- Changed
supply_delivery4 fields changed- added
Input schema / properties / addressAdded value: +{ + "description": "Street override. Many merchants will not quote shipping without it.", + "type": "string" +} - added
Input schema / properties / localityAdded value: +{ + "description": "City override. Needed with street for a real delivery quote.", + "type": "string" +} - added
Output schema / properties / address_statusAdded value: +{ + "type": "string" +} - added
Output schema / properties / placeholder_streetAdded value: +{ + "type": "boolean" +}
2 tool updates
- Changed
agent_report_issue1 field changed- added
Output schema / properties / reported_errorAdded value: +{ + "type": "string" +}
- Added
supply_options
4 tool updates
- Changed
agent_create4 fields changed- added
Input schema / properties / default_destination / additionalPropertiesAdded value: +{} - changed
Input schema / properties / default_destination / descriptionPrevious value: -"Shipping destination object; include postcode before supply_search"New value: +"Where orders ship. postcode + country is enough for supply_search and delivery estimates; add address, locality and region so checkout links arrive prefilled." - added
Input schema / properties / default_destination / propertiesAdded value: +{ + "address": { + "description": "Street address. Needed for checkout to prefill", + "type": "string" + }, + "city": { + "description": "Alias of locality", + "type": "string" + }, + "country": { + "description": "ISO country code, e.g. US", + "type": "string" + }, + "email": { + "description": "Buyer contact email for the merchant order", + "type": "string" + }, + "locality": { + "description": "City. Needed for checkout to prefill", + "type": "string" + }, + "name": { + "description": "Recipient name; many merchants require it to fulfil", + "type": "string" + }, + "phone": { + "description": "Buyer phone in E.164, e.g. +12125550188", + "type": "string" + }, + "postal_code": { + "description": "Alias of postcode", + "type": "string" + }, + "postcode": { + "description": "Postal / ZIP code. Enough for search and delivery estimates", + "type": "string" + }, + "region": { + "description": "State / province", + "type": "string" + }, + "state": { + "description": "Alias of region", + "type": "string" + }, + "street_address": { + "description": "Alias of address", + "type": "string" + } +} - added
Input schema / properties / default_destination / typeAdded value: +"object"
- Changed
agent_update4 fields changed- added
Input schema / properties / default_destination / additionalPropertiesAdded value: +{} - changed
Input schema / properties / default_destination / descriptionPrevious value: -"Shipping destination; must include postcode for accurate search"New value: +"Where orders ship. postcode + country is enough for accurate search; add address, locality and region so checkout links arrive prefilled instead of blank." - added
Input schema / properties / default_destination / propertiesAdded value: +{ + "address": { + "description": "Street address. Needed for checkout to prefill", + "type": "string" + }, + "city": { + "description": "Alias of locality", + "type": "string" + }, + "country": { + "description": "ISO country code, e.g. US", + "type": "string" + }, + "email": { + "description": "Buyer contact email for the merchant order", + "type": "string" + }, + "locality": { + "description": "City. Needed for checkout to prefill", + "type": "string" + }, + "name": { + "description": "Recipient name; many merchants require it to fulfil", + "type": "string" + }, + "phone": { + "description": "Buyer phone in E.164, e.g. +12125550188", + "type": "string" + }, + "postal_code": { + "description": "Alias of postcode", + "type": "string" + }, + "postcode": { + "description": "Postal / ZIP code. Enough for search and delivery estimates", + "type": "string" + }, + "region": { + "description": "State / province", + "type": "string" + }, + "state": { + "description": "Alias of region", + "type": "string" + }, + "street_address": { + "description": "Alias of address", + "type": "string" + } +} - added
Input schema / properties / default_destination / typeAdded value: +"object"
- Changed
order_execute1 field changed- added
Output schema / properties / address_statusAdded value: +{ + "type": "string" +}
- Changed
order_track1 field changed- added
Output schema / properties / address_statusAdded value: +{ + "type": "string" +}
2 tool updates
- Changed
order_execute1 field changed- added
Input schema / properties / payment_term_idAdded value: +{ + "description": "Payment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately", + "type": "string" +}
- Changed
supply_details1 field changed- added
Output schema / properties / payment_termsAdded value: +{ + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" +}
1 tool update
- Changed
payment_mandate2 fields changed- changed
Input schema / properties / scope / properties / categories / descriptionPrevious value: -"Optional category allowlist, Google Product Taxonomy level 1. Omit or pass [] to allow every category. Accepts the slug, the label, or the GPT numeric id. Slugs: electronics, office-supplies, business-and-industrial, hardware, furniture, home-and-garden, cameras-and-optics, software, media, apparel-and-accessories, luggage-and-bags, health-and-beauty, food-beverages-and-tobacco, sporting-goods, toys-and-games, baby-and-toddler, animals-and-pet-supplies, vehicles-and-parts, arts-and-entertainment, religious-and-ceremonial, mature. Enforced at order_execute: an offer Conduit cannot classify is blocked (shortfall category_unknown), not assumed in scope."New value: +"Optional category allowlist, Google Product Taxonomy level 1. Omit or pass [] for a General mandate (catch-all for unmatched and unclassified offers). Accepts the slug, the label, or the GPT numeric id. Slugs: electronics, office-supplies, business-and-industrial, hardware, furniture, home-and-garden, cameras-and-optics, software, media, apparel-and-accessories, luggage-and-bags, health-and-beauty, food-beverages-and-tobacco, sporting-goods, toys-and-games, baby-and-toddler, animals-and-pet-supplies, vehicles-and-parts, arts-and-entertainment, religious-and-ceremonial, mature. Most specific covering mandate wins; unknown category uses General; no covering mandate is handoff." - changed
Input schema / properties / scope / properties / monthly_cap / descriptionPrevious value: -"Max spend this calendar month, e.g. 500"New value: +"Max spend in a rolling 30-day window from when the mandate was created, e.g. 500"
1 tool update
- Changed
payment_mandate1 field changed- changed
Input schema / properties / scope / properties / categories / descriptionPrevious value: -"Optional category allowlist (empty = all categories)"New value: +"Optional category allowlist, Google Product Taxonomy level 1. Omit or pass [] to allow every category. Accepts the slug, the label, or the GPT numeric id. Slugs: electronics, office-supplies, business-and-industrial, hardware, furniture, home-and-garden, cameras-and-optics, software, media, apparel-and-accessories, luggage-and-bags, health-and-beauty, food-beverages-and-tobacco, sporting-goods, toys-and-games, baby-and-toddler, animals-and-pet-supplies, vehicles-and-parts, arts-and-entertainment, religious-and-ceremonial, mature. Enforced at order_execute: an offer Conduit cannot classify is blocked (shortfall category_unknown), not assumed in scope."
16 tool updates
- Changed
agent_authenticate24 fields changed- removed
Output schema / properties / agentIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / agent_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / businessProfileRemoved value: -{} - added
Output schema / properties / business_profileAdded value: +{} - removed
Output schema / properties / createdAtRemoved value: -{ - "type": "string" -} - added
Output schema / properties / created_atAdded value: +{ + "type": "string" +} - removed
Output schema / properties / defaultDestinationRemoved value: -{} - added
Output schema / properties / default_destinationAdded value: +{} - removed
Output schema / properties / effectiveDestinationRemoved value: -{} - added
Output schema / properties / effective_destinationAdded value: +{} - removed
Output schema / properties / friendlyNameRemoved value: -{ - "type": "string" -} - added
Output schema / properties / friendly_nameAdded value: +{ + "type": "string" +} - removed
Output schema / properties / humanDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / human_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / openOrdersRemoved value: -{} - added
Output schema / properties / open_ordersAdded value: +{} - removed
Output schema / properties / paymentRailsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / payment_railsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / publicKeyRemoved value: -{ - "type": "string" -} - added
Output schema / properties / public_keyAdded value: +{ + "type": "string" +} - removed
Output schema / properties / roleDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / role_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / totalOrdersRemoved value: -{} - added
Output schema / properties / total_ordersAdded value: +{}
- Changed
agent_create24 fields changed- removed
Output schema / properties / agentIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / agent_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / businessProfileRemoved value: -{} - added
Output schema / properties / business_profileAdded value: +{} - removed
Output schema / properties / createdAtRemoved value: -{ - "type": "string" -} - added
Output schema / properties / created_atAdded value: +{ + "type": "string" +} - removed
Output schema / properties / defaultDestinationRemoved value: -{} - added
Output schema / properties / default_destinationAdded value: +{} - removed
Output schema / properties / effectiveDestinationRemoved value: -{} - added
Output schema / properties / effective_destinationAdded value: +{} - removed
Output schema / properties / friendlyNameRemoved value: -{ - "type": "string" -} - added
Output schema / properties / friendly_nameAdded value: +{ + "type": "string" +} - removed
Output schema / properties / humanDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / human_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / openOrdersRemoved value: -{} - added
Output schema / properties / open_ordersAdded value: +{} - removed
Output schema / properties / paymentRailsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / payment_railsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / publicKeyRemoved value: -{ - "type": "string" -} - added
Output schema / properties / public_keyAdded value: +{ + "type": "string" +} - removed
Output schema / properties / roleDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / role_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / totalOrdersRemoved value: -{} - added
Output schema / properties / total_ordersAdded value: +{}
- Changed
agent_notify2 fields changed- removed
Output schema / properties / idempotentReplayRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / idempotent_replayAdded value: +{ + "type": "boolean" +}
- Changed
agent_outreach2 fields changed- removed
Output schema / properties / idempotentReplayRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / idempotent_replayAdded value: +{ + "type": "boolean" +}
- Changed
agent_update24 fields changed- removed
Output schema / properties / agentIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / agent_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / businessProfileRemoved value: -{} - added
Output schema / properties / business_profileAdded value: +{} - removed
Output schema / properties / createdAtRemoved value: -{ - "type": "string" -} - added
Output schema / properties / created_atAdded value: +{ + "type": "string" +} - removed
Output schema / properties / defaultDestinationRemoved value: -{} - added
Output schema / properties / default_destinationAdded value: +{} - removed
Output schema / properties / effectiveDestinationRemoved value: -{} - added
Output schema / properties / effective_destinationAdded value: +{} - removed
Output schema / properties / friendlyNameRemoved value: -{ - "type": "string" -} - added
Output schema / properties / friendly_nameAdded value: +{ + "type": "string" +} - removed
Output schema / properties / humanDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / human_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / openOrdersRemoved value: -{} - added
Output schema / properties / open_ordersAdded value: +{} - removed
Output schema / properties / paymentRailsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / payment_railsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / publicKeyRemoved value: -{ - "type": "string" -} - added
Output schema / properties / public_keyAdded value: +{ + "type": "string" +} - removed
Output schema / properties / roleDescriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / role_descriptionAdded value: +{ + "type": "string" +} - removed
Output schema / properties / totalOrdersRemoved value: -{} - added
Output schema / properties / total_ordersAdded value: +{}
- Changed
order_dispute2 fields changed- removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +}
- Changed
order_events2 fields changed- removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +}
- Changed
order_execute24 fields changed- removed
Output schema / properties / billBreakdownRemoved value: -{} - removed
Output schema / properties / billTotalRemoved value: -{} - added
Output schema / properties / bill_breakdownAdded value: +{} - added
Output schema / properties / bill_totalAdded value: +{} - removed
Output schema / properties / continueUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / continue_urlAdded value: +{ + "type": "string" +} - removed
Output schema / properties / createdAtRemoved value: -{ - "type": "string" -} - added
Output schema / properties / created_atAdded value: +{ + "type": "string" +} - removed
Output schema / properties / externalCheckoutIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / external_checkout_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / handoffEndpointRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / handoffQualityRemoved value: -{ - "type": "string" -} - added
Output schema / properties / handoff_endpointAdded value: +{ + "type": "string" +} - added
Output schema / properties / handoff_qualityAdded value: +{ + "type": "string" +} - removed
Output schema / properties / idempotentReplayRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / idempotent_replayAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / payWithRemoved value: -{ - "type": "string" -} - added
Output schema / properties / pay_withAdded value: +{ + "type": "string" +} - removed
Output schema / properties / railKeyRemoved value: -{ - "type": "string" -} - added
Output schema / properties / rail_keyAdded value: +{ + "type": "string" +} - removed
Output schema / properties / supplyIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / supply_idAdded value: +{ + "type": "string" +}
- Changed
order_feedback2 fields changed- removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +}
- Changed
order_track6 fields changed- removed
Output schema / properties / continueUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / continue_urlAdded value: +{ + "type": "string" +} - removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / trackingIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / tracking_idAdded value: +{ + "type": "string" +}
- Changed
order_update_status14 fields changed- removed
Output schema / properties / agentStatusLockedRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / agent_status_lockedAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / continueUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / continue_urlAdded value: +{ + "type": "string" +} - removed
Output schema / properties / externalCheckoutIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / external_checkout_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / handoffEndpointRemoved value: -{ - "type": "string" -} - added
Output schema / properties / handoff_endpointAdded value: +{ + "type": "string" +} - removed
Output schema / properties / merchantObservedRemoved value: -{} - added
Output schema / properties / merchant_observedAdded value: +{} - removed
Output schema / properties / orderIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / order_idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / trackingIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / tracking_idAdded value: +{ + "type": "string" +}
- Changed
payment_mandate8 fields changed- removed
Input schema / properties / scope / properties / maxPerOrderRemoved value: -{ - "description": "Max USD (or order currency) per single order, e.g. 50", - "type": "number" -} - added
Input schema / properties / scope / properties / max_per_orderAdded value: +{ + "description": "Max USD (or order currency) per single order, e.g. 50", + "type": "number" +} - removed
Input schema / properties / scope / properties / monthlyCapRemoved value: -{ - "description": "Max spend this calendar month, e.g. 500", - "type": "number" -} - added
Input schema / properties / scope / properties / monthly_capAdded value: +{ + "description": "Max spend this calendar month, e.g. 500", + "type": "number" +} - removed
Output schema / properties / approvalUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / approval_urlAdded value: +{ + "type": "string" +} - removed
Output schema / properties / mandateIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / mandate_idAdded value: +{ + "type": "string" +}
- Changed
payment_methods4 fields changed- removed
Output schema / properties / approvalUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / approval_urlAdded value: +{ + "type": "string" +} - removed
Output schema / properties / railKeyRemoved value: -{ - "type": "string" -} - added
Output schema / properties / rail_keyAdded value: +{ + "type": "string" +}
- Changed
supply_delivery11 fields changed- removed
Output schema / properties / etaTextRemoved value: -{ - "type": "string" -} - added
Output schema / properties / eta_textAdded value: +{ + "type": "string" +} - removed
Output schema / properties / needsInteractionRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / needs_interactionAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / paymentRailsRemoved value: -{} - added
Output schema / properties / payment_railsAdded value: +{} - removed
Output schema / properties / postalCodeRemoved value: -{ - "type": "string" -} - added
Output schema / properties / postal_codeAdded value: +{ + "type": "string" +} - removed
Output schema / properties / shippingCostRemoved value: -{ - "type": "number" -} - added
Output schema / properties / shipping_costAdded value: +{ + "type": "number" +} - removed
Output schema / properties / supplyIdRemoved value: -{ - "type": "string" -}
- Changed
supply_details9 fields changed- removed
Output schema / properties / deliveryOptionsRemoved value: -{} - added
Output schema / properties / delivery_optionsAdded value: +{} - removed
Output schema / properties / paymentRailsRemoved value: -{} - added
Output schema / properties / payment_railsAdded value: +{} - removed
Output schema / properties / priceTotalRemoved value: -{} - added
Output schema / properties / price_totalAdded value: +{} - removed
Output schema / properties / supplyIdRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / unitPriceRemoved value: -{} - added
Output schema / properties / unit_priceAdded value: +{}
- Changed
supply_search15 fields changed- changed
Input schema / properties / include_sandbox / descriptionPrevious value: -"Include DEMO/SANDBOX merchants (listed last, testOffer=true). Default false — live REAL merchants only. Use only when testing Conduit checkout flows."New value: +"Include DEMO/SANDBOX merchants (listed last, test_offer=true). Default false — live REAL merchants only. Use only when testing Conduit checkout flows." - removed
Output schema / properties / badgeCountsRemoved value: -{} - added
Output schema / properties / badge_countsAdded value: +{} - removed
Output schema / properties / countryDefaultRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - } - ] -} - added
Output schema / properties / country_defaultAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "boolean" + } + ] +} - removed
Output schema / properties / hasMoreRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / has_moreAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / includeSandboxRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / include_sandboxAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / nextOffsetRemoved value: -{ - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] -} - added
Output schema / properties / next_offsetAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - removed
Output schema / properties / sandboxIncludedRemoved value: -{ - "type": "number" -} - added
Output schema / properties / sandbox_includedAdded value: +{ + "type": "number" +} - removed
Output schema / properties / searchIdRemoved value: -{ - "type": "string" -} - added
Output schema / properties / search_idAdded value: +{ + "type": "string" +}
6 tool updates
- Changed
agent_authenticate3 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Agent id from ~/.conduit/credentials.json, e.g. agt_..."New value: +"Agent id from the chosen ~/.conduit credentials file, e.g. agt_..." - added
Output schema / properties / avatarAdded value: +{} - added
Output schema / properties / permissionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
- Changed
agent_create4 fields changed- added
Input schema / properties / avatarAdded value: +{ + "description": "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." +} - changed
Input schema / properties / public_key / descriptionPrevious value: -"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/credentials.json."New value: +"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." - added
Output schema / properties / avatarAdded value: +{} - added
Output schema / properties / permissionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
- Added
agent_notify - Changed
agent_organization1 field changed- added
Output schema / properties / membersAdded value: +{ + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" +}
- Added
agent_outreach - Changed
agent_update3 fields changed- added
Input schema / properties / avatarAdded value: +{ + "description": "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." +} - added
Output schema / properties / avatarAdded value: +{} - added
Output schema / properties / permissionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +}
Related MCP Connectors
Remote MCP for Living Stack offer discovery and buyer-authorized checkout preparation.
Search products, manage a customer cart, and request current checkout quotes.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables eBay-backed product search, authenticated shopping carts, checkout quotes, and order management through MCP tools and resources.1111 npmMIT

PurchasePlus MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables MCP-capable clients to sign in with OAuth and perform purchaser tasks such as browsing catalogues, checking inventory, managing stocktakes and recipes, drafting requisitions, updating buy lists, exporting reports, and processing invoices. It also supports supplier access for listing and inspecting connections, catalogues, products, purchase orders, invoices, and entitled reports.MIT- AlicenseAqualityCmaintenanceEnables AI agents to query tenants, browse catalogue items with pricing, pull recent orders, and add products through the MCP tool-calling interface.4MIT
- AlicenseAqualityBmaintenanceEnables the full Ingram Micro Reseller purchasing lifecycle through a single stateless HTTP MCP service, covering catalog and pricing, quotes, quote-to-order, order placement/modification/cancellation/lookup, invoices, renewals, special deals, returns, and freight estimates with one set of credentials.24Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.