Skip to main content
Glama

Surfing Dog Inbox

Products

list_products
Read-onlyIdempotent

Orderable products with prices in minor units, each with its barcode (gtin, 14 digits) where it has one and whether it can be had (never a count). A variant names its group and options; price_model says how a price is meant (only fixed is ordered at it: from, range and quote go to the business to price); an age-restricted product carries the label to show (ID checked at handover: 18+). ids: read the live price of products a network showed you, before your person agrees; gtin: the products with that barcode, in any of its lengths. The price here is the one that counts.

Input Schema

NameRequiredDescriptionDefault
qNo
idsNoOnly these products, by id (at most 50): read the live price of what a network showed you.
gtinNoOnly products with this barcode (GTIN, EAN, UPC or ISBN), in any of its lengths. One that does not read as a barcode is refused.
limitNo
cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / gtin
      Added value: +{
      +  "description": "Only products with this barcode (GTIN, EAN, UPC or ISBN), in any of its lengths. One that does not read as a barcode is refused.",
      +  "maxLength": 32,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / ids
      Added value: +{
      +  "description": "Only these products, by id (at most 50): read the live price of what a network showed you.",
      +  "items": {
      +    "maxLength": 64,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "minItems": 1,
      +  "type": "array"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior5/5

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

Annotations already establish a safe, idempotent read, yet the description still adds substantive behavior: prices are in minor units, availability is a boolean and 'never a count', price_model determines whether the price is actionable, and age-restricted items carry a label with an ID check at handover. These are interpretation rules that would otherwise cause an agent to mis-handle the returned data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

It is front-loaded with the core facts and wastes little, but the prose is semicolon-dense and fragmented ('A variant names its group and options; price_model says how a price is meant'), and parameter guidance for ids/gtin is buried mid-paragraph rather than separated. The closing 'The price here is the one that counts' is punchy but largely restates earlier content.

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

Completeness3/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 does a good job explaining what the returned fields mean, which is the hardest part for this tool. However, for a 5-parameter listing tool it leaves query string semantics, result cap behavior, and cursor pagination entirely undefined, so an agent can't be sure how to page or how broad an unfiltered call is.

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 coverage is 40%, and the description only elaborates ids and gtin — both of which already have schema descriptions, though the description adds the business rationale ('before your person agrees', 'in any of its lengths'). The remaining three parameters (q, limit, cursor) are documented nowhere, so the description does not compensate for the coverage gap.

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

Purpose4/5

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

The first clause names the resource and its core payload precisely: orderable products with prices in minor units, plus barcode and availability. It also explains that the listed price is not always orderable ('only fixed is ordered at it'), which is a real distinction an agent needs. It never names the sibling list_services or otherwise states how it differs from other catalogue-shaped tools, so it stops short of 5.

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

Usage Guidelines3/5

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

The description gives explicit when-to-use guidance for two filters: ids for 'reading the live price of products a network showed you, before your person agrees' and gtin for barcode lookup. It gives no guidance at all on the unfiltered case (q, limit, cursor) or on when to reach for this versus check_availability or list_services, so usage is only partially covered.

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.