Conduit Agentic Commerce
Server Details
Search multi-merchant supply, checkout, and track orders via MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Most tools are clearly distinct by domain and action, and overlapping pairs like agent_notify/agent_outreach or order_track/order_events include explicit disambiguating descriptions. Some conceptual overlap remains between order_track and order_events, but the intended usage is reasonably clear.
Tool names consistently use snake_case and group prefixes such as agent_, order_, payment_, and supply_. Most follow an imperative or noun-action pattern, though a few like agent_organization and order_events are noun-only rather than verb_noun.
With 19 tools, the set is in the heavy 16-25 range, though the count is justified by the broad commerce domain spanning agents, orders, payments, and supply. It is more than a minimal toolkit but not excessive enough to be chaotic.
The surface covers core agent lifecycle, org/notification, order execution/status/dispute, payment mandates/methods, and supply search/delivery. Minor gaps exist such as a dedicated single-order detail fetch or direct refund creation, but these are largely workable through existing tools.
Available Tools
19 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses concrete behavioral traits: the two-step sequence, the side effect of merging name/role/description into the credentials file, the invariant of never overwriting private_key, and the in-memory handling of session_token. This goes well beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the two-step flow is front-loaded, then credential path, then side effects, then an exclusion rule. The description is dense but efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-step authentication flow with file-side effects, it covers the full procedure, credential discovery, post-success mutation rules, and the key alternative. An output schema exists, so return-value details are not required. Nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds procedural context (ES256-sign nonce, order of calls) but does not add much per-parameter meaning beyond what the schema already explains for nonce, signature, and agent_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it authenticates an agent via a two-step challenge-response flow. It also distinguishes itself from agent_create by explicitly warning not to create if identity files already exist, and the procedural language makes its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: call with agent_id only, sign, then call again with nonce+signature. It also names the alternative (agent_create) and states when not to use it, plus the credential path selection rule, giving an agent clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and idempotentHint=false, which the description honors by framing this as a write operation with duplicate-registration warnings. The description adds rich behavioral context beyond annotations: file writes with chmod 0600, activation via ~/.conduit/active, auto-generation of handle, and the 'never invent' rule for optional fields. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense with zero filler; the BEFORE/AFTER labels provide clear structure and the core purpose is front-loaded. The density is justified by the tool's complexity (10 params, multi-step workflow), though it could benefit from line breaks for parseability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, nested objects, output schema present, 18 sibling tools), this description is remarkably complete: it covers preconditions, post-conditions, sequencing with other tools, field omission rules, and credential file handling. The output schema covers return values, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds workflow-level semantics not in the schema: when to omit avatar (server assigns random invader+gradient), when to include optional fields ('only if the human stated them — never invent'), and handle auto-generation behavior. These complement, rather than duplicate, the schema's per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Register an agent') with precise scope (ES256 P-256 public JWK + optional payment rails + destination). The title 'Create agent profile' aligns, and the description clearly positions this as the registration step in a multi-step agent workflow, distinguishing it from sibling tools like agent_update and agent_authenticate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit BEFORE/AFTER workflow sequencing: check ~/.conduit identity files and reuse agent_id if present ('do NOT register again unless the human asked for a new agent'), then write persist.path and call agent_update with default_destination+postcode before supply_search. This is exceptional when/when-not guidance that names the exact conditions and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly=false, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral guardrails beyond those flags: recipients must be org members, action URLs must be Conduit hosts, and delivery is email-only. This helps an agent avoid dangerous or unauthorized sends.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with no filler. The primary purpose and org-only restriction are front-loaded, followed by recipient forms and constraints. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete at a glance for tool selection and basic invocation, and the input schema covers all field-level details including auth requirements, length limits, enums, and host restrictions. Since an output schema exists, return-value explanation is unnecessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes recipient forms and lists optional capabilities like actions, severity, and idempotency_key, but these mostly restate what the input schema already documents rather than adding deeper parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Email Hub users in this agent’s linked organization.' It clearly scopes the tool to notifying org members and immediately adds the hard restriction 'never addresses outside the org,' which distinguishes it from broader outreach tools like agent_outreach even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear selection context: use this tool to email members of the linked org, with explicit recipient shapes and constraints like 'Hub URLs only' and 'Channel is email.' It does not name alternative sibling tools or explicitly state when not to use it, so it stops just short of full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 | |
| organization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds value beyond that by describing the org_not_linked edge case and explicitly prohibiting the write-like action of inventing join_org. This is useful behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action and resources, then gives the key edge case and usage guidance. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with a complete output schema and annotations, the description covers what is returned, the no-link error behavior, and how the result should be used downstream. An agent has enough information to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents agent_id and session_token. The description adds no additional parameter syntax, formatting, or constraints, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Read') and names both resources: the linked organization and its members. It also enumerates the fields returned, leaving no doubt about the tool's scope. It is clearly distinguishable from sibling agent tools like agent_update or agent_notify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives practical guidance: members are meant for targeting agent_notify, and on org_not_linked the agent should not invent join_org. It does not explicitly contrast this tool with sibling alternatives, but it provides clear context and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover non-read-only, non-destructive, and idempotent behavior. The description adds useful behavioral specifics: Reply-To defaults to OWNER for linked agents, no action buttons are sent, and delivery is email-only. These go beyond the annotation hints and clarify side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but short: purpose first, then recipient constraints, then routing rule, then Reply-To behavior, then channel/action-button clarification. Every sentence adds decision-relevant information and no content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, full parameter documentation in the schema, and annotations covering mutation/idempotency, the description supplies the remaining contextual essentials: recipient types, sibling-tool routing, Reply-To behavior, and channel constraints. Nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds cross-parameter meaning by clarifying the to variants, the max-5 limit, the exclusion of internal recipients, and the Reply-To default. This helps an agent construct valid calls without inspecting every schema branch.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and target: 'Email outside addresses (suppliers, carriers).' It immediately distinguishes itself from agent_notify by excluding Hub user_id/role and to=all recipients, leaving no ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool versus agent_notify: outside email addresses go here; Hub users, roles, and broadcast 'all' go to agent_notify. This direct sibling differentiation gives an agent a clear routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (which only mark non-read-only and non-destructive), the description discloses important behavioral details: reports are deduped based on tool+error+correlation and reporting does not change reputation. This adds meaningful context, though it does not cover every possible side effect or auth-related behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, parameter summary, and behavioral notes. It is front-loaded with the primary purpose, avoids redundancy with the schema, and every sentence carries useful information without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 params, nested objects, output schema), the description is complete enough: it covers purpose, usage conditions, key parameters, sibling distinction, dedupe behavior, and non-reputation impact. The output schema covers return values, and auth-related notes are in the schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all 11 parameters with 100% descriptions, so the baseline is 3. The description adds value by explaining the dedupe correlation semantics (tool+error+correlation) and grouping the optional correlation fields, which helps the agent understand how parameters relate to each other.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') with a clear resource ('unexpected tool errors or confusing Conduit outcomes') and explicitly distinguishes from the sibling tool order_feedback. This makes the tool's purpose immediately unambiguous and differentiates it from similar-looking tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use the tool ('unexpected tool errors or confusing Conduit outcomes'), names the alternative (order_feedback) in an explicit 'not ...' construction, and gives required/optional parameter guidance. This satisfies the when/when-not/alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, non-idempotent, and non-destructive behavior. The description adds a behavioral constraint ('Set avatar only if the human chose it') and a restriction (no permissions), which is useful. However, it does not disclose side effects, authentication requirements (session_token is only in schema), or return behavior. Given the annotations cover the safety profile, the description adds moderate value but not extensive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the list of patchable fields and then providing key constraints. Every sentence earns its place with no redundancy. It is exceptionally efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters and nested objects, the description covers the main constraints (postcode, avatar condition, no permissions) and the overall scope. It does not mention the session_token requirement, but that is documented in the schema. Since an output schema exists (per context signals), return values are presumably covered elsewhere. Overall, the description is sufficiently complete for an agent to invoke it correctly, though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage, so the baseline is 3. The description adds meaningful semantics by noting that 'postcode required for ships-to' for default_destination and clarifying the avatar condition ('Set avatar only if the human chose it'). This goes slightly beyond the schema's explanations, warranting a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: patching an agent profile with specific fields (handle, rails, default_destination, etc.). It distinguishes itself from permissions-related tasks by explicitly stating it does not accept permissions. This is a specific verb and resource with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (updating an existing agent profile) and explicitly excludes permission changes, directing that to Hub Agent settings. However, it does not contrast with sibling tools like agent_create or agent_authenticate, leaving some ambiguity for an agent deciding between creation and update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is carried by structured data. The description adds the requirement that the caller must own the agent_id, which is useful authorization context, but it does not go further into behavior such as error conditions or ownership verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences carry the core purpose and the one requirement that matters for invocation. Every word earns its place, with the main action front-loaded before the authorization note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with fully described parameters and an output schema, the description is nearly complete: it states the resource and the key authorization requirement. The only notable omission is guidance about when to choose it over sibling order tools, but schema and annotations carry the remaining load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents order_id, agent_id, and session_token. The description reinforces the agent_id ownership requirement but adds no meaning beyond the parameter descriptions, matching the baseline 3 for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — refund/chargeback/report paths — and pairs it with an order, so an agent can tell it is about retrieving dispute-related information. It lacks an explicit verb ('get' appears only in the title), and it doesn't name a sibling it is not, but the scope is unambiguous enough for the tool's simple purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the authorization prerequisite 'Requires owning agent_id,' which is a precondition rather than a selection rule. There is no statement of when to prefer this tool over order_events, order_track, or order_list, and no when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate safety. It adds useful behavioral context by specifying that only transitions are returned and that authorization requires the owning agent_id. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short fragments, each carrying distinct information: scope, related tool, and authorization requirement. There is no filler and no redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, read-only, has full schema coverage, and an output schema, so the description need not document return values. It covers purpose, scope, and auth adequately; the main remaining gap is that the complementary relationship with order_track is not expanded into an explicit when-to-use rule.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so order_id, agent_id, and session_token are already well documented. The description only reinforces that the owning agent_id is required, which largely duplicates the schema's own authorization note and adds no new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Get order events' names the resource, and the description narrows it to a 'lifecycle timeline' of 'transitions only', which clearly distinguishes it from a generic event list or tracking tool. The reference to order_track further situates its scope as complementary rather than overlapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for lifecycle transitions and says to 'pair with order_track', but it never explicitly states when to prefer this tool over order_track or when not to use it. The pairing hint is useful context, but there is no explicit routing rule or exclusion condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_executeExecute orderCIdempotentInspect
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 | Preferred carrier when delivery options allow | |
| 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 | |
| handoff_quality | No | |
| handoff_endpoint | No | |
| idempotent_replay | No | |
| external_checkout_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the annotations (readOnlyHint false, idempotentHint true, etc.) and mentions idempotency, aligning with the hint. It describes some conditional behavior (handoff vs. autonomous), but does so in an unclear manner, missing plain-language explanations of side effects or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with multiple clauses and jargon, making it hard to parse quickly. It could be structured into clearer sections (e.g., modes, response handling, fallback) and written more plainly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It fails to give a complete picture: it does not clearly define the two modes (handoff vs. autonomous), explain terms like 'badge payable_now' or 'covering mandate', or describe expected outputs beyond the handoff link. Given the output schema exists, the description should still outline the tool's overall behavior and when each branch occurs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The tool description adds no extra meaning to individual parameters; it only repeats 'idempotency_key' in a usage hint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description does not clearly state what the tool does; it labels the action as 'checkout' but uses cryptic terms like 'Conduit' and 'badge payable_now' without explaining the core purpose. The tool name 'order_execute' is informative, but the description itself is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides some direct usage advice (e.g., 'Use idempotency_key', 'Prefer supply_delivery when only comparing delivery') and explains how to handle a handoff response. However, it does not comprehensively indicate when to use this tool versus sibling tools like order_update_status or supply_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already indicate mutation and non-idempotence, the description adds meaningful context: the one-time supersede limit, the already_recorded error on a second attestation, authorization requirement, and conditional routing to order_dispute. This goes well beyond the structured annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three efficient sentences with no filler. The core action and enum are front-loaded, and every sentence adds operational value, including the routing and omission rules.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema and annotations cover authorization, idempotency limits, outcome routing, and parameter omission rules. With an output schema present and full parameter documentation, nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds useful guidance about omitting quality/carrier_rating when unknown, but much of that is also present in the parameter descriptions. It does not substantially expand on the schema's parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and resource: 'Attest delivery outcome,' and enumerates exact outcome values, making the tool's function unmistakable. It also distinguishes itself from siblings by noting poor outcomes lead to order_dispute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage conditions: requires owning agent_id, can supersede a system-derived score only once, and a second attestation returns already_recorded. It does not explicitly name alternative tools for changing statuses, but the order_dispute routing and once-only rule provide strong practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds only the optional filtering behavior, which is also captured in the schema. It does not add new behavioral context like pagination or auth requirements, but the output schema covers return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary action. The '{ orders }' placeholder is slight noise, but the description is appropriately concise and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full parameter descriptions, an output schema, and safety annotations, the description is sufficient for a simple listing tool. It states the core purpose and available filters without needing extra detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description repeats 'status or open_only filter' but does not add meaning beyond what each property description already provides, such as the interaction between status and open_only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (orders) with a scope ('for an agent'), and the optional filters distinguish it from sibling tools like order_track or order_events. The placeholder '{ orders }' is odd but does not obscure the meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you need to list orders for an agent) but does not mention any alternative tools or exclusion criteria, such as using order_track for a single order or order_events for event history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 | |
| tracking_source | No | |
| merchant_observed | No | |
| handoff_expires_at | No | |
| agent_status_locked | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral guarantees beyond the annotations: 'never fabricates carrier scans' discloses that the tool returns real tracking data and does not generate placeholder information. It also highlights the authorization requirement ('Requires owning agent_id'), which is not fully covered by the readOnlyHint annotation. This provides useful transparency about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that avoids unnecessary verbosity. However, phrases like 'deal-type-aware' are somewhat cryptic and could be more explicit without adding length. Overall, it is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to explain return values. However, it lacks clarity on what 'deal-type-aware status' means and what specific tracking information is provided. The mention of 'never fabricates carrier scans' gives some context, but the overall domain context is thin, making it less complete for an agent deciding to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all parameters (agent_id, order_id, session_token) with 100% coverage, so the baseline is 3. The description adds a slight semantic enhancement by emphasizing that agent_id must be the owning agent, but it does not clarify the purpose or format of order_id or session_token beyond the schema's existing descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Honest deal-type-aware status' which suggests retrieving tracking status but is vague and does not explicitly state the action (e.g., 'retrieve tracking information for an order'). It does not clearly distinguish from sibling tools like order_events or order_list, which could also provide status-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The only instruction is 'Requires owning agent_id,' which is a prerequisite, not a usage comparison. There is no mention of scenarios where order_track should be preferred over order_events or other order-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_update_statusUpdate order statusAInspect
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 | |
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-read-only and non-idempotent, so the description only needs to add context. It adds the ownership/authorization requirement and the cancellation note exception, but does not describe side effects, status transition constraints, or recovery behavior beyond the label.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Brief, front-loaded purpose, and no filler. The constraint fragments are redundant with the schema but are short and emphasize key requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Rich schema and output schema compensate for the terse description. However, with 10 parameters and multiple handoff-recovery fields, the description does not explain how the recovery scenario maps to carrier, tracking_id, handoff_endpoint, or external_checkout_id, leaving a moderate selection gap for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The description's note and agent_id statements are redundant with schema descriptions and add no new meaning beyond emphasizing those constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and description establish a status-mutation tool for order management. 'Agent manual correction or degraded handoff recovery' adds two concrete contexts and, alongside sibling names like order_track and order_list, implies a write operation, though it never explicitly names the resource or distinguishes from order_execute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use it: for manual correction and degraded handoff recovery. It does not explicitly state exclusions or alternatives, but the context is enough to route an agent away from read-only siblings and order_execute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the annotations: status changes on widening vs narrowing, the rolling 30-day meaning of monthly_cap, replacement semantics for identical category sets, and the handoff-not-error behavior for missing coverage. These are exactly the non-obvious behaviors an agent needs to predict consequences correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: action menu first, then critical behavioral caveats, then the rolling-window definition, then replacement semantics, then the handoff clarification. Every sentence earns its place and the material is front-loaded for quick action selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested scope object, enum actions, output schema present), the description covers the essential semantics: action requirements, approval behavior, window semantics, and edge-case handling. The output schema handles return values, so nothing necessary for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all parameters (100% coverage), the description enriches their meaning: monthly_cap is tied to a rolling 30-day window from creation, scope carries status-transition implications, and update's effect on approval state is explicitly called out. This goes well beyond the baseline expected for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'AP2 spend mandates' and immediately enumerates four specific actions (request, list, update, revoke), each with its required inputs and expected result. This clearly identifies the resource and the operations, and the action-specific details prevent confusion with other payment-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit action routing: request needs scope, update needs mandate_id+scope, revoke needs mandate_id. It also warns that update NEVER approves, giving clear selection guidance within the tool. It does not explicitly contrast with alternative sibling tools, but no sibling appears to overlap with spend mandates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, and the description adds useful rail-specific behavior beyond annotations: defaults, invoice being 'coming_soon', and bank_card being 'handoff-only'. It stops short of detailing side effects of the enable action, but the bar is appropriately lowered by the presence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the action, and packs the important rail caveats into a few short clauses. There is no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations are present, the description covers the critical domain context around rail availability and handoff behavior. A small gap is the lack of explicit guidance about when to prefer sibling tools, but the description plus schema is sufficient for correct invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and parameter descriptions are already solid. The description adds meaningful value for the `rail` parameter by explaining default rails, statuses, and special handling, which helps an agent know which values are actually usable beyond raw enum constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs ('List or enable') and a specific resource ('agent payment methods'), clearly differentiating this from siblings like payment_mandate. The parenthetical '(action=list|enable)' reinforces the exact operations without restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for managing agent payment methods and clarifies the two actions, but it does not explicitly contrast with sibling tools such as payment_mandate or say when not to use this tool. Schema-level descriptions help, but the tool description itself offers no direct routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 | |
| 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 | |
| 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 | |
| needs_interaction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds substantial context on top: the destination fallback chain, the meaning of all three status values, the needs_interaction flag, and the critical distinction that no status blocks a handoff but merely predicts whether autonomous completion can work. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the three sentences are dense, each covering a distinct concern: purpose, address resolution, then status/needs_interaction semantics. Minor verbosity in the status explanation ('however its badge reads') and slight redundancy between requires_escalation and the needs_interaction sentence keep it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity — 7 parameters, an address-resolution chain, a three-valued status enum with subtle operational implications — the description covers all non-obvious semantics an agent needs to invoke it correctly. An output schema exists, so return-value details need not be spelled out in prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the per-parameter descriptions by specifying the full destination precedence chain (agent default → linked org default → country override), which ties agent_id, country, region, and postal_code together in a way no individual schema description does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause states a specific verb and resource: 'Non-committing checkout probe for shipping ETA/cost.' It clearly differentiates from siblings like supply_search/supply_details (find and detail offers) and order_execute (commits) by framing this as a probe that does not commit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context: this is the pre-commit estimate probe, and it explains the destination resolution order (agent default, then org default, then country override). However, it never names alternatives or states explicit when-not-to-use conditions, so the agent must infer the contrast with order_execute and supply_details on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
supply_detailsGet supply detailsARead-onlyIdempotentInspect
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 | 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 |
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 | |
| price_total | No | |
| payment_rails | No | |
| payment_terms | No | |
| delivery_options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral context beyond that: it re-reads from cache, refreshes against mandate state, and explicitly states it carries no shipping data. It also discloses the failure mode when the offer is not in cache. This exceeds the annotation coverage without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff. The first sentence states the core purpose, the second gives an optimization hint, and the third covers exclusions and failure handling. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema presumably defines return values, the description covers all necessary operational aspects: purpose, alternatives, lack of shipping data, and cache-miss recovery. Authentication requirements are already in the parameter schema. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear, self-contained description (e.g., 'Offer supply id from supply_search results' and 'Session token from agent_authenticate — required whenever agent_id is passed'). The description doesn't add extra parameter-level detail beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Re-reads') and a clear resource ('one offer from the search cache'), and explicitly differentiates itself from siblings by stating it refreshes badge/action against mandate state and carries no shipping data. This makes it unmistakably distinct from supply_search and supply_delivery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use ('skip this if you still hold that offer'), when-not-to-use ('use supply_delivery for ETA and cost'), and a failure remediation ('Re-run supply_search if offer_not_in_cache'). The alternatives are named, and conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| 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 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: live-real-merchants default, ranked response with total/has_more/next_offset, no re-fanout paging, fetch_limit upstream pull, sandbox merchants appended at the bottom with test_offer=true, and mandate-aware badges. This is highly transparent for a read-only search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five dense sentences, purpose first, then response shape, paging, optional fetch_limit, sandbox behavior, agent_id, and downstream handoff. Every sentence carries unique operational information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, 0-required tool with an output schema, the description covers the non-obvious control flow: new search vs paging, sandbox mode, fetch_limit, agent_id mandate context, and cross-tool search_id usage. Remaining parameter details are fully captured by the schema, so nothing needed for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds workflow-level meaning: next.args paging semantics, fetch_limit's effect on upstream pull, search_id reuse, include_sandbox default and placement, and agent_id purpose. It does not merely repeat schema text; it explains why and how parameters matter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it is a multi-provider discovery tool returning a ranked page of live REAL merchants, with explicit paging and sandbox behavior. The search_id carry-through sentence positions it against supply_details / order_execute / order_feedback, so an agent can distinguish it from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage conditions: include_sandbox=true only for DEMO/SANDBOX merchants, fetch_limit only on new searches, always pass agent_id, and page via next.args without re-fanout. It does not explicitly state a 'use supply_details instead when...' alternative, but the workflow sentence strongly implies search precedes those downstream tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
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" +}
15 tool updates
- Changed
agent_organization1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
agent_report_issue1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
agent_update1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_dispute1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_events1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_execute1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_feedback1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_list1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_track1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
order_update_status1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
payment_mandate1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
payment_methods1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
supply_delivery1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
supply_details1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
- Changed
supply_search1 field changed- added
Input schema / properties / session_tokenAdded value: +{ + "description": "Session token from agent_authenticate — required whenever agent_id is passed", + "type": "string" +}
1 tool update
- Changed
agent_create1 field changed- changed
Input schema / properties / public_key / descriptionPrevious value: -"Agent public key (hex or base64) for challenge-response auth"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/credentials.json."
31 tool updates
- Added
agent_authenticate - Added
agent_create - Added
agent_organization - Added
agent_report_issue - Added
agent_update - Removed
authenticate_agent - Removed
create_agent_profile - Removed
execute_order - Removed
get_delivery_estimate - Removed
get_dispute_path - Removed
get_order_events - Removed
get_supply_details - Removed
list_orders - Removed
manage_mandate - Added
order_dispute - Added
order_events - Added
order_execute - Added
order_feedback - Added
order_list - Added
order_track - Added
order_update_status - Added
payment_mandate - Removed
request_payment_mandate - Removed
search_supply - Removed
submit_feedback - Added
supply_delivery - Added
supply_details - Added
supply_search - Removed
track_order - Removed
update_agent_profile - Removed
update_order_status
16 tool updates
- First observed
authenticate_agent - First observed
create_agent_profile - First observed
execute_order - First observed
get_delivery_estimate - First observed
get_dispute_path - First observed
get_order_events - First observed
get_supply_details - First observed
list_orders - First observed
manage_mandate - First observed
payment_methods - First observed
request_payment_mandate - First observed
search_supply - First observed
submit_feedback - First observed
track_order - First observed
update_agent_profile - First observed
update_order_status
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity – fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge – works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge – works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Hosted no-auth MCP for exact-spec packaging search, live price, stock, cart handoff, and no-match.
Remote MCP for Living Stack offer discovery and buyer-authorized checkout preparation.
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.1119MIT
- FlicenseAqualityCmaintenanceEnables AI agents to query tenants, browse catalogue items with pricing, pull recent orders, and add products through the MCP tool-calling interface.4-
- AlicenseAqualityCmaintenanceEnables 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
- AlicenseAqualityCmaintenanceAn MCP server that exposes SF Supplies product search API to LLM tools. Supports free-text search, autocomplete suggestions, and retrieving filterable attributes.3MIT