Skip to main content
Glama

Search Products By Image URL

products.search.image_url
Read-only

Search PoloPan catalog products using visual image similarity from a publicly accessible image URL with optional multi-attribute filters. Returns visually similar products with available sizes, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). Automatically localized to active country / 240+ destination regions.

PURPOSE & DISAMBIGUATION:

  • Performs reverse visual search using computer-vision embeddings for a remote image URL.

  • Distinct from 'products.search.text': Use this tool when you have an image URL, NOT for textual keyword queries.

  • Distinct from 'products.search.image_upload': Use this tool for publicly hosted HTTP(S) image URLs, NOT for local file paths or base64 data.

  • Distinct from 'vision.outfit.detect_pieces': Use this tool to search catalog items matching an entire single-garment image, NOT for segmenting multi-garment influencer photos into bounding boxes.

WHEN TO USE:

  • When the user shares a web link to an image (e.g. Pinterest, Instagram, blog post) and wants to find visually matching products in the PoloPan catalog.

WHEN NOT TO USE:

  • Do NOT use when the image is stored on local disk or as base64 data (use 'products.search.image_upload').

  • Do NOT use when searching by text descriptions (use 'products.search.text').

  • Do NOT use when you need to crop/isolate individual outfit pieces from a full-body model photo (use 'vision.outfit.detect_pieces').

BEHAVIOR & SAFETY:

  • Read-only and idempotent with no persistent state modifications.

  • Downloads the image, generates visual embeddings, and retrieves ranked catalog matches.

  • Enriches all returned items with verified PoloPan purchase links and stock metadata.

PARAMETERS & CONSTRAINTS:

  • 'image_url' (string, required): Publicly accessible HTTP(S) URL of the image to search for visual matches.

  • '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).

  • 'page' (integer >= 1, default 1): Pagination page number.

  • 'page_size' (integer 1-100, default 20): Number of candidate items returned per page.

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

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

  • 'gender' (string, optional): Target gender filter ('men', 'women', or 'unisex').

  • 'size' (array of strings, optional): Filter by available size labels.

  • 'price_min' (number, optional): Minimum price threshold.

  • 'price_max' (number, optional): Maximum price threshold.

  • 'vendor' (array of strings, optional): Brand filter array.

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

Input Schema

NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPage number for pagination (1-indexed)
sizeNoArray of sizes to filter by (e.g. ['S', 'M', 'L'])
genderNoTarget gender filter: 'men', 'women', or 'unisex'
vendorNoList of brand names to filter by
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 criteria for search results: 'relevance', 'price', or 'title'relevance
image_urlYesPublicly accessible HTTP(S) URL of the fashion image to search for visual matches
page_sizeNoNumber of items to return per page (1 to 100, default 20)
price_maxNoMaximum price in local currency
price_minNoMinimum price in local currency
sort_orderNoSort order: 'asc' for ascending, 'desc' for descendingdesc
personalizeNoWhether to apply personalized ranking based on user style profile

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • 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 / image_url / description
      Previous value: -"Publicly accessible URL of the fashion image to search for visual matches"New value: +"Publicly accessible HTTP(S) URL of the fashion image to search for visual matches"
    • 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: +"Page number for pagination (1-indexed)"
    • changedInput schema / properties / page_size / description
      Previous value: -"Number of items to return per page"New value: +"Number of items to return per page (1 to 100, default 20)"
    • changedInput schema / properties / personalize / description
      Previous value: -"Whether to apply personalized ranking"New value: +"Whether to apply personalized ranking based on user style profile"
    • addedInput schema / properties / price_max / minimum
      Added value: +0
    • addedInput schema / properties / price_min / minimum
      Added value: +0
    • changedInput schema / properties / size / description
      Previous value: -"Array of sizes to filter by"New value: +"Array of sizes to filter by (e.g. ['S', 'M', 'L'])"
    • changedInput schema / properties / sort_by / description
      Previous value: -"Sorting criteria for search results"New value: +"Sorting criteria for search results: 'relevance', 'price', or 'title'"
    • changedInput schema / properties / sort_order / description
      Previous value: -"Sort order: 'asc' or 'desc'"New value: +"Sort order: '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": {
      -    "products": {
      -      "description": "List of matching fashion products",
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "handle": {
      -            "description": "Unique product handle identifier",
      -            "type": "string"
      -          },
      -          "price": {
      -            "description": "Current selling price",
      -            "type": "number"
      -          },
      -          "title": {
      -            "description": "Product name and title",
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "Verified purchase link",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "handle",
      -          "title",
      -          "price",
      -          "url"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "products"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the readOnlyHint/destructiveHint annotations, the description discloses the actual pipeline (downloads image, generates embeddings, retrieves ranked matches) and the enrichment behavior (verified purchase links, stock metadata, localization to 240+ regions). It omits rate limits or failure modes on unreachable URLs, keeping it short of 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?

Front-loaded with the core purpose and well-sectioned for scanning, but there is redundancy: the purpose, disambiguation, and parameter list repeat much of the same routing information across PURPOSE, WHEN NOT TO USE, and PARAMETERS sections. Slightly longer than necessary.

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?

With no output schema, the description correctly compensates by describing the return payload (visually similar products with sizes, pricing, and verified purchase URLs including the URL pattern). For a 13-param read-only search tool, the coverage is complete.

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 schema already documents all 13 parameters fully; baseline is 3. The description largely restates the schema (country examples, mode semantics, sort enums) without adding format or interaction details beyond it.

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), resource (catalog products), and method (visual image similarity from a URL), then explicitly distinguishes itself from three siblings by name: products.search.text, products.search.image_upload, and vision.outfit.detect_pieces. An agent can route correctly without opening any other schema.

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?

Provides dedicated WHEN TO USE and WHEN NOT TO USE sections with concrete conditions and named alternatives for each exclusion (local/base64 images -> image_upload, text queries -> search.text, multi-garment segmentation -> detect_pieces). Nothing is left to inference.

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.