Skip to main content
Glama

Search Alternatives In Budget

products.search.alternatives
Read-only

Find visual substitute products within a designated price bracket for a given fashion item handle using visual image similarity. Automatically localized to active country / 240+ destination regions.

PURPOSE & DISAMBIGUATION:

  • Retrieves catalog items visually similar to an existing product (e.g. finding similar shirts or jackets) constrained to a target budget tier.

  • Distinct from 'products.search.text': Use this tool when substituting a specific known item by handle, NOT for free-text search queries.

  • Distinct from 'products.search.image_url' / 'products.search.image_upload': Use this tool when referencing an existing catalog item handle, NOT for user-uploaded or external images.

  • Distinct from 'looks.curation.recommend': Use this tool to find replacement substitutes for the same garment category, NOT for pairing complementary outfit pieces.

WHEN TO USE:

  • When a shopper likes a product but requests cheaper alternatives, higher-end alternatives, or similar styles in a specific price bracket (e.g., 'show cheaper alternatives for this shirt under 1500').

WHEN NOT TO USE:

  • Do NOT use for general keyword discovery without a source product handle (use 'products.search.text').

  • Do NOT use to assemble a full outfit / lookbook (use 'looks.curation.recommend' or 'looks.curation.by_occasion').

BEHAVIOR & SAFETY:

  • Read-only and idempotent with no persistent side effects.

  • Automatically fetches the source product's primary image embedding and queries the catalog for visual matches within the requested price range.

  • Excludes the source product handle from returned alternatives.

  • Returns clean PoloPan purchase permalinks (https://s.polopan.com/p/{handle}).

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, required): The unique identifier of the source product to find alternatives for.

  • 'budget_range' (enum, default '1501-3000'): Price tier bracket ('0-1500', '1501-3000', '3001-5000', '5000+').

  • 'country' (string, optional): Target country name, city, currency, or ISO-2 code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.

  • 'mode' (enum, optional): Catalog mode: 'global' (ships to country) or 'local' (domestic only).

  • 'limit' (integer 1-100, default 6): Maximum number of alternative products returned in the final list.

  • 'page' (integer >= 1, default 1): Pagination page number for the search pool.

  • 'page_size' (integer 1-100, default 8): Number of candidate items fetched per page before limit filtering.

  • 'sort_by' (enum, default 'relevance'): Ranking attribute ('relevance', 'price', 'title').

  • 'sort_order' (enum, default 'desc'): Sort order direction ('asc' or 'desc').

  • 'personalize' (boolean, default false): Whether to apply personalization weights.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPagination page number (1-indexed)
limitNoMaximum number of filtered alternative products to return in the result (1-100)
handleYesThe unique product handle identifier to find visual alternatives for (e.g. 'solid-cotton-shirt')
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
sort_byNoSorting attribute for the visual matches: 'relevance', 'price', or 'title'relevance
page_sizeNoNumber of candidate items to fetch per backend page (1-100)
sort_orderNoSort direction: 'asc' for ascending, 'desc' for descendingdesc
personalizeNoWhether to apply personalized user ranking to the results
budget_rangeNoTarget price bracket filter in local currency: '0-1500', '1501-3000', '3001-5000', or '5000+'1501-3000

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • changedInput schema / properties / budget_range / description
      Previous value: -"Target price bracket in local currency"New value: +"Target price bracket filter in local currency: '0-1500', '1501-3000', '3001-5000', or '5000+'"
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Country name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.",
      +  "type": "string"
      +}
    • changedInput schema / properties / handle / description
      Previous value: -"Base product handle to find alternatives for"New value: +"The unique product handle identifier to find visual alternatives for (e.g. 'solid-cotton-shirt')"
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of filtered alternatives to return"New value: +"Maximum number of filtered alternative products to return in the result (1-100)"
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "Catalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.",
      +  "enum": [
      +    "global",
      +    "local"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / page / description
      Previous value: -"Page number for pagination"New value: +"Pagination page number (1-indexed)"
    • changedInput schema / properties / page_size / description
      Previous value: -"Number of items to fetch per page"New value: +"Number of candidate items to fetch per backend page (1-100)"
    • changedInput schema / properties / personalize / description
      Previous value: -"Whether to apply personalized ranking"New value: +"Whether to apply personalized user ranking to the results"
    • changedInput schema / properties / sort_by / description
      Previous value: -"Sorting criteria"New value: +"Sorting attribute for the visual matches: 'relevance', 'price', or 'title'"
    • changedInput schema / properties / sort_order / description
      Previous value: -"Sort order: 'asc' or 'desc'"New value: +"Sort direction: 'asc' for ascending, 'desc' for descending"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "budget_range": {
      -      "description": "Applied budget bracket",
      -      "type": "string"
      -    },
      -    "products": {
      -      "description": "List of visual alternatives within budget",
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "handle": {
      -            "description": "Alternative product handle",
      -            "type": "string"
      -          },
      -          "price": {
      -            "description": "Alternative product price",
      -            "type": "number"
      -          },
      -          "title": {
      -            "description": "Alternative product title",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Purchase link",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "handle",
      -          "title",
      -          "price",
      -          "url"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "source_handle": {
      -      "description": "Source product handle",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "budget_range",
      -    "source_handle",
      -    "products"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.