Skip to main content
Glama

search_products_v2

REQUIRED deliver_to. Search the BuyWhere product catalog by keyword. The deliver_to parameter is REQUIRED (ISO country code, e.g. "SG", "US") — it takes precedence over country_code/country and prevents all-market scans. Always pass deliver_to="SG" (or your buyer's country). Returns product records with title, description, image, price, and merchant information. Covers e-commerce platforms across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US. Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoKeyword search query
modeNoSearch mode: keyword=FTS only (default, matches REST /v1/products/search), semantic=vector only, hybrid=RRF blend of FTS+vector. Falls back to keyword if vector DB or FLOWAI_EMBED_API_KEY unavailable.keyword
limitNoNumber of results (max 100, default 20)
queryNoAlias for q (accepted for agent convenience; use q). Without this, callers passing `query` get 0 rows and the reltuples-derived total — see BUY-75287.
domainNoFilter by merchant platform (e.g. lazada, shopee, amazon)
offsetNoPagination offset
regionNoFilter by region (sea, us, eu, au)
compactNoReturn agent-optimized compact shape: structured_specs, comparison_attributes, normalized_price_usd. Reduces response size ~40%. Recommended for agent tool-use.
countryNoAlias for country_code (deprecated, use country_code)
categoryNoFilter by product category name (e.g. "Laptops", "Smartphones", "Televisions"). Use to exclude accessories and get actual products.
max_priceNoMaximum price (in currency inferred from country_code, or SGD by default)
min_priceNoMinimum price (in currency inferred from country_code, or SGD by default)
deliver_toYesREQUIRED. Buyer delivery country/market (ISO country code, e.g. "SG", "US").
country_codeNoFilter by ISO country code. Also infers default currency for price filters (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR).

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the required deliver_to behavior, its precedence over country_code/country, the all-market scan prevention, regional coverage, and compact-mode output differences. These are meaningful behavioral details beyond the schema. It does not discuss pagination, rate limits, or failure modes, but those are partially visible in the schema.

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

Conciseness4/5

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

The description is front-loaded with the most important requirement ('REQUIRED deliver_to') and is generally efficient. There is some redundancy in stating deliver_to is required three times, but each mention adds a slightly different nuance (requirement, precedence, and 'always pass'). Overall it earns its length.

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

Completeness4/5

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

For a 14-parameter tool with no output schema or annotations, the description covers the key invocation requirement, return shape, regional scope, and agent-optimized mode. It does not explicitly address how this v2 differs from search_products or related comparison tools, which is a notable completeness gap given the sibling list.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining deliver_to's precedence and why it is mandatory, and by clarifying what compact=true returns (structured_specs, comparison_attributes, normalized_price_usd). This goes beyond the raw schema descriptions for those parameters.

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 description clearly states the action ('Search the BuyWhere product catalog by keyword') and the resource, with specific deliverable fields listed. However, it does not differentiate from the sibling tool search_products, so an agent cannot easily tell when this v2 is the right choice over the base version.

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

Usage Guidelines4/5

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

Provides explicit operational guidance: deliver_to is required, takes precedence, prevents all-market scans, and 'Always pass deliver_to='SG' (or your buyer's country)' is a direct instruction. It also recommends compact=true for agent use. It does not explicitly state when to prefer this tool over alternatives like search_products, so it stops short of full exclusion guidance.

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.

TDQS

A3.6/5.0
Disambiguation1/5

Five tools have near-identical v1/v2 pairs (compare_products, find_best_price, get_deals, get_product, search_products), making it very hard for an agent to know which variant to call without parsing subtle differences like required deliver_to. Although unique tools exist, the overlap dominates the surface.

Naming Consistency5/5

All tools use a consistent snake_case verb_noun pattern such as search_products, get_deals, compare_products, and list_categories. The versioned variants consistently append _v2, giving a predictable and easy-to-infer naming convention.

Tool Count4/5

13 tools is within a reasonable scope for a product-search and comparison MCP server. However, five of the tools are versioned duplicates that add little distinct capability, making the set feel slightly padded rather than optimally concise.

Completeness4/5

The tool surface covers the core buyer journey: search, compare, best-price lookup, deals, product details, similar products, categories, and catalog ingestion. Gaps are minor, such as no delete/remove catalog operation or dedicated merchant management, but primary shopping and product-discovery tasks are well supported.