Synchronity
Server Details
Shop connected e-commerce stores: search, compare, cart, and checkout with buyer approval.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- themewireco/synchronity
- GitHub Stars
- 0
- Server Listing
- Synchronity
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 26 of 26 tools scored. Lowest: 3.2/5.
Each tool targets a distinct action or resource, with detailed descriptions that clearly differentiate cart management, checkout flow, payment steps, delegation, orders, and product operations. Potential overlaps like get_active_cart vs. get_cart are resolved by their specific use cases.
All tools use a consistent verb_noun_snake_case pattern (e.g., add_to_cart, set_shipping_address). There are no mixing of conventions like camelCase or inconsistent verb styles.
26 tools is on the higher side but appropriate for a comprehensive e-commerce server covering product discovery, cart management, checkout, payment, orders, and reviews. Could potentially be streamlined slightly, but still reasonable.
The tool set covers the full e-commerce lifecycle: site listing, product search/compare/reviews, cart CRUD, coupon application, shipping, checkout, payment with delegation and OTP, order retrieval, and back-in-stock alerts. No obvious gaps for typical buyer workflows.
Available Tools
26 toolsadd_to_cartAInspect
Add a product variant (or base product) to an existing cart. Reuse the active cart_id from the chat history if one already exists. Only call create_cart first if no cart exists yet.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Buyer email; arms a back-in-stock alert for any out-of-stock item in items[]. | ||
| items | No | Add several products in ONE call instead of calling this tool repeatedly. Each entry: { product_id, quantity, variant_id?, addons? }. Out-of-stock items are reported; pass `email` to auto-arm a back-in-stock alert for them. | |
| addons | No | Selected product add-ons as a map of addon_id -> chosen value(s). For select/radio/boolean pass a single value; for checkbox/multi pass an array; for text/number pass the value. Values for choice add-ons MUST come from the product's addons[].options[].value. Collect any addon with required:true before checkout. | |
| cart_id | No | Cart ID to add the product to | |
| site_id | Yes | Registered site ID | |
| quantity | No | Quantity to add (must be >= 1) | |
| product_id | No | Product ID to add | |
| variant_id | No | Optional product variant ID (e.g., for size/color selection) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write (not read-only) and non-destructive operation. The description adds useful detail: adding items is non-destructive, batching items is encouraged, and out-of-stock behavior with email alerts is disclosed.
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 sentences, front-loaded with the core action and critical usage guidance (reuse cart_id, when to create_cart). No 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 complexity (8 params, nested objects) and presence of output schema, the description covers main points: batching items, addons handling, email for stock alerts. Does not explain return values, but output schema exists.
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 baseline is 3. The description adds value by explaining batching (add several products in one call), linking email to back-in-stock alerts, and detailing addons semantics beyond schema types.
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?
Clearly states the verb (Add) and the resource (product variant or base product to an existing cart). Distinguishes itself from create_cart by specifying reuse of existing cart_id and when to call create_cart.
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 the agent to reuse the active cart_id from chat history and to only call create_cart first if no cart exists. Provides clear when-to-use and 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.
apply_couponAInspect
Apply a discount or promotional code to the cart. Returns the updated cart with discount applied.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Coupon or promotional code string | |
| cart_id | Yes | Cart ID | |
| site_id | Yes | Registered site ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. Description adds that it returns the updated cart, which is consistent but not new behavioral depth. No mention of idempotency, error handling, 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?
Two sentences, each essential. First sentence defines the action, second sentence describes the return. No 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?
Given the simple parameters (three strings) and existence of output schema, the description captures the essential information. No missing context for agent selection.
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 parameters are well-described in schema. Description does not add additional meaning beyond stating the action.
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?
Clearly states action ('Apply'), resource ('discount or promotional code'), and target ('cart'). It also mentions the return value ('updated cart with discount applied'). No sibling tool performs the same function.
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, prerequisites (e.g., cart must exist), or when not to apply a coupon. Implicit usage but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_delegationARead-onlyInspect
Poll for human approval of a delegation request. When status is "approved", returns the delegation_token to use as buyer_delegation_token in execute_checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| device_code | Yes | device_code returned by request_delegation |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| delivery | No | |
| user_code | No | |
| approvalUrl | No | |
| device_code | No | |
| delegation_token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds behavioral details: polling mechanism, conditional return of delegation_token on 'approved' status. 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?
Two sentences with no wasted words. Front-loaded with the primary action 'Poll for human approval'. Every sentence adds value.
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 polling tool, description covers behavior, conditional output, and usage context (prerequisite and consumer). Output schema exists but description still explains the token usage.
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 provides full coverage (100%) with clear description of device_code as returned by request_delegation. The tool description does not add additional meaning 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?
Clearly states the tool polls for human approval of a delegation request and returns the delegation_token on approval. It distinguishes from siblings by specifying the output usage in execute_checkout and the prerequisite request_delegation.
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 mentions when to use (poll for approval) and how the output is used in execute_checkout. Does not explicitly state when not to use or alternative tools, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_productsARead-onlyInspect
Compare products across multiple registered e-commerce sites simultaneously. Uses fail-open strategy: partial results from successful sites are returned even if some sites time out.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for product comparison | |
| category | No | Filter by category (optional) | |
| in_stock | No | Filter to in-stock items only (optional) | |
| site_ids | Yes | List of registered site IDs to compare across | |
| max_price | No | Maximum price filter (optional) | |
| min_price | No | Minimum price filter (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: the fail-open strategy and that partial results are returned even if some sites time out. Annotations already indicate readOnlyHint=true and openWorldHint=true, so the disclosure is helpful but could include more details on concurrency or timeout limits.
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 two sentences that convey the core purpose and a key behavioral detail. No extraneous information, and the most important aspect (cross-site comparison) 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 the tool's complexity (6 parameters, 2 required, output schema present), the description adequately covers the key behavioral trait (fail-open). While it could mention that results are aggregated from multiple sites, the combination of annotations and schema provides sufficient 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 100%, so the schema already describes each parameter. The tool description does not add extra meaning to parameters beyond what is in the schema, meeting the baseline score of 3.
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: comparing products across multiple e-commerce sites simultaneously. It uses specific verbs and resources, and distinguishes from sibling tools like search_products and get_product by emphasizing the cross-site comparison aspect.
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 mentions the fail-open strategy, which provides context on how partial results are handled, but it does not explicitly specify when to use this tool versus alternatives like search_products. No when-not or alternative references are given.
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 new shopping cart for a specific site. Returns a cart_id. IMPORTANT: Reuse the active cart_id across multiple products in the same session. Do NOT call create_cart again if you already have a cart_id for this site in the chat history.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Registered site ID | |
| currency | No | ISO 4217 currency code (e.g., "USD", "EUR", "GBP"). Defaults to site currency. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| cart_id | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already show readOnlyHint=false, the description adds important behavioral context about session reuse and idempotency. However, it does not disclose error conditions or authorization requirements for creation.
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 concise sentences plus an IMPORTANT note. Every sentence adds value; no extraneous text. Front-loaded with purpose and return value.
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 creation tool with 2 parameters and an output schema, the description covers purpose, return value, and critical usage guidance. No missing information.
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% with descriptions for both parameters. The description adds no additional meaning beyond the schema, only referencing site_id implicitly via 'for a specific site'. 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?
Clearly states it creates a new shopping cart for a specific site and returns a cart_id. The verb 'create' and resource 'cart' are specific. Distinguishes from siblings like get_cart or add_to_cart by focusing on initialization.
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 reuse an existing cart_id and not call create_cart again if one already exists for the site. This provides clear when-to-use and when-not-to-use guidance, referencing chat history context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_checkoutADestructiveInspect
Execute checkout for a cart to create an order. Requires a buyer delegation token (from user auth) and a shipping address. The order is created UNPAID (status "pending"). IMPORTANT — do NOT stop here or just hand the user the payment_url. Immediately continue the in-chat payment flow: call get_payment_methods for the returned order_id, present the available channels to the buyer, and ask which they want to use; then drive initiate_payment → (submit_payment_otp if needed) → poll get_payment_status until the order is paid. The payment_url in the response is only a manual fallback if the buyer declines in-chat payment. Always offer to collect payment in the chat first.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional order notes | |
| cart_id | Yes | Cart ID to checkout | |
| site_id | Yes | Registered site ID | |
| customer_name | Yes | Full name of the customer placing the order | |
| shipping_city | Yes | Shipping city | |
| shipping_name | Yes | Recipient full name | |
| customer_email | Yes | Email address of the customer placing the order | |
| customer_phone | Yes | Customer contact / billing phone number (E.164 preferred, e.g. +233201234567) | |
| shipping_line1 | Yes | Shipping address line 1 (street) | |
| shipping_line2 | No | Shipping address line 2 (apt/suite) [optional] | |
| shipping_phone | No | Recipient phone for the shipping address (E.164 preferred); defaults to customer_phone if omitted | |
| shipping_state | Yes | Shipping state or province | |
| shipping_country | Yes | ISO 3166-1 alpha-2 country code (e.g., "US", "GB") | |
| shipping_postal_code | Yes | Shipping postal code | |
| buyer_delegation_token | Yes | Delegation token from buyer (OAuth-like flow) |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| total | No | |
| status | No | |
| order_id | No | |
| created_at | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the order is created UNPAID (status 'pending') and details the required delegation token and payment flow. It adds context beyond annotations (destructiveHint=true) and does not contradict 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 well-structured: purpose first, then requirements, then a clear imperative note with step-by-step instructions. Every sentence adds value without 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?
Given the complex checkout flow and 15 parameters, the description covers purpose, requirements, and post-usage steps. It references expected outputs (order_id, payment_url), but does not address error cases or invalid tokens, leaving minor 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 the description adds minimal parameter meaning beyond summarizing that a delegation token and shipping address are needed. No new semantics for individual parameters are provided.
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 'Execute checkout for a cart to create an order' which is a specific verb+resource. It mentions required inputs (delegation token, shipping address) and distinguishes from sibling tools like 'get_cart' or 'add_to_cart' by being the finalization step.
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?
Explicit guidance is provided: 'do NOT stop here... Immediately continue the in-chat payment flow' along with a detailed sequence of subsequent calls (get_payment_methods, initiate_payment, etc.) and when to use payment_url as fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_cartARead-onlyInspect
Retrieve the buyer's in-progress cart for a site (resumes a conversation). Call this before assuming a new cart when a shopping conversation continues or after a cart error. Returns the cart with its items rebuilt if the connector cart expired, or null if no cart exists.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Registered site ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral details beyond annotations: returns rebuilt items if expired or null if no cart. No contradiction with readOnlyHint.
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 sentences, each essential: purpose then usage and return behavior. No waste.
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?
Simple tool with output schema; description covers purpose, usage, and behavior completely. No 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%, description does not add significant extra info beyond schema but contextualizes site_id role.
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?
Clearly states retrieve buyer's in-progress cart for a site and mentions resuming conversation. Distinguishes from siblings like get_cart or create_cart.
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 says to call before assuming a new cart when conversation continues or after cart error. Could name alternatives but provides solid guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cartBRead-onlyInspect
Retrieve current cart contents, including items, pricing, discounts, and totals. The card already shows the line items and totals to the user, so keep your text reply to one brief sentence — do not re-list the cart contents.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | No | Cart ID (optional if an active cart exists for the site) | |
| site_id | Yes | Registered site ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the cart is shown to the user and the output includes items, pricing, discounts, and totals, which is additional context but not critical beyond 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?
Two sentences: first states purpose, second gives agent instruction. Front-loaded and efficient, though the instruction is about output format rather than tool functionality.
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 presence of an output schema and annotations, the description covers purpose and provides a useful behavioral note. The tool has simple parameters well-documented in the schema, making the description adequate.
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% with descriptions for both parameters. The description does not add any extra meaning beyond what the schema provides, 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 clearly states 'Retrieve current cart contents' with specific verb and resource. However, it does not differentiate from the sibling tool 'get_active_cart,' which may cause confusion about which to use.
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 vs alternatives like 'get_active_cart' or 'create_cart'. The only instruction is about agent response brevity, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderARead-onlyInspect
Retrieve details for an order by its ID, including items, status, shipping, and tracking information. Orders are buyer-private — pass buyer_delegation_token (the delegation token from this buyer's checkout approval) so the gateway can confirm the buyer owns this order. If checking if an order is paid: a status of 'pending' or 'pending_payment' means the order has NOT been paid. Do NOT assume that the vendor storefront has synchronization delays or database lag; treat 'pending' as unpaid. When an order is unpaid, offer to collect payment in the chat by starting the in-chat payment flow (get_payment_methods → initiate_payment → get_payment_status) rather than only pointing the user at the payment_url. Do not mark the purchase task as successful until the status updates to 'processing' or 'completed'.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Registered site ID | |
| order_id | Yes | Order ID | |
| buyer_delegation_token | No | The buyer's delegation token (from their checkout approval); required to read their order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| total | No | |
| status | No | |
| order_id | No | |
| created_at | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint), description adds valuable behavioral details: orders are buyer-private requiring a delegation token, payment status logic, and instruction not to assume database lag. This fully informs agent 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?
Single paragraph but densely informative with no redundancy. Front-loaded with main purpose. Slightly long but every sentence contributes meaningful guidance.
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?
Output schema exists, parameters fully described, and description covers essential behavioral nuances (payment status, delegation token usage). Complete for correct agent invocation.
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 has 100% coverage, but description adds semantic value for buyer_delegation_token by explaining its origin and purpose (confirming buyer ownership). This goes beyond the schema description.
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?
Clearly states the tool retrieves order details by ID, listing specific information (items, status, shipping, tracking). Distinguishes from sibling tools like list_orders (which lists many) and other order-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?
Provides explicit context on when to use the tool and important caveats about payment status interpretation. While it doesn't directly compare to siblings, it gives actionable guidance (e.g., treat 'pending' as unpaid, initiate payment flow).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_methodsARead-onlyInspect
STEP 1 of the in-chat payment flow. Returns the payment channels available for an order (e.g. "mobile_money", "card") plus a gateways array of the enabled payment gateways (each with id, label, and its channels). When more than one gateway is listed, ask the buyer which they want to use and pass it as gateway to initiate_payment. Call this first, after an order exists. Then call initiate_payment with the chosen channel (and gateway if more than one). site_id falls back to DEFAULT_SITE_ID if omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Registered site ID (optional if DEFAULT_SITE_ID is set) | |
| order_id | Yes | Order ID to pay for |
Output Schema
| Name | Required | Description |
|---|---|---|
| mobile_money_provider_labels | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only (readOnlyHint: true) and non-destructive. Description adds flow-step context (STEP 1), output structure (gateways array), and fallback behavior (DEFAULT_SITE_ID). 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?
Front-loaded with purpose, then output details, then step-by-step instructions. No extraneous words. Every sentence adds necessary 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?
Despite having an output schema, description still outlines return shape (channels, gateways with id/label/channels). Covers prerequisites (order exists), next steps, and fallback. Complete 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?
Schema coverage is 100%, baseline 3. Description adds value by explaining site_id fallback ('falls back to DEFAULT_SITE_ID if omitted') and noting order_id is the identifier. This goes beyond schema 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?
Description clearly identifies as 'STEP 1 of the in-chat payment flow', specifies the resource (payment methods for an order), and distinguishes from siblings like initiate_payment or get_payment_status by detailing output and position in flow.
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 sequence: 'Call this first, after an order exists. Then call initiate_payment...' and instructs how to handle multiple gateways ('ask the buyer which they want to use'). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_statusARead-onlyInspect
FINAL STEP of the in-chat payment flow. Returns the current PaymentSession for an order. Poll this (every ~5 seconds) after initiate_payment/submit_payment_otp until payment_status becomes "paid" or "processing" (success — the order is confirmed) or "failed" (tell the user; they can retry by initiating a new payment). Do NOT treat the purchase as complete until this returns "paid" or "processing". No delegation needed (read-only).
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Registered site ID (optional if DEFAULT_SITE_ID is set) | |
| order_id | Yes | Order ID to check payment status for |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| reference | No | |
| instruction | No | |
| payment_status | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and non-destructive. Description adds valuable context: polling behavior, success/failure handling, and the fact that purchase is not complete until status is 'paid' or 'processing'. Does not contradict 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?
Description is well-organized and informative, but slightly verbose with multiple sentences. However, every sentence adds necessary behavioral context. Front-loaded with purpose and key instructions.
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 of the payment flow and the presence of an output schema, the description adequately covers polling, success/failure, and user guidance. Could benefit from mentioning that the output schema contains the payment_status, but overall 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?
Schema coverage is 100% with clear descriptions for both parameters (site_id and order_id). Description does not add additional parameter semantics beyond what schema provides, so baseline score 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?
Clearly states it's the final step of in-chat payment flow, returns PaymentSession, and specifies the action based on payment_status. Distinguishes from sibling tools like initiate_payment and submit_payment_otp by emphasizing it is the final poll step.
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: after initiate_payment/submit_payment_otp, and when-to-poll (every ~5 seconds). Gives clear criteria for success vs failure and what to tell the user. No alternative tools are mentioned but the context is very specific to the payment flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productARead-onlyInspect
Retrieve detailed information about a specific product including variants, pricing, images, and availability. May also return addons — customer-selectable options defined by the store (e.g. engraving, gift wrap, size add-ons). When a product has addons, present them to the buyer and collect every addon with required: true before calling add_to_cart; for any option carrying a price_modifier, show that surcharge so the buyer knows the added cost. The card already shows the product details to the user, so keep your text reply brief and do not re-describe what the card displays.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Registered site ID | |
| product_id | Yes | Product ID from the site (platform-specific format) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| kind | Yes | |
| image | No | |
| price | Yes | |
| title | Yes | |
| images | No | |
| siteId | Yes | |
| inStock | Yes | |
| addToCart | No | |
| productId | Yes | |
| description | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds context by noting it 'may return addons' and gives specific handling instructions. No contradiction with annotations. It discloses behavioral details beyond what annotations 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?
The description is two paragraphs, but both are necessary. The first sentence efficiently states purpose, then transitions to addon details and usage instructions. No redundant information, but could be slightly more concise by merging some sentences.
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 low complexity (two params, simple read operation) and presence of an output schema, the description is complete. It covers the main output fields (variants, pricing, images, availability, addons) and provides additional context for handling addons. Agent has enough information 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?
Schema coverage is 100% for both parameters (site_id and product_id), so baseline is 3. The description does not add additional meaning beyond the schema; it mentions the parameters only implicitly via the tool's purpose. No extra value added.
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 'Retrieve' and the resource 'detailed information about a specific product including variants, pricing, images, and availability'. It distinguishes from sibling tools like search_products (search) and add_to_cart (add to cart) by specifying the scope and output.
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 instructions: 'When a product has addons, present them to the buyer and collect every addon with required: true before calling add_to_cart'. Also advises on how to handle options with price_modifier and reminds the agent to keep reply brief because the card already shows details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_reviewsARead-onlyInspect
🔍 RECOMMENDED STEP — Fetch product reviews and authenticity consensus before making purchase decisions. Returns: average rating, trust score (0.0-1.0), review sentiment analysis, authenticity flags (fake reviews, seller issues, negative trends), and recent reviews with verified purchase status. Always call this for each product before adding to cart to verify quality and detect scams.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Max reviews to return (default: 10) | |
| site_id | Yes | Registered site ID | |
| product_id | Yes | Product ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| reviews | No | |
| authenticity_consensus | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only (Fetch, Returns) and non-destructive, consistent with annotations (readOnlyHint=true, destructiveHint=false). It adds value by detailing the rich return data (trust score, authenticity flags, sentiment analysis) and the recommended workflow, which goes beyond the 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 highly concise, two sentences with an emoji, front-loading the purpose and recommended usage. Every sentence adds value without 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?
Given the existence of an output schema (mentioned in context signals) and clean annotations, the description sufficiently covers the tool's purpose, return values, and usage context. It is complete for an AI 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?
Schema coverage is 100% with adequate descriptions for all four parameters. The tool description does not add new information about parameters, so it meets the baseline for high coverage without needing to compensate.
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 fetches product reviews and authenticity consensus, listing specific return fields (average rating, trust score, sentiment analysis, authenticity flags, recent reviews). It distinguishes itself from sibling tools like get_product and compare_products by recommending it for pre-purchase verification and scam detection.
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 explicitly recommends calling this tool before making purchase decisions and before adding each product to cart ('Always call this for each product before adding to cart to verify quality and detect scams.'). It provides clear context but does not explicitly state when not to use or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initiate_paymentADestructiveInspect
STEP 2 of the in-chat payment flow. Starts a payment session for an order and returns a PaymentSession with an instruction the agent renders in chat. REQUIRES a buyer_delegation_token — obtain it exactly like execute_checkout: call request_delegation, have the user approve in chat, then check_delegation to get the token (spending money always needs human approval). For channel "mobile_money" you MUST collect the buyer's phone (Ghana: 055… or +233…) and provider — use codes mtn, vod (Vodafone/Telecel), or tgo (AirtelTigo); aliases telecel→vod, tigo→tgo are accepted. ALWAYS quote the Show this instruction to the buyer line from the response verbatim (Paystack display_text). For channel "card", no phone/provider is needed; the response instruction contains an authorization_url you send the user to. After calling: if instruction.action == "submit_otp", ask the user for the OTP and call submit_payment_otp. If instruction.action == "approve_on_phone", tell the user to approve the prompt on their phone, then poll get_payment_status. If instruction.action == "redirect" (card), send the user the authorization_url, then poll get_payment_status.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | No | Buyer mobile-money phone number (required for channel "mobile_money") | |
| channel | Yes | Payment channel chosen by the buyer (from get_payment_methods) | |
| gateway | No | Payment gateway to use when the store has more than one enabled (see get_payment_methods.gateways[].id). Optional — defaults to the store's first enabled gateway. | |
| site_id | No | Registered site ID (optional if DEFAULT_SITE_ID is set) | |
| order_id | Yes | Order ID to pay for | |
| provider | No | Mobile-money provider (required for channel "mobile_money"). Codes: mtn, vod (Vodafone/Telecel), tgo (AirtelTigo). | |
| buyer_delegation_token | No | Delegation token from the buyer (from request_delegation/check_delegation). Required — payments always need human approval. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| reference | No | |
| instruction | No | |
| payment_status | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructive hint (money spent) and open world hint. The description reinforces this by emphasizing the need for human approval and enumerating possible instruction actions (submit_otp, approve_on_phone, redirect). It adds context beyond annotations without contradiction.
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 lengthy but well-structured with sections for token, channel specifics, and post-call handling. Every sentence provides value, though some clauses could be tightened (e.g., aliases list).
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?
Covers all necessary contextual elements: step in workflow, token precondition, channel-specific requirements, and follow-up actions. Fits well with sibling tools and addresses complexity of 7 parameters and dynamic instruction handling.
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 extra meaning: phone format examples (+233...), provider aliases (telecel→vod, tigo→tgo), and the critical buyer_delegation_token requirement. This goes beyond schema 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 clearly identifies 'initiate_payment' as STEP 2 of the payment flow, starting a payment session for an order. It uses a specific verb ('Starts') and resource ('payment session'), and distinguishes itself from sibling tools like 'submit_payment_otp' and 'get_payment_status'.
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 the tool (after obtaining buyer_delegation_token), provides alternatives for different channels, and instructs on post-call actions based on instruction.action. It also references sibling tools like 'request_delegation' and 'check_delegation' for token acquisition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersARead-onlyInspect
List recent orders for a site, optionally filtered by status (pending, processing, completed, cancelled, refunded). Orders are buyer-private — pass buyer_delegation_token (from this buyer's checkout approval); only that buyer's orders are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed, default: 1) | |
| status | No | Filter by order status | |
| site_id | Yes | Registered site ID | |
| per_page | No | Results per page (max 100, default: 20) | |
| buyer_delegation_token | No | The buyer's delegation token (from their checkout approval); required to list their orders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orders | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds important behavioral context: privacy restriction and the need for a delegation token, which goes beyond the annotations. 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?
Two sentences with no filler. The first sentence states the core function and filtering, the second explains the privacy mechanism. Every phrase serves a purpose.
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 annotations provide safety cues, the description covers the essential aspects: purpose, filtering, and authentication. It does not detail pagination or result limit, but those are in the schema.
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?
With 100% schema coverage, the baseline is 3. The description adds minimal extra meaning for parameters by noting the filtering option and the purpose of the delegation token. No parameter details are missing, but the description could clarify pagination behavior.
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 clearly states 'List recent orders for a site' with optional status filtering. The verb-resource-action pattern is explicit, and the scope (per site, per buyer) distinguishes it from sibling tools like get_order (single order) or list_sites.
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 explains that orders are buyer-private and require a buyer_delegation_token, giving clear context on when to use this tool (listing a specific buyer's orders). However, it does not mention when not to use it or contrast with alternatives like get_order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitesARead-onlyInspect
List all registered e-commerce sites. Use this first to find a site by name (e.g. "Pronto Partners") and get its site_id, which is required by all other tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| sites | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds workflow context (retrieving site_id for subsequent tools), which is valuable beyond annotations. 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?
Two sentences, no wasted words. Front-loaded with the primary action, followed by usage guidance. Perfectly concise.
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 parameters and the existence of an output schema, the description sufficiently explains what the tool does and why it's important (provides site_id). Complete for its purpose.
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 tool has zero parameters, so schema coverage is 100%. The description adds no parameter-specific info, which is appropriate. For a parameterless tool, baseline is 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: 'List all registered e-commerce sites.' It uses a specific verb ('list') and resource ('registered e-commerce sites'), and distinguishes itself from sibling tools by noting that it retrieves site_id required by others.
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 when to use: 'Use this first to find a site by name... and get its site_id, which is required by all other tools.' This provides clear context and differentiates from other tools that require the site_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_checkoutAInspect
Assemble checkout-ready cart(s) in ONE call for a multi-product (and optionally multi-store) request. Creates a cart per store, adds all items, and sets the shipping address — then returns the cart(s) with delivery options to choose. Use this when the buyer lists several products at once (optionally across stores) and/or gives their address up front, instead of calling create_cart/add_to_cart/set_shipping_address separately. Does NOT select delivery, check out, or pay — the buyer picks delivery (select_shipping_option) and approves checkout/payment per store afterward. Out-of-stock items are reported; pass customer.email to auto-arm a back-in-stock alert for them.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Products to buy. Each entry: { site_id, product_id, quantity, variant_id?, addons? }. Items may span multiple stores (grouped by site_id). | |
| customer | No | Optional buyer contact carried for checkout; customer.email arms back-in-stock alerts for out-of-stock items. | |
| shipping_address | Yes | Buyer delivery address (applied to every store). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description enriches this by detailing the exact actions: creating carts per store, adding items, setting shipping address, reporting out-of-stock items, and arming back-in-stock alerts when customer.email is provided. It also clarifies that the tool does not finalize the purchase, which is critical behavioral context beyond 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 concise yet comprehensive. Each sentence adds value: the first states the core function, the second explains when to use it, the third lists what it does not do, and the fourth provides additional behavioral details (out-of-stock handling). No fluff or repetition, and the structure is logical.
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 all aspects: the tool's actions (create carts, add items, set shipping), its limitations (does not handle selection/payment), output (carts with delivery options), and optional features (back-in-stock alerts). Given the complexity of multi-store and nested parameters, the description is fully adequate for an AI agent to understand and 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?
Schema coverage is 100% with descriptions for each parameter. The tool description adds extra context, e.g., that customer.email arms back-in-stock alerts and that items may span multiple stores grouped by site_id. While the schema already provides adequate descriptions, the tool description adds meaningful usage context that helps an agent understand parameter relationships.
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: assembling checkout-ready cart(s) for multi-product and multi-store requests. It uses specific verbs ('Assemble', 'Creates') and distinguishes itself from sibling tools like 'create_cart', 'add_to_cart', and 'set_shipping_address' by noting it combines these steps. It also explicitly states what it does NOT do (select delivery, check out, pay), leaving no ambiguity.
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 explicitly provides usage guidance: 'Use this when the buyer lists several products at once... instead of calling create_cart/add_to_cart/set_shipping_address separately.' It also clarifies when not to use it by stating it does not handle delivery selection, checkout, or payment. This gives clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_from_cartADestructiveInspect
Remove a line item from the cart. Requires the item_id from the cart contents.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | Cart ID | |
| item_id | Yes | Line item ID from the cart (cart.items[].item_id) | |
| site_id | Yes | Registered site ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true; description adds no new behavioral context beyond confirming removal action.
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 concise sentences with no unnecessary words; front-loads the action and 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?
For a simple removal tool with output schema present, description adequately covers purpose and prerequisite; slight gap in usage guidance but overall 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?
Schema coverage is 100% and description does not add significant meaning beyond what the schema provides, merely restating the item_id requirement.
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 clearly states action ('Remove') and resource ('line item from the cart'), distinguishing it from siblings like add_to_cart and set_cart_quantity.
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?
Description mentions prerequisite (item_id from cart contents) but does not explicitly state when to use vs alternatives like adjusting quantity via set_cart_quantity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_back_in_stockAInspect
Subscribe the buyer to a back-in-stock alert for an out-of-stock product. Use when the buyer asks to be notified/told/pinged when an item restocks ("notify me when X is back", "let me know when it's in stock"). Collect the buyer's email so the alert can reach them (without it only the demand is recorded for the merchant). The buyer is emailed when the product is next seen in stock. Returns whether an email alert was armed.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Buyer's email for the restock alert (recommended — without it no alert is sent) | ||
| site_id | Yes | Registered site ID | |
| product_id | Yes | Product ID to watch | |
| variant_id | No | Specific variant to watch (optional) | |
| product_title | No | Product name, for a clearer alert + merchant view (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains what happens ('emailed when product next seen in stock'), what the return value represents ('whether an email alert was armed'), and the consequence of missing email. This adds value beyond 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?
Five sentences with front-loaded purpose. No wasted words. Every sentence contributes clarity.
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 (context signal), the description adequately covers behavior and return value. No missing information.
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 context: email is 'recommended — without it no alert is sent', and product_title helps for 'clearer alert + merchant view'. This justifies 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 starts with a clear verb 'Subscribe' and resource 'back-in-stock alert'. It explicitly states the action on an 'out-of-stock product'. This is unique among siblings like 'add_to_cart' or 'get_product'.
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 usage guidance: 'Use when the buyer asks to be notified...' with example phrases. It also advises collecting the buyer's email for the alert to work, which is practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_delegationAInspect
Start the human delegation (approval) flow needed for checkout/payment. PREFERRED: pass the buyer's email — the gateway emails them a 6-digit code and returns a device_code; ask the user for the code and call submit_delegation_otp. This keeps approval fully in-chat (no link) and you never see the code, so you cannot approve on their behalf. If you omit email, it falls back to a browser approval link (device flow) which the user must open; then poll check_delegation. You can never approve a delegation yourself.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Buyer's email. When provided, a one-time approval code is emailed to them and approval happens in-chat via submit_delegation_otp (recommended). | ||
| scopes | No | Scopes to request (defaults to all four scopes) | |
| site_id | Yes | Site ID requiring delegation | |
| marketing_opt_in | No | Set true ONLY if the buyer explicitly agreed to receive marketing/deals emails (e.g. ticked the opt-in box). Subscribes their email to the consumer mailing list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| delivery | No | |
| user_code | No | |
| approvalUrl | No | |
| device_code | No | |
| delegation_token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes security-critical behavior: the agent never sees the OTP code and cannot approve on behalf, going well beyond the 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?
Two concise sentences that pack essential flow logic and warnings without 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?
Covers both flows, prerequisites, post-actions, and ethical constraints; output schema presence reduces need to document returns.
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?
Adds meaning beyond schema by explaining the behavioral impact of email (triggers OTP flow) and marketing_opt_in (requires explicit consent). Schema coverage is 100%, so baseline 3 is exceeded.
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 starts a human delegation flow for checkout/payment, distinguishing it from sibling tools like submit_delegation_otp and check_delegation.
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 explains two usage paths (with and without email), recommends the email path, and directs to call submit_delegation_otp or poll check_delegation accordingly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsARead-onlyInspect
Find products on a registered store. To BROWSE a store's catalog (open-ended requests like "what do they sell", "show me what's available"), call with NO query — this returns the store's products. To SEARCH, pass query (a product name/keyword). Returns paginated products as an interactive card. ALWAYS translate a buyer's budget or price constraint into the price params on THIS call instead of filtering in your reply: "under/below/within X" or "X budget" → max_price: X; "over/above/at least X" → min_price: X; "between X and Y" → both. Likewise pass in_stock: true for "available"/"in stock" and category when they name one. The card renders exactly what this call returns, so the filter MUST be applied here — never fetch the full catalog and then narrow it in text. Call once with your best intent (browse OR a single query); if a real search is genuinely empty, ask the user to clarify rather than re-firing reworded queries. The card shows products, prices, IDs, and Add-to-cart controls — keep your text reply to one brief sentence and do not re-list what the card shows.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed, default: 1) | |
| query | No | Optional single search term (product name/keyword). OMIT to browse; for several names use `queries`. | |
| queries | No | Search several product names at once (e.g. when the buyer lists multiple items). Returns all matches in ONE call/card instead of searching one at a time. Use `query` for a single search, `queries` for several, or omit both to browse. | |
| site_id | Yes | Registered site ID (e.g., "site_abc123" or "shopify_store_1") | |
| category | No | Filter by product category (optional) | |
| in_stock | No | Filter to in-stock items only (default: false) | |
| per_page | No | Results per page (default: 20, max: 100) | |
| max_price | No | Maximum price filter in store currency, format: "199.99" (optional) | |
| min_price | No | Minimum price filter in store currency, format: "19.99" (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| siteId | Yes | |
| products | Yes | |
| siteName | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, openWorld, non-destructive; description adds critical context: returns paginated interactive card, card reflects exact results, filters must be applied on call, and search behavior when empty. No contradiction.
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 relatively long but every sentence is informative and necessary. Front-loaded with core purpose. Could be slightly more concise, but the detail is justified by tool complexity.
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 9 parameters, output schema exists, and sibling context, this description covers all aspects: browse vs search, filter mapping, card behavior, empty results handling, and agent response style. Extremely 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?
Schema coverage is 100%, yet description adds significant value beyond schema: explains when to omit query (browse), how to use multiple queries, and maps natural language price constraints to min_price/max_price. Also clarifies use of in_stock and category filters.
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?
Clearly states 'Find products on a registered store' and distinguishes browse vs search with explicit instructions. Purpose is unambiguous and highly specific.
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 exhaustive guidance: when to browse vs search, how to translate user constraints into parameters (price, stock, category), and cautions against refiring empty searches. Also explains agent's reply brevity due to card rendering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_shipping_optionAInspect
Select one of the shipping options returned by set_shipping_address. Binds the rate to the cart so the total includes shipping; call before execute_checkout so the hosted checkout opens pre-filled.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | Cart ID | |
| site_id | Yes | Registered site ID | |
| option_id | Yes | option_id from cart.shipping_options |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| shipping | No | |
| subtotal | Yes | |
| shippingOptions | No | |
| selectedShippingId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (which indicate non-read-only and non-destructive), the description adds that it binds the rate to the cart, updates the total, and pre-fills checkout. No mention of idempotency or errors, but useful context.
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 sentences, front-loaded with the core action, no wasted words. Efficient and clear.
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 moderate complexity, an output schema exists, and the description fully covers prerequisites, effects, and next steps. No 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 is 3. The description repeats the schema's note about option_id from cart.shipping_options, adding no new detail but reinforcing the workflow.
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 selects a shipping option returned by set_shipping_address, distinguishing it from sibling tools like set_shipping_address and execute_checkout. The verb 'select' and resource 'shipping option' are specific.
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 explicitly says to call before execute_checkout and implies it should follow set_shipping_address. No exclusions or when-not-to-use are given, but the workflow context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cart_quantityADestructiveInspect
Set a cart line's quantity (the server cart is the checkout source of truth, so this updates it live). Requires the item_id from the cart contents and the new absolute quantity. A quantity of 0 removes the line. Returns the updated cart card.
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | Cart ID | |
| item_id | Yes | Line item ID from the cart (cart.items[].item_id) | |
| site_id | Yes | Registered site ID | |
| quantity | Yes | New absolute quantity for the line (>= 0; 0 removes the line) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| subtotal | Yes | |
| discounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the update is live (destructiveHint is already true), requires specific parameters, and returns the updated cart. It adds context beyond annotations, such as the removal behavior and the live update nature.
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 concise sentences with no wasted words. The first sentence clearly states the action, and the second provides key 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?
Given 4 required params, full schema coverage, and an output schema, the description adequately covers behavior, parameter usage, and return value. It may lack explicit error handling or prerequisites, but is sufficiently complete for typical use.
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?
With 100% schema coverage, the description adds value by explaining the source of item_id ('from the cart contents') and reinforcing that quantity is absolute and 0 removes the line, which enhances 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 verb 'Set' and the resource 'a cart line's quantity', and distinguishes from siblings like add_to_cart and remove_from_cart by emphasizing that it updates the live server cart and can remove a line with quantity 0.
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 explains when to use the tool: to set a line's absolute quantity, and that a quantity of 0 removes the line. It does not explicitly mention when not to use or provide alternatives, but the context is clear enough for an AI agent to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shipping_addressAInspect
Set the cart shipping destination (collected from the buyer) and return available shipping options with costs. Call after items are in the cart and before select_shipping_option. country_code is required; include postal_code/state for accurate rates.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City | |
| state | No | State/province/region code where carriers need it | |
| cart_id | Yes | Cart ID | |
| site_id | Yes | Registered site ID | |
| postal_code | No | Postal/ZIP code for accurate rates | |
| country_code | Yes | ISO-3166 alpha-2 country code (e.g. US) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| total | Yes | |
| cartId | Yes | |
| siteId | Yes | |
| shipping | No | |
| subtotal | Yes | |
| shippingOptions | No | |
| selectedShippingId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false (write operation) and destructiveHint=false (not destructive). The description adds that the tool returns available shipping options, which the annotations do not cover. It does not contradict annotations, and the behavioral context (setting address) is clear.
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, front-loaded with the main action (set and return), followed by ordering and recommendations. Every sentence adds value, 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 the presence of an output schema (context: true), the description does not need to detail return values. It covers purpose, usage context, required parameters, and sequence. The description is complete for an agent to use 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 schema already documents each parameter. The description adds a note about country_code being required and recommends postal_code/state for accurate rates, which provides additional usage context but does not fundamentally add new meaning beyond the schema 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 states exactly what the tool does: 'Set the cart shipping destination... and return available shipping options with costs.' It uses a specific verb (set) and resource (cart shipping destination). It also distinguishes from the sibling tool select_shipping_option by calling out the ordering dependency.
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 sequence guidance: 'Call after items are in the cart and before select_shipping_option.' It also specifies which parameters are required (country_code) and recommends optional ones for accuracy (postal_code/state). This helps the agent decide when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_delegation_otpAInspect
Submit the 6-digit code the buyer received by email (from request_delegation with an email) to approve the delegation in-chat. On success returns a delegation_token to use as buyer_delegation_token for checkout/payment. You cannot obtain this code yourself — the user must read it from their email and give it to you.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The 6-digit code the buyer read from their email | |
| site_id | No | Registered site ID (optional if DEFAULT_SITE_ID is set) | |
| device_code | Yes | device_code returned by request_delegation |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| delivery | No | |
| user_code | No | |
| approvalUrl | No | |
| device_code | No | |
| delegation_token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical context beyond annotations: it requires user-provided code, cannot be automated, and returns a delegation_token. It aligns with readOnlyHint=false and destructiveHint=false, and adds 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?
Two sentences, front-loaded with purpose, no unnecessary words. Every sentence adds value.
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 verification step, the description covers the prerequisite, input, and output usage. It is complete given the tool's complexity and the presence of an output schema.
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 already documents parameters well (100% coverage). The description adds meaning by linking code to email context and explaining the output token's purpose, enhancing understanding of the parameters.
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 specifies the action ('submit the 6-digit code'), the resource ('delegation approval'), and the returned token. It clearly distinguishes from siblings like request_delegation and submit_payment_otp.
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 it (after receiving the code from user) and that the code must be obtained from the user's email, implying the prerequisite request_delegation. It lacks explicit alternatives but is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_payment_otpADestructiveInspect
STEP 3 (mobile_money only, when initiate_payment returned instruction.action == "submit_otp"). Submits the one-time password the buyer received to authorise the mobile-money charge. REQUIRES the same buyer_delegation_token used for initiate_payment. After submitting, poll get_payment_status until payment_status is "paid"/"processing" or "failed".
| Name | Required | Description | Default |
|---|---|---|---|
| otp | Yes | One-time password entered by the buyer | |
| site_id | No | Registered site ID (optional if DEFAULT_SITE_ID is set) | |
| order_id | Yes | Order ID being paid for | |
| buyer_delegation_token | No | Delegation token from the buyer (same one used for initiate_payment). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| reference | No | |
| instruction | No | |
| payment_status | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and open world. Description adds that token must be same as initiate_payment and that polling is needed for final status, which informs agent about non-blocking nature and required follow-up.
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-loaded with step number, condition, and action. No redundancy. Efficient use of 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?
Complete given complexity: specifies step, condition, required token, and polling advice. Output schema exists for return values. References sibling tools appropriately.
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% with good descriptions. Description reinforces token requirement but doesn't add significant new semantics beyond 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?
Description clearly states it submits the OTP for mobile money payment authorization, explicitly linking to initiate_payment with specific condition (instruction.action == 'submit_otp'). Distinguishes from siblings like submit_delegation_otp by specifying payment context.
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 says when to use: STEP 3 for mobile_money only, with condition from initiate_payment. Provides post-submission guidance to poll get_payment_status. No explicit when-not, but condition implies exclusivity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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!
Your Connectors
Sign in to create a connector for this server.