Skip to main content
Glama

search_products

[FIND] START HERE when you know what you want. Free-text search across every active RRG listing. This endpoint answers DEFINED intent, not open browse. Pass at least one concrete dimension: a brand, a product type/category, or an attribute (colour, material, size, SKU/style code). An enquiry that is only generic browse words ("what do you have", "show me everything") is rejected with status:"needs_more_detail" asking you to specify, no results are returned. To browse without intent, call list_drops instead. Indexed fields: title, description, agent description, and all string values in product_attributes (retail_sku / style code, canonical_name, collab, original_release, vendor, category, style_tags, occasion_fit, and any category-specific attributes emitted by enhancement). Accepts any of these query patterns:

  • product name or partial name

  • SKU / style code / model number (exact or partial, dash/space insensitive)

  • brand name, or brand + category (" ")

  • collaborator name(s) for collab items

  • attribute keywords from the description ("black suede", "heavyweight cotton", etc.) Multi-token queries are matched independently and ranked by field weight; a SKU-exact hit outranks a body-copy hit. Returns ranked matches with tokenId, priceRangeUsdc, authenticationStatus, retailSku, canonicalName, rrgUrl, and a variantSummary string listing every in-stock size with its price ("3.5=$1583, 4=$1899, 10.5=$770, …").

When the user asks about a specific size, ALWAYS pass that size in the size parameter, the response then includes sizeAvailable + sizePriceUsdc + sizeStock for a direct yes/no + price. For queries like "size 10.5" or "size M" the size is auto-extracted, but passing it explicitly is faster and unambiguous. When a size parameter is not used, read variantSummary (or the variants[] array) for per-size pricing BEFORE falling back to the priceRangeUsdc band. Per-size prices are exact; the band is only a floor→ceiling range.

Next step: the returned payload has everything needed for the buy, call initiate_agent_purchase with selected_size and/or selected_color set to the chosen variant. Pass selected_color whenever the listing has a colour axis (variants[].color non-null) so fulfillment ships the right finish. get_drop_details is optional (adds signed image URLs + shipping context).

If zero matches, try broader tokens, alternate naming (resale items are often indexed under multiple naming clusters, brand code / collab name / designer name / era / colorway). If still zero, call list_drops to browse.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoOptional size filter (e.g. "10.5", "M", "UK 8"). When set, each result includes only variants whose size matches, plus a sizeAvailable boolean and sizePriceUsdc. Results with sizeAvailable=false are still returned (marked unavailable) so the agent can report correctly.
limitNoMax results (default 10)
queryYesFree-text query. Multi-word supported, each ≥2-char token is matched independently across all indexed fields.
brand_slugNoOptional brand slug to scope the search. Call list_brands to see slugs.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full burden and excels: it discloses rejection behavior (status 'needs_more_detail'), indexed fields, query pattern handling, ranking logic, size-specific response fields, pricing nuances (variantSummary vs priceRangeUsdc), and even zero-match fallback guidance. This goes far beyond 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 long but front-loaded with the most critical guidance ('START HERE'), and organized into clear paragraphs with headers-like patterns. Every section earns its place given the tool's complexity, though some redundancy (e.g., repeated notes about per-size pricing) could be trimmed.

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?

For a complex tool with no output schema, the description covers all essential aspects: return fields, size semantics, pricing interpretation, next steps, and failure recovery. It also accounts for edge cases like unavailable sizes and multi-naming clusters, making it fully self-contained for an agent to act correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains query pattern semantics (SKU dash/space insensitivity, brand+category), auto-extraction of size, and how to use brand_slug (calling list_brands). It also clarifies the size parameter's effect on result structure, which is not obvious from the schema alone.

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 states a specific verb+resource ('Free-text search across every active RRG listing') and clearly differentiates from sibling tools by distinguishing defined intent from open browse. It also explicitly names list_drops as the alternative for browsing, making the tool's purpose unmistakable.

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 provides explicit when-to-use guidance ('START HERE when you know what you want'), states when not to use it (generic browse words are rejected), and names alternatives ('To browse without intent, call list_drops instead'). It also gives concrete next-step instructions for purchases, which is highly actionable.

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

B3.4/5.0
Disambiguation3/5

Several tool pairs could be confused, such as get_offers vs get_redemption_offers, get_world_eggs vs discover_egg, and the human vs agent purchase flows (initiate_purchase/confirm_purchase vs initiate_agent_purchase/confirm_agent_purchase). The descriptions are detailed and mostly disambiguating, but the presence of a retired tool (create_concierge) and multiple similarly named status/check tools add ambiguity.

Naming Consistency4/5

The vast majority of tools follow a snake_case verb_noun pattern (list_drops, submit_design, redeem_points, verify_world_id). Minor deviations include 'priscilla_post' (proper noun prefix) and the interchangeable use of get/check/verify for status-like tools, but the overall convention is consistent and readable.

Tool Count2/5

With 44 tools, the server is well above the 25-tool threshold that makes a surface feel heavy. Even though the platform covers many domains (commerce, affiliate, design, quests, concierge, marketing), this many tools strains discoverability and agent decision-making.

Completeness2/5

The buyer and designer flows are well covered (search → detail → purchase → download; brief → submit → status), but the brand side is incomplete. register_brand promises the ability to create briefs and product listings, yet no tools exist to create briefs or products, and there are no update/delete/refund operations for any resource, leaving registered brands at a dead end.

Resources