Skip to main content
Glama

RoboTrunk

Compare products on checked facts

compare_products
Idempotent

Writes a comparison of products RoboTrunk lists, now, from their checked facts: a short answer, a table with one row per product and a cited fact in every cell, each value with its source link. Name two to eight products, or leave products out and send only a question ("lightest travel strollers", "car seats that fit a small car") and RoboTrunk finds the listed products with checked facts that the question is about. The first call asks for it and answers started; call again with exactly the same arguments and it answers done with the comparison (usually within a minute), or running while it is still being written. Every value in it is a checked fact with its source; nothing is invented, and prices and stock are not in it. The comparison is kept and published at a page address RoboTrunk's pages and sitemap carry. Use it for a side-by-side of checked facts on products the person is choosing between, including ones found with search_catalog; it can help them decide. A named product needs checked facts: enrich_product starts research on one that has none. Error recovery: INVALID_REQUEST names the field to fix; PRODUCT_NOT_FOUND means a named product is not listed, so call search_catalog; NO_CHECKED_FACTS names the products to research with enrich_product or leave out; COMPARE_KEY_LIMIT, COMPARE_ADDRESS_LIMIT and COMPARE_BUSY say how long to wait, then call again; COMPARE_UNAVAILABLE means comparisons are not running, so compare with check_product; a failed answer carries COMPARE_FAILED or COMPARE_NOT_STARTED and says why: if it says no product, or only one product, with checked facts is about the question, ask a different question or search_catalog, otherwise call once more; COMPARE_FAILED_UNEXPECTEDLY (or any other unexpected error): retry once, then call submit_feedback. Next: get_product for price and stock, then create_checkout. Full guide: get_tool_guide or /agent/tools.json#compare_products Example call: {"products":[{"merchant":"anbbaby-com","product_id":"gid://shopify/Product/1234567890"},{"merchant":"strolleria-com","product_id":"gid://shopify/Product/9876543210"}],"question":"Which folds smallest for a plane?"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
productsNoTwo to eight different listed products to compare. Leave out (or send null or an empty list) to send only a question. Example: [{"merchant": "anbbaby-com", "product_id": "gid://shopify/Product/1234567890"}, {"merchant": "strolleria-com", "product_id": "gid://shopify/Product/9876543210"}].
questionNoWhat the person wants to know. Optional with products; required when products is left out, and then RoboTrunk finds the products it is about.
shopping_session_idNoOptional server-issued shopping session correlation ID. It is not purchase authority.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=true), the description discloses the asynchronous job pattern (first call returns started, a repeat with identical args returns done/running 'usually within a minute'), idempotency semantics, and persistence ('kept and published at a page address'). It also constrains content ('nothing is invented, and prices and stock are not in it'), which the annotations cannot convey. No contradiction with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, async behavior, and alternatives are front-loaded before the error taxonomy, and the dense error-recovery block earns most of its length given there is no output schema or structured error field. It loses a point for minor redundancy such as the inline 'Example call' that duplicates the schema's own example and the pointer to the full guide.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully specifies the return value (short answer, one-row-per-product table, cited facts with source links, published page address), the polling pattern, and a per-error-code recovery path. Nothing an agent needs in order to call and re-call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 merchant, product_id, question, and the products array bounds. The description restates the 2–8 product range and the question-only mode rather than adding syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource with its output shape: 'Writes a comparison of products ... a short answer, a table with one row per product and a cited fact in every cell.' It also distinguishes itself from siblings by naming search_catalog and check_product as alternatives. An agent can identify the tool's job without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to reach for it ('a side-by-side of checked facts on products the person is choosing between, including ones found with search_catalog') and when to route elsewhere, e.g. 'COMPARE_UNAVAILABLE means comparisons are not running, so compare with check_product.' Prerequisites are explicit: a named product needs checked facts, so enrich_product first for one that has none.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources