Conduit Agentic Commerce
REMOTE · MCP.AICONDUIT.APP · SCANNED SEP 20
Search multi-merchant supply, checkout, and track orders via MCP.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (payment_mandate). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 8037 tokens (~229/item across 35 items; 25 tools + 10 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Conduit Agentic Commerce MCP server?
Conduit Agentic Commerce is a hosted endpoint at https://mcp.aiconduit.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.aiconduit.app
claude mcp add --transport http app-aiconduit-conduit 'https://mcp.aiconduit.app/mcp'
{
"mcpServers": {
"app-aiconduit-conduit": {
"url": "https://mcp.aiconduit.app/mcp"
}
}
} {
"servers": {
"app-aiconduit-conduit": {
"type": "http",
"url": "https://mcp.aiconduit.app/mcp"
}
}
} [mcp_servers.app-aiconduit-conduit] url = "https://mcp.aiconduit.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-aiconduit-conduit": {
"type": "remote",
"url": "https://mcp.aiconduit.app/mcp",
"enabled": true
}
}
} openclaw mcp add app-aiconduit-conduit --url 'https://mcp.aiconduit.app/mcp' --transport streamable-http
mcp_servers:
app-aiconduit-conduit:
url: "https://mcp.aiconduit.app/mcp" {
"McpServers": {
"app-aiconduit-conduit": {
"Transport": "http",
"Url": "https://mcp.aiconduit.app/mcp"
}
}
} assistant mcp add app-aiconduit-conduit -t streamable-http -u 'https://mcp.aiconduit.app/mcp'
{
"mcpServers": {
"app-aiconduit-conduit": {
"type": "http",
"url": "https://mcp.aiconduit.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 6552 → 8037 ▼ functional
- New prompt “find_supply_for_quantity” functional
- New prompt “record_purchase_order” functional
- New prompt “restock_from_erp” functional
- New resource “inventory-guide” functional
- New resource “stock-freshness-reference” functional
- New resource “supplier-orders-guide” functional
- Server version: 1.7.3 → 2.0.0 functional
- New tool “inventory_levels” functional
- New tool “inventory_purchase_order” functional
- New tool “inventory_replenishment” functional
- New tool “inventory_suppliers” functional
- New tool “supply_availability” functional
- 14 Sept 26 0
- Server version: 1.7.2 → 1.7.3 functional
- “order_update_status” added an optional parameter “tracking_url” cosmetic
- 11 Sept 26 0
- Server version: 1.7.0 → 1.7.2 functional
- “supply_delivery” added an optional parameter “address” cosmetic
- “supply_delivery” added an optional parameter “locality” cosmetic
- “order_execute” reworded the description of “carrier” cosmetic
- 10 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 1.6.1 → 1.7.0 functional
- New tool “supply_options” functional
- 9 Sept 26 0
- Server version: 1.6.0 → 1.6.1 functional
- 7 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 1.5.0 → 1.6.0 functional
- “agent_create” reworded the description of “default_destination” cosmetic
- “agent_update” reworded the description of “default_destination” cosmetic
- 4 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 1.4.0 → 1.5.0 functional
- “order_execute” added an optional parameter “payment_term_id” cosmetic
- 1 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “order_execute” rewrote its description, which is the text the model reads security
- Tool “payment_mandate” rewrote its description, which is the text the model reads security
- Tool “supply_delivery” rewrote its description, which is the text the model reads security
- Tool “supply_details” rewrote its description, which is the text the model reads security
- Server version: 1.3.2 → 1.4.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://mcp.aiconduit.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.aiconduit.app | CN=YE1,O=Let's Encrypt,C=US | 19 Sept 2026 | 18 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6a0c644c6dd20b9c315335e223cd33145ac |
| SANs: mcp.aiconduit.app | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.aiconduit.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| aiconduit.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.aiconduit.app/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.aiconduit.app/mcp | HTTPS enforced | 301 | https://mcp.aiconduit.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
agent_authenticate Authenticate agent ~170
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id from the chosen ~/.conduit credentials file, e.g. agt_... |
| nonce | string | – | Challenge nonce from the first agent_authenticate call (omit to request one) |
| signature | string | – | Signature of the nonce with the agent private key (omit with nonce to get challenge) |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | – |
| avatar | – | – | – |
| business_profile | – | – | – |
| challenge | string | – | – |
| created_at | string | – | – |
| default_destination | – | – | – |
| destination_source | string | – | – |
| detail | string | – | – |
| effective_destination | – | – | – |
| error | string | – | – |
| friendly_name | string | – | – |
| handle | string | – | – |
| hint | string | – | – |
| human_description | string | – | – |
| mandates | array | – | – |
| next | object | – | – |
| nonce | string | – | – |
| open_orders | – | – | – |
| organization | – | – | – |
| organization_id | string | – | – |
| payment_rails | array | – | – |
| permissions | array | – | – |
| persist | – | – | – |
| preferences | – | – | – |
| public_key | string | – | – |
| reputation | – | – | – |
| role_description | string | – | – |
| terminal | string | – | – |
| total_orders | – | – | – |
No examples provided.
agent_create Create agent profile ~465
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 | Type | Req | Description |
|---|---|---|---|
| avatar | – | – | 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 fo… |
| business_profile | – | – | Optional business profile metadata object |
| default_destination | object | – | Where orders ship. postcode + country is enough for supply_search and delivery estimates; add address, locality and region so checkout links arrive prefilled. |
| friendly_name | string | – | Human-facing label (≠ handle), e.g. EU Restock Bot |
| handle | string | – | Optional display handle (lowercase kebab); omit to auto-generate e.g. parcel-watcher-12 |
| human_description | string | – | Description shown to humans on the org dashboard |
| payment_rails | array | – | Optional rail keys to seed, e.g. ["x402"] |
| preferences | – | – | Optional agent preference bag |
| public_key | string | 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. |
| role_description | string | – | Self-instruction for this agent only, e.g. manage EU supplies |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | – |
| avatar | – | – | – |
| business_profile | – | – | – |
| challenge | string | – | – |
| created_at | string | – | – |
| default_destination | – | – | – |
| destination_source | string | – | – |
| detail | string | – | – |
| effective_destination | – | – | – |
| error | string | – | – |
| friendly_name | string | – | – |
| handle | string | – | – |
| hint | string | – | – |
| human_description | string | – | – |
| mandates | array | – | – |
| next | object | – | – |
| nonce | string | – | – |
| open_orders | – | – | – |
| organization | – | – | – |
| organization_id | string | – | – |
| payment_rails | array | – | – |
| permissions | array | – | – |
| persist | – | – | – |
| preferences | – | – | – |
| public_key | string | – | – |
| reputation | – | – | – |
| role_description | string | – | – |
| terminal | string | – | – |
| total_orders | – | – | – |
No examples provided.
agent_notify Notify org members ~304
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 | Type | Req | Description |
|---|---|---|---|
| actions | array | – | Optional buttons, max 3. Hosts outside Conduit are rejected. |
| agent_id | string | yes | Linked agent sending the message |
| body | string | yes | Plain-text body, max 4000 characters. Conduit wraps HTML; do not send markup. |
| channel | string | – | Delivery channel. Email only — omit or pass email |
| dry_run | boolean | – | If true, resolve recipients and from-address without sending or storing |
| idempotency_key | string | – | Replay key — same agent + key returns the original notify_id without sending again |
| order_id | string | – | Optional order correlation |
| search_id | string | – | Optional search correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| severity | string | – | info (default), warning, or urgent — affects subject prefix and accent |
| title | string | yes | Subject line, max 120 characters |
| to | – | yes | Who to notify: "all", { user_id }, { user_ids }, { role }, { roles }, or { email } matching an org member. Never an address outside the org. |
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| delivered | number | – | – |
| detail | string | – | – |
| dry_run | boolean | – | – |
| error | string | – | – |
| failed | number | – | – |
| from | string | – | – |
| hint | string | – | – |
| idempotent_replay | boolean | – | – |
| next | object | – | – |
| notify_id | string | – | – |
| recipients | array | – | – |
No examples provided.
agent_organization Get agent organization ~99
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id whose linked organization to read |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| connectors | array | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| members | array | – | – |
| next | object | – | – |
| organization | – | – | – |
No examples provided.
agent_outreach Email a supplier or carrier ~313
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Authenticated agent sending the note |
| body | string | yes | Plain-text body, max 4000 characters. URLs stay escaped text, not buttons. |
| channel | string | – | Delivery channel. Email only — omit or pass email |
| dry_run | boolean | – | If true, resolve recipients and from-address without sending or storing |
| idempotency_key | string | – | Replay key — same agent + key returns the original outreach_id without sending again |
| order_id | string | – | Optional order correlation |
| reply_to | – | – | 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 | – | Optional search correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| title | string | yes | Subject line, max 120 characters |
| 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| delivered | number | – | – |
| detail | string | – | – |
| dry_run | boolean | – | – |
| error | string | – | – |
| failed | number | – | – |
| from | string | – | – |
| hint | string | – | – |
| idempotent_replay | boolean | – | – |
| next | object | – | – |
| outreach_id | string | – | – |
| recipients | array | – | – |
| reply_to | string | – | – |
No examples provided.
agent_report_issue Report an issue ~339
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent id from credentials when available (omit placeholders like "agent_id") |
| context | object | – | Optional structured extras (args summary, badge, etc.). Secrets are stripped. |
| detail | string | – | Optional longer detail (response excerpt, unexpected field). Do not include private_key. |
| error | string | – | Error code from the prior tool response when present, e.g. offer_not_in_cache |
| kind | string | – | Triage kind (default confusing): bug | confusing | wrong_data | blocked |
| message | string | yes | Required: what went wrong or what confused you (expected vs actual). Keep actionable. This is agent_report_issue — not order_feedback. |
| order_id | string | – | order_id for correlation when the issue is order-related |
| search_id | string | – | search_id for correlation when the issue is search-related |
| session_id | string | – | Optional session id; Conduit also picks up x-conduit-session-id from the transport |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| tool | string | – | MCP tool that failed or confused you, e.g. supply_search or order_execute |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | – |
| already_open | boolean | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| kind | string | – | – |
| next | object | – | – |
| report_id | string | – | – |
| reported_error | string | – | – |
| session_id | string | – | – |
| status | string | – | – |
| tool | string | – | – |
No examples provided.
agent_update Update agent profile ~316
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id to patch, e.g. agt_... |
| avatar | – | – | 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 fo… |
| business_profile | – | – | Business profile patch |
| default_destination | object | – | Where orders ship. postcode + country is enough for accurate search; add address, locality and region so checkout links arrive prefilled instead of blank. |
| friendly_name | string | – | Human-facing label (≠ handle), e.g. EU Restock Bot |
| handle | string | – | New display handle (lowercase kebab) |
| human_description | string | – | Description shown to humans on the org dashboard |
| payment_rails | array | – | Replacement rail key list |
| preferences | – | – | Preferences patch |
| role_description | string | – | Self-instruction for this agent only, e.g. manage EU supplies |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | – |
| avatar | – | – | – |
| business_profile | – | – | – |
| challenge | string | – | – |
| created_at | string | – | – |
| default_destination | – | – | – |
| destination_source | string | – | – |
| detail | string | – | – |
| effective_destination | – | – | – |
| error | string | – | – |
| friendly_name | string | – | – |
| handle | string | – | – |
| hint | string | – | – |
| human_description | string | – | – |
| mandates | array | – | – |
| next | object | – | – |
| nonce | string | – | – |
| open_orders | – | – | – |
| organization | – | – | – |
| organization_id | string | – | – |
| payment_rails | array | – | – |
| permissions | array | – | – |
| persist | – | – | – |
| preferences | – | – | – |
| public_key | string | – | – |
| reputation | – | – | – |
| role_description | string | – | – |
| terminal | string | – | – |
| total_orders | – | – | – |
No examples provided.
inventory_levels Stock in your own system ~209
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id; its organization owns the connected system |
| connection_id | string | – | Which connected system, when the org has several |
| fresh | boolean | – | Ask the system now instead of reading the last value (slower, rate limited) |
| query | string | – | Free-text item search in your own system, e.g. "carton" |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| skus | array | – | Item codes in your own system, e.g. ["CART-6040"]. Pass skus or query |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | – |
| availability | array | – | – |
| basis | string | – | – |
| connection_id | string | – | – |
| connections | array | – | – |
| could_not_reach | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| freshness | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| system | string | – | – |
No examples provided.
inventory_purchase_order Record a purchase order ~168
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id; needs both inventory and checkout permission |
| connection_id | string | – | Which connected system, when the org has several |
| order_id | string | yes | Conduit order id of a supplier order already placed with order_execute |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| detail | string | – | – |
| draft | boolean | – | – |
| error | string | – | – |
| external_name | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| order_id | string | – | – |
| quantity | number | – | – |
| replayed | boolean | – | – |
| supplier_order | string | – | – |
| total | number | – | – |
| unit | – | – | – |
| unmatched_lines | number | – | – |
| vendor | string | – | – |
No examples provided.
inventory_replenishment What to reorder ~174
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id; its organization owns the connected system |
| connection_id | string | – | Which connected system, when the org has several |
| fresh | boolean | – | Ask the system now instead of reading the last value |
| location | string | – | Warehouse or store name to scope the worklist, e.g. "Jebel Ali". Omit for all |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | – |
| basis | string | – | – |
| connection_id | string | – | – |
| connections | array | – | – |
| could_not_reach | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| freshness | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| next_to_watch | – | – | – |
| provenance | – | – | – |
| rows | array | – | – |
| system | string | – | – |
| window | – | – | – |
No examples provided.
inventory_suppliers Usual vendors and last prices ~122
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent id; its organization owns the connected system |
| connection_id | string | – | Which connected system, when the org has several |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| skus | array | yes | Item codes in your own system whose usual vendors and last prices to read |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | – |
| basis | string | – | – |
| connection_id | string | – | – |
| connections | array | – | – |
| detail | string | – | – |
| error | string | – | – |
| freshness | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| suppliers | array | – | – |
| system | string | – | – |
No examples provided.
order_dispute Get dispute path ~80
Refund/chargeback/report paths for an order. Requires owning agent_id.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id (required for authorization) |
| order_id | string | yes | Order id to resolve refund/chargeback/report paths for |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| chargeback | – | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| order_id | string | – | – |
| refund | – | – | – |
| report_to_conduit | – | – | – |
No examples provided.
order_events Get order events ~76
Lifecycle timeline — transitions only. Pair with order_track. Requires owning agent_id.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id (required for authorization) |
| order_id | string | yes | Order id whose lifecycle events to list |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | – |
| error | string | – | – |
| events | array | – | – |
| hint | string | – | – |
| next | object | – | – |
| order_id | string | – | – |
No examples provided.
order_execute Execute order ~323
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id |
| carrier | string | – | 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, wh… |
| idempotency_key | string | – | Client idempotency key — reuse to safely retry the same execute |
| pay_with | string | – | Rail key to pay with when multiple are enabled |
| payment_term_id | string | – | Payment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately |
| quantity | integer | – | Units to buy (default 1) |
| search_id | string | – | search_id from supply_search for correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| supply_id | string | yes | Offer supply id to purchase |
| Name | Type | Req | Description |
|---|---|---|---|
| address_status | string | – | – |
| bill_breakdown | – | – | – |
| bill_total | – | – | – |
| continue_url | string | – | – |
| created_at | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| external_checkout_id | string | – | – |
| handoff_endpoint | string | – | – |
| handoff_quality | string | – | – |
| hint | string | – | – |
| idempotent_replay | boolean | – | – |
| next | object | – | – |
| note | string | – | – |
| order_id | string | – | – |
| pay_with | string | – | – |
| product | – | – | – |
| purchase_draft | – | – | – |
| quantity | number | – | – |
| rail_key | string | – | – |
| shipping_option | string | – | – |
| shipping_selected | boolean | – | – |
| shortfall | – | – | – |
| simulated | boolean | – | – |
| status | string | – | – |
| supplier | – | – | – |
| supplier_order | – | – | – |
| supply_id | string | – | – |
No examples provided.
order_feedback Submit feedback ~234
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id (required for authorization) |
| carrier_rating | number | – | Carrier rating 1-5 — omit if unknown; used in reputation when provided |
| notes | string | – | Free-text delivery/quality notes |
| order_id | string | yes | Order id to attest |
| outcome | string | yes | Observed fulfillment outcome. Sets status (on_time/late→DELIVERED, damaged/wrong_item→DISPUTED, never_arrived→FAILED) and reputation. |
| quality | number | – | Product quality 1-5 — omit if unknown (do not invent) |
| search_id | string | – | Optional search_id for analytics correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| already_recorded | boolean | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| ok | boolean | – | – |
| order_id | string | – | – |
| outcome | – | – | – |
| status | string | – | – |
| superseded | boolean | – | – |
| updated | – | – | – |
No examples provided.
order_list List orders ~133
List orders for an agent ({ orders }). Optional status or open_only filter.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id whose orders to list |
| open_only | boolean | – | If true, only in-flight orders (PENDING, CONFIRMED, IN_TRANSIT). Ignored when status is set. |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| status | string | – | Optional status filter: PENDING, CONFIRMED, IN_TRANSIT, DELIVERED, ABANDONED (or CANCELLED), FAILED, DISPUTED |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| orders | array | – | – |
No examples provided.
order_track Track order ~74
Honest deal-type-aware status (never fabricates carrier scans). Requires owning agent_id.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id (required for authorization) |
| order_id | string | yes | Order id to track |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| address_status | string | – | – |
| agent_status_locked | boolean | – | – |
| carrier | string | – | – |
| checkout_id | string | – | – |
| continue_url | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| handoff_expires_at | string | – | – |
| hint | string | – | – |
| merchant_observed | – | – | – |
| next | object | – | – |
| order_id | string | – | – |
| product | – | – | – |
| purchase_draft | – | – | – |
| recovery | – | – | – |
| status | string | – | – |
| status_source | string | – | – |
| supplier_order | – | – | – |
| trackable | boolean | – | – |
| tracking | string | – | – |
| tracking_id | string | – | – |
| tracking_source | string | – | – |
No examples provided.
order_update_status Update order status ~225
Agent manual correction or degraded handoff recovery. note required except cancelled. Owning agent_id required.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Owning agent id (required for authorization) |
| carrier | string | – | Carrier name when attaching tracking |
| external_checkout_id | string | – | Merchant checkout id to recover degraded handoff polling |
| handoff_endpoint | string | – | Merchant handoff/status endpoint URL for poll recovery |
| note | string | – | Required note except when status=CANCELLED |
| order_id | string | yes | Order id to update |
| search_id | string | – | Optional search_id for analytics correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| status | string | yes | New status, e.g. PENDING, CONFIRMED, SHIPPED, DELIVERED, CANCELLED |
| tracking_id | string | – | Carrier tracking id when recovering handoff |
| tracking_url | string | – | Carrier's public tracking page for tracking_id, when you have it. Never invent one. |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_status_locked | boolean | – | – |
| carrier | string | – | – |
| continue_url | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| external_checkout_id | string | – | – |
| handoff_endpoint | string | – | – |
| hint | string | – | – |
| merchant_observed | – | – | – |
| next | object | – | – |
| order_id | string | – | – |
| quantity | number | – | – |
| status | string | – | – |
| tracking_id | string | – | – |
No examples provided.
payment_mandate Payment mandate (AP2) ~257
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 | Type | Req | Description |
|---|---|---|---|
| action | string | yes | request = create mandate (needs scope); list = enumerate; update = change scope (needs mandate_id+scope); revoke = revoke (needs mandate_id) |
| agent_id | string | yes | Owning agent id |
| expires | string | – | Optional ISO-8601 expiry, e.g. 2026-12-31T00:00:00Z |
| mandate_id | string | – | Mandate id required for update/revoke |
| scope | object | – | Spend limits — required for action=request and action=update |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | string | – | – |
| approval_url | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| mandate_id | string | – | – |
| mandates | array | – | – |
| next | object | – | – |
| status | string | – | – |
No examples provided.
payment_methods Payment methods ~129
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 | Type | Req | Description |
|---|---|---|---|
| action | string | yes | list = enumerate rails; enable = turn on one rail |
| agent_id | string | yes | Agent id whose methods to list or enable |
| rail | string | – | Rail key required when action=enable, e.g. x402 (not bank_card vault) |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| approval_url | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| label | string | – | – |
| methods | array | – | – |
| next | object | – | – |
| rail_key | string | – | – |
| status | string | – | – |
No examples provided.
supply_availability Can this supplier fill it ~246
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent id. Required for fresh, and it is what reveals your negotiated prices |
| fresh | boolean | – | Ask the supplier now rather than reading the last value. Needs agent_id, and is rate limited per agent and per organization |
| quantity | integer | – | Quantity to fill (default 1) |
| quote | boolean | – | 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 |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| supply_id | string | yes | Offer supply id from supply_search / supply_details |
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | – |
| basis | string | – | – |
| could_not_reach | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| fresh_refused | boolean | – | – |
| freshness | string | – | – |
| hint | string | – | – |
| incoming | – | – | – |
| kind | string | – | – |
| link_state | string | – | – |
| locations | – | – | – |
| next | object | – | – |
| quantity | number | – | – |
| quote | – | – | – |
| quote_error | string | – | – |
| stock | – | – | – |
| supply_id | string | – | – |
| unit | – | – | – |
| verdict | – | – | – |
No examples provided.
supply_delivery Get delivery estimate ~272
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 | Type | Req | Description |
|---|---|---|---|
| address | string | – | Street override. Many merchants will not quote shipping without it. |
| agent_id | string | – | Agent id — uses agent destination else org default when country omitted |
| country | string | – | ISO country override, e.g. US (else agent/org destination) |
| locality | string | – | City override. Needed with street for a real delivery quote. |
| postal_code | string | – | Postal/ZIP override for the probe destination |
| quantity | integer | – | Units to price shipping for (default 1) |
| region | string | – | Optional region/state override |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| supply_id | string | yes | Offer supply id from supply_search / supply_details |
| Name | Type | Req | Description |
|---|---|---|---|
| address_status | string | – | – |
| available | boolean | – | – |
| country | string | – | – |
| currency | string | – | – |
| detail | string | – | – |
| error | string | – | – |
| eta_text | string | – | – |
| hint | string | – | – |
| needs_interaction | boolean | – | – |
| next | object | – | – |
| note | string | – | – |
| options | array | – | – |
| payment_rails | – | – | – |
| placeholder_street | boolean | – | – |
| postal_code | string | – | – |
| shippable | boolean | – | – |
| shipping_cost | number | – | – |
| status | string | – | – |
| supply_id | string | – | – |
No examples provided.
supply_details Get supply details ~149
Re-reads one offer from the search cache and refreshes its badge/action against current mandate state. For most catalog offers the payload equals the object supply_search already returned, so skip this if you still hold that offer and only need its fields. Carries no shipping data: use supply_delivery for ETA and cost. Re-run supply_search if offer_not_in_cache.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent id to refresh badge/action for mandate state |
| search_id | string | – | search_id from supply_search for correlation |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| supply_id | string | yes | Offer supply id from supply_search results |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| aes | – | – | – |
| badge | string | – | – |
| currency | string | – | – |
| delivery_options | – | – | – |
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| payment_rails | – | – | – |
| payment_terms | array | – | – |
| price_total | – | – | – |
| supplier | – | – | – |
| supply_id | string | – | – |
| title | string | – | – |
| unit_price | – | – | – |
No examples provided.
supply_options List product options ~175
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent id, for permission and analytics |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| supply_id | string | yes | Offer supply id whose product options to list (has_options=true on the offer) |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | – |
| error | string | – | – |
| hint | string | – | – |
| next | object | – | – |
| options | array | – | – |
| variants | array | – | – |
No examples provided.
supply_search Search supply ~448
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent id for mandate-aware badges (always pass when available) |
| budget | – | – | Max total budget — number means USD; or { amount, currency } |
| country | string | – | ISO country for ships-to, e.g. US |
| fetch_limit | integer | – | Optional override for per-merchant upstream pull (default max(20, limit*2), max 300). Ignored when paging via search_id+offset |
| include_sandbox | boolean | – | Include DEMO/SANDBOX merchants (listed last, test_offer=true). Default false — live REAL merchants only. Use only when testing Conduit checkout flows. |
| limit | integer | – | Page size of ranked offers to return (default 30, max 100) |
| offset | integer | – | 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 |
| payable_with | array | – | Filter to rails the agent can pay with, e.g. ["x402"] |
| quantity | integer | – | Desired quantity (default 1) |
| query | string | – | Product search query, e.g. USB-C charger 65W. Required for a new search; omit when paging with search_id + offset |
| search_id | string | – | Resume paging into a prior ranked set (with offset>0, or offset 0 without query). New searches with query mint a fresh search_id |
| session_token | string | – | Session token from agent_authenticate — required whenever agent_id is passed |
| Name | Type | Req | Description |
|---|---|---|---|
| badge_counts | – | – | – |
| country | string | – | – |
| country_default | – | – | – |
| degraded | boolean | – | – |
| detail | string | – | – |
| error | string | – | – |
| has_more | boolean | – | – |
| hint | string | – | – |
| include_sandbox | boolean | – | – |
| limit | number | – | – |
| next | object | – | – |
| next_offset | – | – | – |
| offers | array | – | – |
| offset | number | – | – |
| partial | – | – | – |
| recommended | – | – | – |
| sandbox_included | number | – | – |
| search_id | string | – | – |
| total | number | – | – |
| withheld | array | – | – |
No examples provided.
What is the Conduit Agentic Commerce MCP server?
Conduit Agentic Commerce is an MCP server listed in the public MCP registry as app.aiconduit/conduit. Search multi-merchant supply, checkout, and track orders via MCP. This page covers its hosted endpoint (https://mcp.aiconduit.app/mcp).
Is the Conduit Agentic Commerce MCP server safe to use?
Conduit Agentic Commerce scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Conduit Agentic Commerce MCP server expose?
Conduit Agentic Commerce exposes 25 tools: agent_create, agent_authenticate, agent_update, agent_organization, agent_notify, and 20 more. Their descriptions and schemas cost roughly 5,500 tokens of context every time the server is loaded.
Does the Conduit Agentic Commerce MCP server require authentication?
No. We connected to Conduit Agentic Commerce without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Conduit Agentic Commerce MCP server still maintained?
Conduit Agentic Commerce is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.