Skip to main content
Glama

search_products

Check live product availability and pricing from allowlisted merchant feeds. Get current SKU details, stock status, and images to verify before making a purchase.

Instructions

Search products in allowlisted AgentPay stores. Returns ProductCard from merchant feed: price, inStock, imageUrls, sku — not stale training data. Each card has pick: whyRu, rankScore, steps[], settings. Quote pick.whyRu when the owner asks why THIS sku. Returns clarifyHint and quietHint. ALWAYS read clarifyHint before create_purchase. Call when the owner asks «актуальная цена», «есть в наличии», «сколько стоит», or after «купи», «закажи», «оформи», «потрать», or after peek_stores when the owner said yes. If «как обычно», «повтори заказ» — call list_purchases first. Never quote price from memory. Never call for thinking/advice. Never dump the result list. Never ask for a bank card.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesSearch query (min 2 chars). Not a full-catalog dump — results are capped per request.
limitNoMax hits per store, 1–20 (default 10)
storeIdNoOptional allowlisted store id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.3

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It adds important behavioral context: it uses live merchant feed data ('not stale training data'), it returns a pick object with whyRu/rankScore/steps, and it mandates reading clarifyHint before create_purchase. It also includes behavioral prohibitions like 'Never quote price from memory' and 'Never dump the result list.' However, it does not explicitly state that the tool is read-only or describe error/edge-case behavior, so it is not a 5.

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?

The description is dense but well-structured: purpose first, return value second, usage triggers and rules third. Every sentence carries useful information, and the critical cross-tool dependency (read clarifyHint before create_purchase) is highlighted. A slight deduction because the long list of 'Never' rules could be consolidated, but overall it is appropriately sized for a tool with no annotations and no output schema.

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?

The description is complete for a search tool with this complexity. It explains the return format, special fields (pick, clarifyHint, quietHint), the relationship to create_purchase, and precise triggers. It even names the sibling alternative for repeat orders. With no output schema and no annotations, the description covers everything an agent needs 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description reinforces that storeId refers to allowlisted stores and that results are capped, but these are already implied in the schema. It does not add new parameter-level meaning beyond the schema, so a 3 is appropriate.

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 description opens with a clear verb and resource: 'Search products in allowlisted AgentPay stores.' It specifies the scope (allowlisted stores), the return type (ProductCard from merchant feed), and lists key fields (price, inStock, imageUrls, sku). This clearly distinguishes it from siblings like get_product (single product) and list_purchases (purchase history).

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?

The description gives explicit trigger phrases: «актуальная цена», «есть в наличии», «сколько стоит», and after purchase-intent verbs. It also identifies an alternative: 'If «как обычно», «повтори заказ» — call list_purchases first.' It provides negative guidance: 'Never call for thinking/advice' and 'Never ask for a bank card.' This fully addresses when and when-not to use the tool.

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