Facet UCP Shopping
Server Details
The independent agent-commerce protocol for AI-agent checkout on any online store.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
23 toolscancel_cartAInspect
Cancel a cart. Idempotent, owner-scoped, and moves no money. REQUIRES IDENTITY plus an Idempotency-Key on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The cart id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses important behavioral traits: idempotency, owner-scoping, no money movement, and strict requirements for identity and terminal. This goes beyond the basic action and provides meaningful context for an AI agent.
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 concise sentences, front-loaded with the primary action. It packs significant behavioral information without redundancy, wasting no 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?
For a simple single-parameter cancel operation, the description covers the action, key consequences (idempotent, no money), and prerequisites. It lacks details on return values or error handling, but given the simplicity and no output schema, it is reasonably complete.
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 provides full coverage of the single 'id' parameter with 'The cart id.' The description adds no additional detail about the parameter itself, so it neither enhances nor conflicts with the schema. Baseline 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 clearly states the action 'Cancel a cart' with a specific resource, distinguishing it from sibling tools like cancel_checkout. It also adds scope qualifiers (owner-scoped, no money moved) that clarify its 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 description implies usage for cart cancellation but does not explicitly differentiate from alternatives like cancel_checkout or state when not to use it. It provides context about requirements (identity, Idempotency-Key, signature-required Terminal) which helps an agent determine feasibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_checkoutAInspect
Cancel a checkout session before completion, releasing its inventory hold. Idempotent, owner-scoped, and moves no money (distinct from an escrow refund). REQUIRES IDENTITY plus an Idempotency-Key on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The checkout session id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the transparency burden. It discloses idempotency, owner scoping, that no money moves, and the requirement for identity, Idempotency-Key, and a signature-required terminal. It also explains the inventory release effect.
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 exceptionally concise, with three sentences each serving a distinct purpose: action/effect, behavioral traits, and prerequisites. There is no redundancy or filler, and the most important information is front-loaded.
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 only one parameter and no output schema, the description is remarkably complete. It covers the purpose, effects, constraints, and prerequisites, enabling an agent to invoke it correctly without ambiguity.
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 single parameter 'id' is fully described in the schema as 'The checkout session id.' The description does not add any parameter-specific semantics, so it meets the baseline for high schema coverage without needing further elaboration.
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 action ('Cancel a checkout session'), its temporal scope ('before completion'), and the specific effect ('releasing its inventory hold'). This distinguishes it from sibling tools like cancel_cart and complete_checkout.
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 specifies when to use the tool ('before completion'), scopes it to the owner, and explicitly distinguishes it from an escrow refund. However, it does not name alternative tools for related actions (e.g., cancel_cart), so it stops short of fully explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_checkoutAInspect
Complete a checkout you created and place the order by submitting the buyer-signed payment credential. This is the MONEY-MOVING leg: funds capture on-chain to the merchant's pay_to (x402) or into escrow (Boson). The amount is re-derived server-side from the reservation, never your request, and the buyer's signature is verified before any capture. A per-buyer refusal (FORBIDDEN, cap-exceeded, FULFILLMENT_REQUIRED) returns as an error result; a missing or invalid identity is a real 401. REQUIRES IDENTITY plus a signed Idempotency-Key on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| payment | Yes | The payment container `{ instruments: [{ credential: { type, ... } }] }`, where credential.type is `x402_authorization` or `boson_commit_authorization`. Sign the seller-signed offer LOCALLY with your own wallet; Facet never holds your key. | |
| checkout_id | Yes | The checkout id from create_checkout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the high-stakes behaviors: funds capture on-chain or into escrow, server-side amount re-derivation, signature verification, specific error mappings (per-buyer refusal vs. real 401), and required identity/signature conditions. This is exemplary transparency for a money-moving operation.
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 every sentence delivers critical information: purpose, money-moving nature, verification, error semantics, and prerequisites. It is front-loaded with the core action. Slightly long, but for a high-risk irreversible operation, the length is justified.
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?
This tool is complex (money movement, identity, signatures, two payment paths) with no output schema and no annotations. The description covers behavioral outcomes, error cases, and prerequisites thoroughly. It provides enough context for an agent to invoke it correctly and anticipate failure modes.
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% for both parameters, so the baseline is 3. The description adds meaningful nuance, especially for the payment parameter: it explains that the credential must be signed locally and that Facet never holds the key, which is critical security context beyond the schema's type definition.
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 function: completing a checkout and placing an order. It explicitly identifies this as the 'MONEY-MOVING leg' and contrasts with sibling tools like cancel_checkout and update_checkout, making its unique role unambiguous.
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 strong contextual cues: it is used on a checkout you created, after obtaining a buyer-signed payment credential, and requires identity and a signed Idempotency-Key. It does not explicitly name alternative tools or say 'use this instead of X', but the prerequisites and the money-moving emphasis implicitly distinguish it from related checkout operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cartAInspect
Create a pre-checkout cart from catalog line items. A cart is a mutable scratchpad: it moves no money and holds no inventory, so it carries estimated (server-derived) totals and NO payment_handlers. Assemble it, then create_checkout(cart_id) to convert. REQUIRES IDENTITY on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| line_items | No | Items, each `{ item: { id }, quantity }`. Prices are catalog-derived, never yours. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It discloses key behavioral details: the cart 'moves no money', 'holds no inventory', has 'estimated (server-derived) totals', and 'NO payment_handlers'. It also states the authentication requirement: 'REQUIRES IDENTITY on a signature-required Terminal.' This is comprehensive.
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 concise and well-structured. It leads with the main action, then adds necessary behavioral and workflow context in a few sentences without redundancy or unnecessary detail.
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 covers purpose, workflow, behavioral traits, and prerequisites. The only minor gap is that it does not explicitly state the return value (e.g., a cart object with an ID), though it implies via 'create_checkout(cart_id)' that a cart_id is returned.
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 has 100% coverage with descriptions for line_items, including the format and the note that prices are catalog-derived. The tool description does not add extra parameter-level semantics beyond what the schema already provides, so the baseline 3 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 clearly states the tool's purpose with a specific verb and resource: 'Create a pre-checkout cart from catalog line items.' It also distinguishes itself from siblings like create_checkout by emphasizing the cart is a temporary scratchpad, not a final checkout.
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 provides explicit workflow guidance: 'Assemble it, then create_checkout(cart_id) to convert.' This tells the agent when to use this tool and how it fits with the checkout flow. It does not explicitly describe when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutAInspect
Open a checkout session for one or more catalog line items (or promote a cart with cart_id). Returns the session plus server-resolved payment_handlers (rail, pay_to, exact amount) to satisfy: the price and pay_to are the MERCHANT's, sealed here, never read from your request. Physical goods REQUIRE a fulfillment ship-to (else FULFILLMENT_REQUIRED), sealed at create. REQUIRES IDENTITY on a signature-required Terminal: a Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | No | Promote an existing cart: its stored lines drive the checkout and any line_items are ignored (the business must use the cart contents). | |
| line_items | No | Items to buy, each `{ item: { id }, quantity }`. Omit when using cart_id. | |
| fulfillment | No | Ship-to destination. REQUIRED for physical products; sealed at create. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses critical behaviors: server-resolved payment_handlers, merchant-sealed price/pay_to, FULFILLMENT_REQUIRED for physical goods, and identity/auth requirements. This goes far beyond basic 'create' wording.
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 dense sentences, each delivering unique information. Front-loaded with the core action, followed by high-value behavioral details. No 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 no annotations and no output schema, the description covers the essential selection and invocation context: what it creates, key return value (payment_handlers), constraints, and auth. Complexity is moderate, and the description addresses it well.
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 baseline is 3. The description adds meaning by explaining cart_id promotion semantics, line_items structure, and the requirement for fulfillment on physical goods, enhancing what the schema already provides.
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 action ('Open a checkout session') on a specific resource, and distinguishes it from related tools like create_cart ('or promote a cart with cart_id') and get_checkout. The verb+resource combination is clear and unambiguous.
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 explains when to use this tool versus alternatives (line items vs cart promotion) and provides context for physical goods requiring fulfillment. It doesn't explicitly name sibling tools or exclude scenarios, but the usage context is clearly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_businessesAInspect
Find businesses in the Facet Universal Business Index that an agent can transact with. Returns featured (claimed merchants with a live terminal_url — point your catalog and checkout calls there) and results (the wider directory). Use this first when you do not already know which merchant to talk to. REQUIRES IDENTITY: send a Facet KYA as Authorization: Bearer <kya> on the MCP request. A KYA is an ES256 JWT from Facet's default issuer https://issuer.facet.llc (or another issuer this Terminal trusts — see KYA-Issuers in its /.well-known/agents.txt). Calling without one returns 401 with a signup link.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | Optional geographic center to rank by proximity. | |
| limit | No | Max matches to return. Default 10, cap 50. | |
| query | No | Free-text query, e.g. "flowers" or "makeup brushes". | |
| radius_km | No | Search radius around `near`, km. Default 25. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly discloses authentication requirement (KYA token) and return structure (featured and results). Does not mention rate limits or pagination, but is transparent about critical behavioral trait (auth).
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?
Description is three sentences plus a detailed auth paragraph. Front-loaded with main purpose. Some minor verbosity in auth section but overall concise 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?
Given no output schema and 4 parameters, the description explains return values and auth. However, lacks guidance on using 'featured' field in subsequent calls. Mostly complete but could be slightly more actionable.
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 each parameter. The description does not add significant new meaning beyond what is in the schema. Baseline 3 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?
Clear verb 'Find businesses' and specific resource 'in the Facet Universal Business Index that an agent can transact with'. Distinguishes between 'featured' and 'results', giving precise scope. Differentiates from sibling tools like get_order or search_catalog.
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 tells when to use ('Use this first when you do not already know which merchant to talk to'). Provides pre-requisite: requires a Facet KYA token. Does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_productsAInspect
Search products ACROSS every merchant in the Facet network that has opted into cross-merchant discovery. Returns matches each carrying the selling merchant's terminal_url (point your catalog and checkout calls there). Filter by free-text query (product name + description), exact category, and/or tags (all must be present); at least one filter is required. Use this when you know WHAT you want but not WHICH merchant sells it. REQUIRES IDENTITY: send a Facet KYA as Authorization: Bearer <kya> on the MCP request. A KYA is an ES256 JWT from Facet's default issuer https://issuer.facet.llc (or another issuer this Terminal trusts; see KYA-Issuers in its /.well-known/agents.txt). Calling without one returns 401 with a signup link.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags that must ALL be present on a matching product. | |
| limit | No | Max matches to return. Default 10, cap 50. | |
| query | No | Free-text over product name + description, e.g. "lavender soap". | |
| category | No | Exact product category to match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the identity requirement (KYA token), the 401 failure mode, the cross-merchant opt-in scope, and the terminal_url return behavior. This is substantial, though it does not mention pagination, sorting, or empty-result 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 front-loaded with the core purpose, then parameter semantics, then usage context, then auth details. Every sentence earns its place, and the structure uses clear signposting (e.g., 'REQUIRES IDENTITY:') without fluff.
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 moderately complex search tool with no output schema and no annotations, the description covers what it returns (matches with terminal_url), how to filter properly, when to use it, and the authentication prerequisite. It even advises on next steps (point catalog/checkout calls at terminal_url). This is sufficient for an agent to use the 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?
The schema already covers all parameters at 100% coverage, so the baseline is 3. The description adds meaningful constraint information: 'at least one filter is required' and clarifies the relationship between filters ('and/or', 'all must be present'). This goes beyond the schema without fully duplicating it.
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+resource+scope: 'Search products ACROSS every merchant in the Facet network that has opted into cross-merchant discovery.' This clearly distinguishes it from sibling tools like discover_businesses (businesses vs products) and search_catalog/lookup_catalog (likely merchant-scoped).
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 an explicit usage condition: 'Use this when you know WHAT you want but not WHICH merchant sells it.' This gives clear context. However, it does not name specific alternatives or explicitly state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cartAInspect
Read back one of YOUR carts by id: line items and estimated totals. Owner-scoped, so another agent's id returns not_found. REQUIRES IDENTITY on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The cart id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses owner-scoping, not_found behavior for foreign ids, and the identity requirement, which are key behavioral traits. It does not cover all edge cases (e.g., missing identity) but is transparent for a simple read operation.
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, with the core purpose front-loaded. No redundant phrasing; every clause adds value (scope, return contents, error behavior, prerequisite).
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 one parameter and no output schema, the description covers the input semantics, output contents (line items and estimated totals), error case (not_found), and required identity context. This is sufficient for an agent to correctly invoke the 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 only says 'The cart id', but the description adds that it must be YOUR cart id and that using another agent's id yields not_found. This significantly enriches the parameter's meaning, so it goes beyond the schema baseline.
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 explicitly states 'Read back one of YOUR carts by id' with a specific verb and resource, and mentions the return content (line items and estimated totals). It distinguishes from siblings by noting owner-scoping and not_found behavior.
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 provides clear context: it's for reading your own cart, and explicitly warns that another agent's id returns not_found, which effectively excludes that use case. It also states the identity requirement on a signature-required Terminal, giving a prerequisite. No explicit alternative tool is named, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkoutAInspect
Read back one of YOUR checkout sessions by id: status, totals, line items, payment_handlers. Owner-scoped, so another agent's id returns not_found. REQUIRES IDENTITY on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The checkout session id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It thoroughly discloses the return fields, owner-scoping with not_found behavior for foreign IDs, and the identity prerequisite. This is substantial transparency beyond basic read semantics.
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 dense sentences with no redundancy. Each sentence contributes critical information (function, return fields, scope, auth requirement), making it highly 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 single-parameter read tool with no output schema, the description covers the return content, error behavior, and a prerequisite (identity). This gives an agent everything needed to invoke it correctly and anticipate results.
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 covers the id parameter with 100% description coverage. The description enriches it by explaining owner-scoping and the not_found result for another agent's ID, which is meaningful context not present in the schema.
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 explicitly states the tool reads back a checkout session by ID and lists the returned fields (status, totals, line items, payment_handlers). This clearly distinguishes it from sibling getters like get_cart or get_order.
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 indicates the tool is owner-scoped ('another agent's id returns not_found') and requires identity on a signature-required Terminal, implying it is for one's own checkout sessions only. It does not explicitly name alternative tools, but the scope and resource make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderAInspect
Read back one of YOUR orders on this merchant: status, amount, settlement state. Use the order_id returned when you paid. You can only read orders your own agent identity placed — another agent's order returns FORBIDDEN. REQUIRES IDENTITY: Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The order id returned at payment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses that the tool is read-only, returns specific fields, enforces agent-level access control (FORBIDDEN for other agents), and requires a specific authentication mechanism (Bearer KYA). All behavioral traits are explicitly stated.
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, each serving a distinct purpose: purpose, constraints, authentication. No wasted words; critical information is front-loaded.
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 no output schema, the description adequately lists return fields (status, amount, settlement state) and mentions error behavior (FORBIDDEN). The single parameter is explained, and authentication requirement is specified. Complete for an agent to correctly invoke the 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?
Schema coverage is 100% (one parameter fully described). The description adds minor context (order_id returned when you paid) but does not significantly add beyond the schema description. Baseline 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 clearly states the tool reads back one of YOUR orders on this merchant, specifying the returned fields (status, amount, settlement state). It distinguishes from siblings like list_orders by emphasizing that it retrieves a specific order using order_id and only for the agent's own orders.
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 when-to-use (to read back an order using the order_id from payment), when-not-to-use (another agent's order returns FORBIDDEN), and prerequisites (identity required with Authorization header). No alternative tools mentioned but clearly delineates scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_capabilitiesAInspect
Which settlement rails this merchant actually accepts (e.g. coin/boson-escrow for escrowed funds that release on fulfilment, coin/usdc-base for direct). Call before get_payment_requirements so you pass a rail_id this merchant registers, rather than guessing. No identity required — this is discovery data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool is for discovery and requires no identity, implying read-only behavior. While it doesn't explicitly state no side effects, the context is sufficient for safe invocation.
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 concise sentences front-load the main purpose, followed by usage guidance and a note on requirements. No 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?
Despite lacking an output schema, the description provides illustrative examples and relational context with a sibling tool, making it sufficiently complete for a zero-parameter discovery 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?
Schema coverage is 100% (no parameters). The description adds value by explaining the nature of the returned data (settlement rails and examples), which goes beyond the empty schema.
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: identifying which settlement rails a merchant accepts. It provides specific examples (e.g., coin/boson-escrow) and distinguishes it from the sibling tool get_payment_requirements by indicating this is a prerequisite.
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 instructs to call before get_payment_requirements to obtain a valid rail_id, preventing guesswork. Also notes that no identity is required, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_requirementsAInspect
Turn a quote_token from get_quote into a seller-signed payment offer to authorize. Returns requirements (escrow address, asset, exact atomic amount, network) — sign it LOCALLY with your own wallet (e.g. @bosonprotocol/x402-client handle402 for coin/boson-escrow, producing an X-PAYMENT string). Facet never holds your key and cannot sign for you, which is why paying is two steps and not one. The offer binds to the quote_token's sealed landed total and ship-to, so the amount is the merchant's, not one you name. REQUIRES IDENTITY: same Facet KYA as get_quote, and the SAME aid — the offer path rejects a quote_token issued to a different agent than the caller.
| Name | Required | Description | Default |
|---|---|---|---|
| qty | No | Must match the quote_token. Default 1. | |
| amount | Yes | The landed total in ATOMIC units. Must equal the quote_token's sealed total. | |
| rail_id | Yes | Settlement rail, e.g. "coin/boson-escrow" (escrow: funds release on fulfilment) or "coin/usdc-base". See /v1/payments/capabilities for what this merchant registers. | |
| site_id | No | Usually omitted — this Terminal's bound site is used. | |
| product_id | Yes | Must match the product the quote_token sealed. | |
| quote_token | Yes | The signed token from get_quote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses key behaviors: the offer must be signed locally, the amount is fixed to quote token's sealed total, identity requirements, and that Facet cannot sign. It also explains the return format (escrow address, asset, amount, network). No contradictions.
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?
Description is well-structured with front-loaded purpose, but slightly verbose. Each sentence adds necessary context—workflow steps, identity requirements, and parameter constraints. Could potentially be trimmed slightly, but overall efficient.
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 6 parameters, 4 required, no output schema, and no annotations, the description is remarkably complete. It covers the overall workflow, all parameter constraints, behavioral nuances (local signing, fixed amount), and even hints at the output format. No significant gaps.
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 baseline 3. Description adds value beyond schema by explaining constraints (amount must equal sealed total, product_id must match sealed product, rail_id purpose). It references related tools (get_quote) and clarifies default for qty.
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 starts with a specific verb ('turn') and resource ('quote_token into a seller-signed payment offer'), clearly stating what the tool does. It distinguishes itself from siblings like get_quote, get_order, and get_payment_capabilities by specifying that it transforms a quote token into a payment offer.
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?
Clearly explains when to use (after get_quote, to authorize payment) and prerequisites (same identity and aid as get_quote). It also explains why paying is two steps and notes constraints like 'Facet never holds your key and cannot sign for you.' No explicit mention of when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productCInspect
Get full product detail by product or variant identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| catalog | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states 'Get full product detail', implying a read-only operation. However, it does not disclose the response structure, potential limits, or whether the 'full detail' includes all fields. It is adequate but lacks depth.
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 concise, a single sentence that front-loads the purpose. It avoids unnecessary words, but at the cost of missing important details. It is not verbose, but the conciseness may hinder completeness.
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 (nested object parameter, no output schema, no annotations), the description is incomplete. It does not explain what 'full product detail' means, how to differentiate product vs variant, or what the response contains. Sibling tools like 'lookup_catalog' are not addressed.
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 0%, so the description must add meaning. It says 'by product or variant identifier' but does not explain how the single 'catalog' parameter maps to different identifiers or what 'catalog.id' represents. The description adds minimal value beyond the raw schema.
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 ('Get full product detail') and the method ('by product or variant identifier'). It distinguishes from sibling tools like 'search_catalog' which are broader. However, the input schema uses 'catalog.id' which could be ambiguous, but the description compensates by mentioning both product and variant identifiers.
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 provides no guidance on when to use this tool versus alternatives like 'lookup_catalog' or 'search_catalog'. It does not specify prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteAInspect
Get the real landed cost of a product from this merchant: goods + shipping + tax for a specific destination, plus a signed quote_token the payment path binds to. Call this before paying — the token is what makes the price the MERCHANT's, not one you name. Physical products REQUIRE a fulfillment ship-to; without one you get FULFILLMENT_REQUIRED. An unserviceable destination returns UNDELIVERABLE (the merchant's own shipping zones, which Facet cannot waive). REQUIRES IDENTITY: send a Facet KYA as Authorization: Bearer <kya> (ES256 JWT from https://issuer.facet.llc, or another issuer in this Terminal's agents.txt KYA-Issuers).
| Name | Required | Description | Default |
|---|---|---|---|
| qty | No | Quantity. Default 1. | |
| site_id | No | Usually omitted — this Terminal's bound site is used. | |
| product_id | Yes | Product or variant id, e.g. from search_catalog. | |
| fulfillment | No | Ship-to destination. REQUIRED for physical products. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral aspects: signing a quote_token, error conditions (FULFILLMENT_REQUIRED, UNDELIVERABLE), authentication requirement. With no annotations, the description carries full burden and does well, though it could explicitly state it's a read-only operation.
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 moderately concise, with each sentence providing essential information. It could be slightly tightened, but it effectively communicates key points without extraneous text.
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 schema covers all parameters and no output schema exists, the description compensates by explaining the quote_token output and error scenarios. It also covers authentication. A complete picture for selecting and using the 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 has 100% coverage, so baseline is 3. The description adds value by explaining that fulfillment is required for physical products and what errors occur without it, enhancing understanding beyond the schema.
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 obtains a real landed cost and a signed quote_token for a product to a destination. While it distinguishes itself implicitly from siblings by its unique role, it does not name specific alternatives.
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 advises calling before paying, and details prerequisites like fulfillment for physical products and identity token. However, it does not explicitly state when not to use it versus siblings like get_product or get_order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersAInspect
List YOUR order history on this merchant, newest first. Scoped to your own agent identity — you never see another agent's orders. REQUIRES IDENTITY: Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max orders to return. | |
| cursor | No | Opaque cursor from a previous page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behavioral traits: scoped to own identity, requires authorization, returns newest first. Lacks details on pagination behavior beyond cursor or error responses, but adds value beyond the schema.
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, each carrying weight: first states purpose and scope, second notes identity requirement. No wasted words, front-loaded with key 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?
For a simple list tool with 2 parameters and no output schema, the description covers purpose, scoping, ordering, and auth requirement. Could benefit from noting return shape or pagination behavior, but is largely complete given constraints.
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 description does not need to add much. It provides no extra detail on limit or cursor beyond what the schema already contains, so 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 specific verb 'List' and resource 'order history', scopes to 'YOUR' and 'on this merchant', and specifies ordering 'newest first'. This clearly distinguishes it from siblings like get_order (single order) or discover_businesses.
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 identity requirement and authorization header, implying when to use (with valid bearer token). Does not provide explicit when-not-to-use or alternatives, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_catalogAInspect
Look up one or more products or variants by identifier (batch).
| Name | Required | Description | Default |
|---|---|---|---|
| catalog | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It states 'by identifier (batch)' but does not disclose outcomes for missing IDs, rate limits, or that it is a read-only operation. Key behaviors are omitted.
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?
A single, clear sentence with no unnecessary words. Information is front-loaded and efficient.
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 simplicity (batch lookup by ID), the description covers the core action but lacks details on error handling, return format, and whether the operation is read-only. With no output schema, these gaps reduce completeness.
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 0%, so the description must compensate. It adds the context that identifiers are used for batch lookup, but does not elaborate on the format of IDs or the nested structure. Some value added, but insufficient for full clarity.
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 looks up products or variants by identifier in batch, distinguishing it from sibling tools like search_catalog (query-based) and get_product (single item).
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 when identifiers are available, but lacks explicit guidance on when to use this tool versus alternatives like search_catalog or get_product. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_delivery_refundAInspect
Request a refund or return on a DELIVERED order you placed on this merchant. Opens a merchant-approved refund ticket (status requested); it moves NO money on its own. The merchant reviews and approves it, and only then does the send-back sign from the merchant's OWN wallet (non-custodial). Amount and recipient are NOT inputs: the refund amount is derived and capped server-side, and the recipient is the order's stamped payer, never one you name. Pass refund_line_items to refund only part of the order; omit for the whole order. Owner-scoped: another agent's order returns FORBIDDEN. REQUIRES IDENTITY: a Facet KYA as Authorization: Bearer <kya> (an ES256 JWT from https://issuer.facet.llc, or another issuer in this Terminal's agents.txt KYA-Issuers). A wallet-bound KYA also authorizes a platform-originated order by its stamped payer.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Why the refund or return is requested. Required. | |
| receipt | No | Optional Ed25519-signed settlement receipt (the signed settle response you received). When valid and bound to this order it records receipt_verified on the ticket; it never gates the refund. | |
| order_id | Yes | The order id returned at payment (settle / checkout complete). A reservation id is not an order id. | |
| refund_line_items | No | Optional PARTIAL selection: refund only these lines instead of the whole order. Advisory at request time; the merchant is authoritative and may adjust it at decide. Omit for a full-order refund. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly discloses that no money moves on its own, the merchant approves first, the signer is the merchant's own non-custodial wallet, the amount is capped server-side, and the recipient is always the stamped payer. It also explains the receipt behavior and the required KYA identity requirement.
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 every sentence earns its place. It front-loads the primary action and scope, then covers validation, money flow, ownership, and auth requirements without filler. Each clause contributes unique decision-relevant 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?
The description is thorough for this complexity: scopes, side effects, auth, partial/full behavior, and approval flow are all present. It does not explicitly describe the return envelope or what an error looks like, and since no output schema exists, that small gap keeps it from a 5.
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 covers all parameters, the description adds meaningful semantics beyond it: it explains why amount and recipient are absent, clarifies refund_line_itens for partial vs omit-for-full, and notes that receipt verification never gates the refund. This helps an agent understand the boundaries and intent of each parameter.
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 verb and resource: request a refund or return on a DELIVERED order. It clearly scopes the tool to delivered orders, owner-scoped orders, and full-vs-partial refunds, which distinguishes it from cart and checkout lifecycle 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?
The description gives strong selection signals: only delivered orders, only your own orders, partial vs full refund, and it even states what is NOT an input. It does not explicitly route the agent to alternative tools like cancel_cart or cancel_checkout for non-delivered orders, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_catalogCInspect
Search the merchant catalog for products matching a free-text query.
| Name | Required | Description | Default |
|---|---|---|---|
| catalog | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It only states it searches, but does not disclose pagination behavior, return format, or any limitations or 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 a single sentence, concise and front-loaded. However, it is too brief for a tool with nested parameters and no output schema, making it less helpful.
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 nested input schema, no output schema, and no annotations, the description is severely incomplete. It omits pagination, sorting, result details, and any usage context.
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 0%, yet the description only mentions 'free-text query', partially explaining the query parameter. It does not explain pagination or the nested structure, leaving significant meaning missing.
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 it searches the merchant catalog for products using a free-text query. It uses a specific verb and resource. However, it does not differentiate from the sibling 'lookup_catalog', so it loses the top score.
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 on when to use this tool versus alternatives like lookup_catalog. No when-not-to-use or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_cartAInspect
Replace a cart's line items (full replacement), re-priced server-side. Owner-scoped. REQUIRES IDENTITY on a signature-required Terminal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The cart id. | |
| line_items | No | The new full set of items, each `{ item: { id }, quantity }`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It effectively communicates that the operation is a full replacement (not append), that prices are recalculated server-side, and that owner identity on a signature-required terminal is mandatory. This goes beyond a basic mutation statement, though it could mention side effects like error conditions.
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, front-loaded sentence that states the action and follows with critical scoping/security caveats. There is no redundant or filler content.
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 covers the core purpose, replacement behavior, repricing, ownership scope, and authentication requirement. However, the schema allows omitting line_items, and the description does not clarify what happens in that case (e.g., clears the cart vs. no-op), which is a minor gap. No output schema is provided, so absence of return-value details is acceptable.
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%, with both parameters clearly described. The description does not add parameter-specific meaning beyond the schema, so the baseline of 3 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 clearly states the tool's purpose with a specific verb and resource: 'Replace a cart's line items (full replacement), re-priced server-side.' It also distinguishes itself from siblings like get_cart or create_cart by emphasizing full replacement and server-side repricing.
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 provides clear contextual prerequisites: 'Owner-scoped' and 'REQUIRES IDENTITY on a signature-required Terminal.' However, it does not explicitly name alternative tools or when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_checkoutAInspect
Return a checkout's CURRENT sealed snapshot. Facet seals price and items at create, so this is a no-op that reports the session plus a note: to change line items, update the cart and start a new checkout with create_checkout(cart_id). Owner-scoped.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The checkout session id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses that this is a no-op, that the checkout is sealed at create, that it returns the session plus a note, and that it is owner-scoped. This goes beyond a simple 'update' and prevents misuse.
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 succinct sentences: first states the core function, second explains the behavior and alternative. Every word earns its place, with no redundancy or padding.
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 single-parameter tool with no output schema and no annotations, this description covers the essential aspects: what it does, its no-op nature, the alternative workflow, and ownership scope. Nothing important 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 schema already fully describes the only parameter (id) with 100% coverage. The description adds owner-scoped context but does not add additional meaning about the id parameter itself, so the baseline of 3 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 clearly states the verb 'Return' and the specific resource 'checkout's CURRENT sealed snapshot', and explicitly differentiates from sibling tools by explaining it's a no-op and directing users to update_cart + create_checkout for changes. Despite the misleading name, the purpose is unambiguous.
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 tells when to use this tool (to get the current sealed snapshot) and when not to (to change line items), naming the alternative workflow: update the cart and start a new checkout with create_checkout(cart_id). This provides clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wishlist_addAInspect
Save a product to YOUR wishlist on this merchant for later. Idempotent: saving the same product again updates its note and keeps the original save time. Scoped to your own agent identity. REQUIRES IDENTITY: Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional short note. No personal data. | |
| product_id | Yes | The product id to save. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It explicitly explains idempotency ('updates its note and keeps the original save time'), scoping ('Your wishlist', 'your own agent identity'), and authentication requirements ('REQUIRES IDENTITY: Facet KYA as `Authorization: Bearer <kya>`'). This goes well beyond a simple 'saves a product' statement.
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 concise, information-dense sentences. Every sentence provides unique value: what it does, idempotency behavior, and auth requirement. No filler or repetition of schema details.
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, but the description covers all necessary operational context: purpose, side effects (idempotent note update), identity scope, and auth header. It doesn't explain return values, but no output schema exists and the mutation behavior is clear. Sibling tools provide additional context for alternatives.
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 semantic value by explaining idempotent behavior for repeated product_id submissions—specifically that the note updates while save time is preserved. This goes beyond the schema's basic field descriptions and helps the agent understand the net effect of calling the tool.
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+resource: 'Save a product to YOUR wishlist on this merchant for later.' It clearly distinguishes from sibling tools like wishlist_remove and wishlist_list by focusing on the add action with the purpose 'for later.'
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 provides clear context: it's scoped to the agent's own identity and requires a specific auth token. While it doesn't explicitly say 'use wishlist_remove instead' or list when-not-to-use, the sibling context and 'save for later' make the intended use obvious. No exclusions are given, but the identity requirement is a meaningful usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wishlist_listAInspect
List YOUR saved items (wishlist) on this merchant, newest first. Scoped to your own agent identity, so you never see another agent's list. REQUIRES IDENTITY: Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return ordering ('newest first'), isolation ('never see another agent's list'), and an authentication requirement ('REQUIRES IDENTITY: Facet KYA...'). This goes beyond a minimal description, though it omits details like potential errors or defaults.
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, with the first sentence efficiently packing verb, resource, scope, and ordering. The second sentence delivers a critical auth requirement without excess. 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?
For a simple list tool with one optional parameter and no output schema, the description provides the essential context: what items are listed, scope, ordering, and authentication. Given the low complexity, this is fully sufficient for an agent to select and invoke the 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?
The input schema covers 100% of the parameter documentation ('limit' → 'Max items to return'). The tool description adds no additional parameter semantics beyond what the schema already 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 ('List') and clearly identifies the resource ('YOUR saved items (wishlist) on this merchant') and ordering ('newest first'). It also distinguishes from siblings by emphasizing user/agent scoping, which separates it from other list tools like list_orders.
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 the tool returns the caller's own wishlist items and is scoped to the agent identity, indicating when it should be used. It does not explicitly mention alternatives or exceptions, but the scope is unambiguous enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wishlist_removeAInspect
Remove a product from YOUR wishlist on this merchant. Idempotent: removing something not on your list succeeds with removed:false. Scoped to your own agent identity. REQUIRES IDENTITY: Facet KYA as Authorization: Bearer <kya>.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The product id to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses idempotency, the response behavior for absent items (removed:false), scope to the agent's own wishlist, and a hard requirement for identity via KYA token. Missing explicit statement about permanence of removal, but the verb 'remove' implies it. Good coverage for a simple 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?
Three short, information-dense sentences. Each sentence earns its place: action+scope, idempotency behavior, identity requirement. No fluff or repetition.
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 one-parameter tool with no output schema, the description covers all essential aspects: what it does, scope, special behavior (idempotent, removed:false), and auth requirement. It's complete and self-contained.
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 describes product_id as 'The product id to remove.' with 100% coverage. The description does not add extra parameter-level meaning beyond restating the purpose. Baseline 3 is appropriate since schema handles it fully.
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: 'Remove a product from YOUR wishlist on this merchant.' It uses a specific verb (remove) and resource (product from wishlist), and distinguishes itself from siblings like wishlist_add and wishlist_list by focusing on removal and 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 provides context by noting it's scoped to 'YOUR wishlist' and 'your own agent identity,' which implies it's for removing items the agent added. It doesn't explicitly mention alternatives, but the idempotency note ('removing something not on your list succeeds') clarifies behavior in edge cases. Slight gap: no explicit 'use when...' but the action is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 or an account that owns the GitHub organization, then choose Claim with GitHub.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
Agentic commerce gateway: discovery, search, checkout across Shopify/Woo/Odoo/PrestaShop.
AI-agent commerce: find products, mint tracking links, publish posts, earn commission.
Multi-seller shopping for AI agents. Settle via Stripe MPP or x402 USDC on Base. Hosted.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to autonomously browse inventory, negotiate terms, manage carts, and execute secure payments on Shopify stores using standardized protocols. It provides a bridge for LLMs to handle the entire commerce lifecycle from discovery to order tracking through a verifiable mandate chain.52MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI shopping agents to search products, check stock, apply promotions, manage cart sessions, and create cryptographically signed checkout sessions on e-commerce storefronts, while giving merchants analytics into agent intent and catalog demand gaps.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to programmatically purchase physical and virtual goods from platforms like Amazon and Shopify using stablecoins, without the need for virtual debit cards or browser automation.1
- FlicenseNot gradedqualityCmaintenanceThe Agent-Native Marketplace — where AI agents discover, negotiate, and purchase services without a single line of HTML. Freedom Commerce is an open protocol and reference implementation for agentic commerce
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools map to a distinct lifecycle step, and the detailed descriptions separate discovery, cart, checkout, payment, order, and wishlist concerns well. However, get_product and lookup_catalog are largely the same lookup by identifier, discover_products and search_catalog overlap across scope, and update_checkout is actually a read-only no-op.
The set overwhelmingly follows a verb_noun pattern: create_cart, get_checkout, cancel_checkout, complete_checkout, search_catalog. Minor deviations are the wishlist_* resource-first subgroup and the misleading update_checkout, which does not perform an update.
At 23 tools, this sits at the heavy end of the range, though the broad commerce lifecycle does justify substantial surface area. The count is inflated by redundant product lookup tools and a no-op update_checkout, so a more trimmed set in the low-to-mid teens would be healthier.
The server covers the full shopper lifecycle well: discovery, product lookup, cart, checkout, payment, order placement, order read, refunds, and wishlist. Gaps are minor and workable, such as update_checkout not actually supporting updates and no explicit order-cancellation path once a checkout is complete.