Skip to main content
Glama

Search products

search_products
Read-onlyIdempotent

Search the whole supplement catalog the way the website's search box does. A product name or brand is matched typo-tolerantly (e.g. "kreatine", "theanin" still match). In markets where the site reads queries, a request described in words, with qualities (vegan, sugar-free, lab-tested, a form, a brand), is answered as that category with those filters, cheapest per unit first, and interpreted_as says how it was read and what could not be applied. Use find_cheapest instead when you already know the category.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of products to return (1-50).
queryYesWhat the user is looking for, in their own words: a product name or brand ("whey isolaat" or "magnesium bisglycinaat"), or a need with its qualities ("vegan eiwitrepen zonder toegevoegde suiker" or "lab-tested creatine powder").
marketNoOptional country market to query: nl, be, fr, gb, pl, es, dk, at. Defaults to nl, the market this endpoint answers for. Any other value is rejected.
category_slugNoOptional: restrict results to this category and all of its subcategories, e.g. "protein-powder". Must be a slug from list_categories; an unknown slug is rejected.
in_stock_onlyNoWhen true, only return products currently in stock.
max_unit_price_centsNoOptional: only return products whose normalized unit price, rounded to whole cents, is at or below this many cents.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"The product name or brand to search for, e.g. \"whey isolaat\" or \"magnesium bisglycinaat\"."New value: +"What the user is looking for, in their own words: a product name or brand (\"whey isolaat\" or \"magnesium bisglycinaat\"), or a need with its qualities (\"vegan eiwitrepen zonder toegevoegde suiker\" or \"lab-tested creatine powder\")."
  2. Changed1 schema field changed
    • changedInput schema / properties / market / description
      Previous value: -"Optional country market to query: nl, be, fr, gb, pl, es, dk. Defaults to nl, the market this endpoint answers for. Any other value is rejected."New value: +"Optional country market to query: nl, be, fr, gb, pl, es, dk, at. Defaults to nl, the market this endpoint answers for. Any other value is rejected."
  3. Changed1 schema field changed
    • changedInput schema / properties / market / description
      Previous value: -"Optional country market to query: nl, be, fr, gb, pl, es. Defaults to nl, the market this endpoint answers for. Any other value is rejected."New value: +"Optional country market to query: nl, be, fr, gb, pl, es, dk. Defaults to nl, the market this endpoint answers for. Any other value is rejected."
  4. Changed1 schema field changed
    • changedInput schema / properties / max_unit_price_cents / description
      Previous value: -"Optional: only return products whose normalized unit price is at or below this many cents."New value: +"Optional: only return products whose normalized unit price, rounded to whole cents, is at or below this many cents."
  5. Changed1 schema field changed
    • changedInput schema / properties / market / description
      Previous value: -"Optional country market to query: nl, be. Defaults to nl, the market this endpoint answers for. Any other value is rejected."New value: +"Optional country market to query: nl, be, fr, gb, pl, es. Defaults to nl, the market this endpoint answers for. Any other value is rejected."
  6. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds genuine context beyond that: typo tolerance in name/brand matching, natural-language interpretation in some markets, cheapest-per-unit ordering, and an interpreted_as field explaining how the query was read. It stops short of describing pagination or result volume behavior.

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?

Three dense sentences with the core purpose front-loaded and the sibling routing at the end. Some clauses (the market-reading caveat) are packed tightly, but no sentence is filler.

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 six-parameter, no-output-schema search tool, the description covers the query contract, the interpretation feedback, the ordering guarantee, and the market caveat. The one gap is that return shape beyond interpreted_as (e.g. what fields each product carries) is unstated, despite there being no output schema to lean on.

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 still adds value by explaining the query's own-words semantics with typo-tolerant examples and by noting that stated qualities are turned into category filters, plus the interpreted_as feedback, which is not visible in the schema.

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?

States a specific verb (search) and resource (the whole supplement catalog), scopes it as mirroring the website search box, and distinguishes itself from find_cheapest by name. An agent can identify what this does and what it returns 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 Guidelines4/5

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

Explicitly says to use find_cheapest when the category is already known, which is a real routing rule. It does not cover get_product for when a specific product identity is known, so alternative guidance is complete for one sibling but not all.

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.