Skip to main content
Glama

Server Details

The premier fashion & apparel Model Context Protocol server. AI bounding box outfit deconstruction, 100% in-stock occasion looks, live size stock, and 1-click checkout.

Ownership verified
Status
Healthy
Uptime
100.0% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation4/5

Tools are largely distinct, but products.items.check_stock and products.items.get_by_handle both deliver product information with overlapping details, and looks.curation.by_occasion and looks.curation.recommend share occasion-based discovery. Each has a clear primary purpose, so confusion is limited.

Naming Consistency5/5

All tool names follow a consistent category.subcategory.action_noun pattern using lowercase snake_case, making the API predictable and easy to navigate.

Tool Count5/5

With 10 tools, the server covers search, product info, look curation, checkout link generation, and vision detection without being overwhelming. Each tool serves a distinct function within the fashion e-commerce domain.

Completeness4/5

The surface covers main workflows: text/image/alternative search, stock and spec checks, look curation, and checkout links. Missing explicit cart/order management, but that may be out of scope for a browsing-focused server.

Available Tools

19 tools
address.deleteDelete Saved Delivery Address
Destructive
Inspect

Delete a saved delivery address by ID from ~/.polopan/region.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
address_idYesID of the saved address to delete
address.get_currentGet Current Delivery Address for Region
Read-only
Inspect

Get the default delivery/shipping address saved for the currently active region from local configuration (~/.polopan/region.json).

WHEN TO USE (CRITICAL ANTI-SHORTCIRCUIT RULE):

  • ALWAYS call this BEFORE generating 1-click checkout links to check if the user already has a saved delivery address for their destination country.

  • If 'has_address' is false, DO NOT emit a naked checkout link. Prompt the user naturally for their shipping address (First Name, Street Address, City, Postal Code, Phone & Email) and save it using 'address.save'.

  • If 'has_address' is true, inform the user you are prefilling their saved address and proceed with checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoOptional country code (e.g. 'US', 'AE', 'GB', 'IN') to inspect addresses for. Defaults to active region country.
address.list_savedList Saved Delivery Addresses
Read-only
Inspect

List all saved customer delivery addresses stored in ~/.polopan/region.json, optionally filtered by country.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoOptional country filter (ISO-2 code or natural country name)
address.saveSave or Update Delivery AddressInspect

Save a customer delivery shipping address mapped to the active region in ~/.polopan/region.json.

Matches Flutter app (newapp) address schema: firstName, lastName, address1, address2, city, province, zip, country, phone, email, type.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional existing address ID to update
zipYesPostal code / Zip code / PIN code
cityYesCity / Town
typeNoAddress label/type: 'Home', 'Work', or 'Other'Home
emailNoCustomer delivery notification email address
phoneNoRecipient contact phone number with country dialing code
countryNoDestination country code or natural name. Defaults to active region country.
address1YesStreet address, house/flat/building name
address2NoApartment, suite, unit, landmark, or area
lastNameNoRecipient last name
provinceNoState, Province, or Governorate
firstNameYesRecipient first name
is_defaultNoSet this address as default for the country (default true)
storage_modeNoStorage destination: 'local' (writes to ~/.polopan/region.json) or 'stateless' (returns for chat context without disk write). Defaults to 'stateless' in cloud-hosted environments.
address.set_defaultSet Default Delivery AddressInspect

Set an existing address as the default shipping address for its country in ~/.polopan/region.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
address_idYesID of the saved address to set as default
checkout.links.get_direct_urlGet Direct Checkout URL
Read-only
Inspect

Generate the direct 1-click checkout purchase URL for a specific product handle and size variant index (https://s.polopan.com/p/{handle}/{size_index}).

PURPOSE & DISAMBIGUATION:

WHEN TO USE:

  • ONLY after the user has explicitly selected and confirmed their size (e.g. 'I want size M' or 'size 40').

WHEN NOT TO USE:

  • Do NOT provide direct checkout URLs with /{size_index} during initial product browsing, shortlisting, or if size is ambiguous (use base link https://s.polopan.com/p/{handle}).

BEHAVIOR & SAFETY:

  • Read-only link generator with no persistent state modifications or charges.

  • Automatically resolves variant index if a size string (e.g. 'M', 'L') is provided without size_index.

  • Encodes optional coupon parameters and quantity parameters into the final URL.

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, required): Unique product handle identifier.

  • 'size' (string, optional): Size label confirmed by user (e.g. 'M', 'L', 'XL', '42').

  • 'size_index' (integer >= 0, optional): Zero-based index of the chosen size variant.

  • 'quantity' (integer 1-10, default 1): Number of units to purchase.

  • 'coupon' (string, optional): Optional discount coupon code to pre-apply (e.g. 'SAVE15').

  • 'address_id' (string, optional): ID of specific saved address to prefill.

  • 'address' (object, optional): Delivery address object to prefill directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoSize label confirmed by the user (e.g. 'M', 'L', 'XL', '40')
couponNoOptional discount coupon code to pre-apply in the checkout session
handleYesUnique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')
addressNoOptional ad-hoc address object to prefill
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
quantityNoNumber of units to purchase (1 to 10, default 1)
address_idNoOptional saved address ID to prefill
size_indexNoZero-based index of the chosen size variant
looks.curation.by_occasionGet Looks By Occasion
Read-only
Inspect

Discover complete curated fashion looks styled for specific occasions (e.g., 'Wedding & Reception', 'Party', 'Casual', 'Cocktail', 'Date Night', 'Club Night', 'Brunch', 'Vacation', 'Formal'). All returned looks are verified 100% in-stock (any look with an out-of-stock item is automatically excluded). Automatically localized to active country / 240+ destination regions.

PURPOSE & DISAMBIGUATION:

  • Curates multi-item aesthetic outfits tailored to specific social events, vibes, and demographics.

  • Distinct from 'products.search.text': Use this tool to retrieve complete harmonized outfits, NOT individual standalone products.

  • Distinct from 'looks.curation.recommend': Use this tool to discover outfits by occasion/event theme without a seed product, whereas 'looks.curation.recommend' builds outfits around a specific product handle.

WHEN TO USE:

  • When a user seeks outfit inspiration or complete looks for events (e.g. 'What to wear to a summer cocktail party?', 'Brunch outfit for men', 'Date night dresses').

WHEN NOT TO USE:

  • Do NOT use when searching for a single product category (use 'products.search.text').

  • Do NOT use when coordinating around a specific item the user already picked (use 'looks.curation.recommend').

BEHAVIOR & SAFETY:

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

  • Strictly filters out any look containing an out-of-stock item (guarantees 100% purchaseable outfits).

  • Enriches all included products with verified PoloPan purchase links (https://s.polopan.com/p/{handle}) and policy data.

PARAMETERS & CONSTRAINTS:

  • 'occasion' (string, optional): Target occasion or theme ('Wedding & Reception', 'Party', 'Casual', 'Cocktail', 'Date Night', 'Club Night', 'Brunch', 'Vacation', 'Formal').

  • 'gender' (enum, default 'women'): Target gender filter ('women', 'men', 'female', 'male').

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

  • 'age' (integer 16-99, default 25): Target demographic age.

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

  • 'page_size' (integer 1-100, default 10): Number of looks per page.

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

MANDATORY AGENT INSTRUCTIONS:

  1. Always inform the user of available in-stock sizes, fast shipping SLA, and return policy for each item (Negative return days = 'Exchange only |X| days').

  2. When shortlisting a look, render the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care).

  3. Provide the clean base link (https://s.polopan.com/p/{handle}) during browsing. Provide direct 1-click checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNoTarget demographic age (16 to 99, default 25)
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPage number for looks pagination (1-indexed)
genderNoTarget gender filter: 'women' or 'men' (default: 'women')women
vendorNoOptional brand or vendor name filter array
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
occasionNoTarget occasion or vibe: 'Wedding & Reception', 'Party', 'Casual', 'Cocktail', 'Date Night', 'Club Night', 'Brunch', 'Vacation', 'Formal'
page_sizeNoNumber of looks returned per page (1 to 100, default 10)
looks.curation.recommendGet Recommended Outfits
Read-only
Inspect

Get complete recommended outfits. Pass a product 'handle' to find complementary items styled with it, OR pass an 'occasion' (e.g. 'Wedding & Reception', 'Party', 'Cocktail', 'Date Night', 'Formal') and 'gender' to discover full occasion looks. All returned looks are verified 100% in-stock (any look with an out-of-stock item is excluded). Automatically localized to active country / 240+ destination regions.

PURPOSE & DISAMBIGUATION:

  • Generates harmonized outfits coordinated around a seed product handle or occasion theme.

  • Distinct from 'products.search.alternatives': Use 'looks.curation.recommend' to build coordinating outfits with different garment pieces (e.g. pairing pants and shoes with a shirt); use 'products.search.alternatives' to find visual replacements for the exact same garment.

  • Distinct from 'looks.curation.by_occasion': 'looks.curation.recommend' supports building outfits around a specific chosen product handle as well as occasion themes.

WHEN TO USE:

  • When a user has selected a product and asks 'How do I style this?' or 'Show me outfits with this shirt'.

  • When discovering coordinated outfit recommendations for an occasion.

WHEN NOT TO USE:

  • Do NOT use to find substitute alternatives of the same garment (use 'products.search.alternatives').

  • Do NOT use for basic keyword search (use 'products.search.text').

BEHAVIOR & SAFETY:

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

  • Filters out any outfit containing out-of-stock items (guarantees 100% purchaseable looks).

  • Enriches all included items with verified purchase permalinks and policy strings.

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, optional): Product handle identifier to build coordinating outfits around (e.g. 'solid-linen-shirt').

  • 'occasion' (string, optional): Target occasion or theme (e.g. 'Wedding & Reception', 'Party', 'Cocktail', 'Date Night', 'Formal').

  • 'gender' (enum, default 'women'): Target gender filter ('women', 'men', 'female', 'male').

  • '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 outfit sets per page.

MANDATORY AGENT INSTRUCTIONS:

  1. Always inform the user of available in-stock sizes, fast shipping SLA, and return policy for each item (Negative return days = 'Exchange only |X| days').

  2. When shortlisting a look, render the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care).

  3. Provide the base link (https://s.polopan.com/p/{handle}) during shortlisting. Provide direct 1-click checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPage number for pagination (1-indexed)
genderNoTarget gender filter: 'women' or 'men' (default: 'women')women
handleNoProduct handle identifier to build coordinating outfits around (e.g. 'solid-linen-shirt')
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
occasionNoTarget occasion or aesthetic theme (e.g. 'Wedding & Reception', 'Party', 'Cocktail', 'Date Night', 'Formal')
page_sizeNoNumber of outfit sets to return per page (1 to 100, default 20)
products.items.check_stockCheck Live Variant Stock, Product Details & Sizing
Read-only
Inspect

Verify real-time live stock availability, discounted pricing, product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care Instructions), shipping/return policies, and available size variants for a specific fashion product handle.

PURPOSE & DISAMBIGUATION:

  • Real-time inventory and metadata inspection tool for a single product.

  • Computes the full size-availability matrix, active pricing, discount percentage, specifications dictionary, and resolves the 1-click checkout permalink for a chosen size.

  • Distinct from 'products.items.get_by_handle': Use this tool to check live stock, available sizes, formatted policies, and get size-specific checkout links; use 'products.items.get_by_handle' for raw catalog document retrieval.

  • Distinct from 'checkout.links.get_direct_url': Use this tool to verify stock and sizing options; use 'checkout.links.get_direct_url' to generate a final permalink once a size is confirmed.

WHEN TO USE:

  • Before presenting or confirming a product to the user, to verify whether their desired size is in-stock.

  • When generating the mandatory product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care).

  • When checking return/exchange eligibility and shipping dispatch timelines.

WHEN NOT TO USE:

  • Do NOT use to search across multiple catalog products (use 'products.search.text' or 'products.search.image_url').

BEHAVIOR & SAFETY:

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

  • Automatically maps numeric and Indian/UK/EU shoe and apparel sizes (e.g. '6' -> EU 39, 'M' -> Medium).

  • Formats negative return days cleanly as 'Exchange only |X| days' (e.g. -7 -> 'Exchange only 7 days').

  • Returns structured JSON with 'is_in_stock', 'available_sizes', 'out_of_stock_sizes', 'product_details', 'shipping_policy_text', and 'return_policy_text'.

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, required): Unique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206').

  • 'desired_size' (string, optional): Size label to verify against the variant inventory (e.g. 'M', 'L', 'XL', '32', '40').

  • 'size_index' (integer >= 0, optional): Zero-based index of the size variant.

MANDATORY AGENT INSTRUCTIONS:

  1. Always inform the user of available in-stock sizes, fast dispatch SLA, and return policy (Negative return days = 'Exchange only |X| days').

  2. Display the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care).

  3. Return the base link (https://s.polopan.com/p/{handle}) during browsing. Provide direct checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesUnique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
size_indexNoZero-based index of the specific size variant to inspect
desired_sizeNoOptional size query to verify against variant inventory (e.g. 'M', 'L', 'XL', '32', '40')
products.items.get_by_handleGet Product By Handle
Read-only
Inspect

Fetch the raw product document and metadata for a single item by unique product handle identifier. Returns catalog metadata, variant details, available in-stock sizes, price details, and verified purchase link (https://s.polopan.com/p/{handle}).

PURPOSE & DISAMBIGUATION:

  • Retrieves the full catalog record for a specific product handle.

  • Distinct from 'products.items.check_stock': Use 'products.items.get_by_handle' to fetch general catalog metadata; use 'products.items.check_stock' to get live variant inventory availability, computed sizing, specifications table, and 1-click checkout permalinks.

  • Distinct from 'products.search.text': Use this tool when you already have an exact product handle.

WHEN TO USE:

  • When you need the raw product metadata, image list, description, or variant array for a known product handle.

WHEN NOT TO USE:

  • Do NOT use to check real-time variant stock or obtain 1-click checkout URLs (use 'products.items.check_stock').

  • Do NOT use for general keyword product searches (use 'products.search.text').

BEHAVIOR & SAFETY:

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

  • Returns HTTP 404 error if handle does not exist.

  • Enriches returned document with verified purchase URLs.

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, required): Unique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206').

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesUnique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')
countryNoCountry name, city, currency, or 2-letter ISO code (e.g. 'US', 'United States', 'UK', 'Dubai', 'CA', 'IN'). Defaults to active saved region.
products.items.get_size_guideGet Product Size Guide & Fit Recommendation
Read-only
Inspect

Retrieve the complete size guide chart, body measurement matrix (Chest/Bust, Waist, Hip, Length, Shoulders), unit switcher (inches/cm), how-to-measure guidelines, and automatic best-fit size recommendations for a specific product handle.

PURPOSE & DISAMBIGUATION:

  • Dedicated size guide and fit consultancy tool for apparel and footwear.

  • Computes dimensional measurements across sizes, supports metric (cm) <-> imperial (in) unit conversions, and maps international/brand scales.

  • If user body measurements are provided (e.g. chest: 40 in, waist: 32 in), computes the best matching size variant with fit confidence and relaxed vs snug fit advice.

  • Distinct from 'products.items.check_stock': Use 'products.items.get_size_guide' when the user asks sizing/fit questions (e.g. 'What size fits a 40 chest?' or 'Show me the size chart'); use 'products.items.check_stock' for inventory checking.

WHEN TO USE:

  • When a user asks about sizing, fit, measurements, or how a garment fits (e.g., 'Is M true to size?', 'What are the chest measurements for this shirt in cm?').

  • When helping a customer choose between two sizes based on their body dimensions.

  • When rendering a full size chart matrix.

WHEN NOT TO USE:

  • Do NOT use for products without size variants (e.g., standard accessories, bags).

BEHAVIOR & SAFETY:

  • Read-only and idempotent.

  • Supports 'in' (inches) and 'cm' (centimeters) with automated dynamic range conversion.

  • Connects each recommended size to its direct 1-click checkout permalink (https://s.polopan.com/p/{handle}/{size_index}).

PARAMETERS & CONSTRAINTS:

  • 'handle' (string, required): Unique product handle identifier.

  • 'unit' (enum 'in' | 'cm', default 'in'): Preferred measurement unit system.

  • 'desired_size' (string, optional): Specific size variant to inspect (e.g. 'M', 'L', '32', '40').

  • 'user_chest' (number, optional): User's chest / bust body measurement.

  • 'user_waist' (number, optional): User's waist body measurement.

  • 'user_hip' (number, optional): User's hip body measurement.

  • 'user_unit' (enum 'in' | 'cm', default 'in'): Unit of the user's provided body measurements.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoMeasurement unit system for the size chart ('in' for inches, 'cm' for centimeters)in
handleYesUnique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')
user_hipNoOptional user body hip measurement for automated fit recommendation
user_unitNoUnit for the user's input measurements ('in' or 'cm')in
user_chestNoOptional user body chest/bust measurement for automated fit recommendation
user_waistNoOptional user body waist measurement for automated fit recommendation
desired_sizeNoOptional specific size label to highlight or verify (e.g. 'M', 'L', 'XL', '32')
products.search.alternativesSearch Alternatives In Budget
Read-only
Inspect

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.

ParametersJSON 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
products.search.image_uploadSearch Products By Uploaded Image
Read-only
Inspect

Upload a local image file (or base64 string) and search PoloPan catalog products using visual image similarity. Returns matching products with available in-stock 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 by uploading a local or base64-encoded image to secure temporary storage, then querying visual embeddings.

  • Distinct from 'products.search.image_url': Use this tool when the image file is local on the user's machine or in base64 format, NOT already on a public URL.

  • Distinct from 'vision.outfit.detect_pieces': Use this tool to search for products matching a single garment, NOT for decomposing full multi-piece outfits into bounding boxes.

WHEN TO USE:

  • When a user uploads a local photo/screenshot or supplies base64 image data to find matching fashion products in the catalog.

WHEN NOT TO USE:

  • Do NOT use when the image is already accessible via a public web URL (use 'products.search.image_url').

  • Do NOT use for text-only searches (use 'products.search.text').

BEHAVIOR & SAFETY:

  • Read-only catalog query with temporary image upload artifact (automatically expires after 'expiry_hours', default 24h).

  • Resolves MIME types automatically if not explicitly provided.

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

PARAMETERS & CONSTRAINTS:

  • 'image_path' (string, optional): Local file system path to the image file (one of image_path or image_base64 is required).

  • 'image_base64' (string, optional): Base64-encoded image data string.

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

  • 'content_type' (string, default 'image/jpeg'): MIME type of the uploaded image (e.g. 'image/jpeg', 'image/png', 'image/webp').

  • 'expiry_hours' (integer 1-168, default 24): Temporary upload lifetime in hours before expiration.

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

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

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

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

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

  • 'size' (array of strings, optional): Size filter array.

  • '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 personalize search ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPagination page number (1-indexed)
sizeNoArray of sizes to filter by
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: 'relevance', 'price', or 'title'relevance
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
image_pathNoLocal file system path to the image file (e.g. '/path/to/dress.jpg')
sort_orderNoSort order: 'asc' or 'desc'desc
personalizeNoWhether to apply personalized ranking weights
content_typeNoMIME type of the image, e.g. 'image/jpeg', 'image/png', 'image/webp'image/jpeg
expiry_hoursNoTemporary upload URL lifetime in hours before expiration (1 to 168, default 24)
image_base64NoBase64-encoded image data string (alternative to image_path)
products.search.image_urlSearch Products By Image URL
Read-only
Inspect

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.

ParametersJSON 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
products.search.textSearch Products By Text
Read-only
Inspect

Search PoloPan catalog products using a text keyword query with optional multi-attribute filters. Returns matching fashion items with available in-stock sizes, product specifications, shipping/return policies, discounted pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). Automatically localized to active country / 240+ destination regions.

PURPOSE & DISAMBIGUATION:

  • Primary text-based catalog search tool for fashion discovery across apparel, footwear, and accessories.

  • Distinct from 'products.search.image_url' / 'products.search.image_upload': Use this tool for textual queries and keyword filters, NOT for visual image search.

  • Distinct from 'products.search.alternatives': Use this tool for open discovery queries, NOT for finding direct visual substitutes of a known product handle.

  • Distinct from 'looks.curation.by_occasion': Use this tool to search individual products, NOT complete multi-piece outfit looks.

WHEN TO USE:

  • When a user searches for clothing or fashion styles using keywords, brand names, colors, or categories (e.g. 'black leather jacket', 'floral summer midi dress', 'men linen shirts').

  • When refining catalog searches with structured filters like price ranges, gender, sizes, country regions, or vendor brands.

WHEN NOT TO USE:

  • Do NOT use when the user provides an image URL or image file (use 'products.search.image_url' or 'products.search.image_upload').

  • Do NOT use when searching for cheaper/higher-end substitutes of a specific known product (use 'products.search.alternatives').

  • Do NOT use to find curated complete occasion outfits (use 'looks.curation.by_occasion').

BEHAVIOR & SAFETY:

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

  • Automatically sanitizes and enriches product records with verified PoloPan short permalinks (https://s.polopan.com/p/{handle}), computed in-stock size lists, and human-readable shipping and return policy strings.

  • Handles pagination and multi-attribute filtering deterministically.

PARAMETERS & CONSTRAINTS:

  • 'query' (string, required): Free-text search query or style keyword (e.g. 'black linen shirt', 'oversized hoodie').

  • '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 products returned per page.

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

  • 'sort_order' (enum, default 'desc'): Sort direction ('asc' for ascending, 'desc' for descending).

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

  • 'size' (array of strings, optional): Size filter array (e.g. ['S', 'M', 'L', 'XL', '32', '40']).

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

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

  • 'vendor' (array of strings, optional): List of brand or vendor names to filter by.

MANDATORY AGENT INSTRUCTIONS:

  1. Always communicate available in-stock sizes, fast dispatch SLA, and return policy for each product (Negative return days = 'Exchange only |X| days').

  2. When presenting or shortlisting products, display the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care).

  3. Return the clean base link (https://s.polopan.com/p/{handle}) during browsing. Provide direct checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic only). Defaults to active saved region.
pageNoPagination page number (1-indexed, starts at 1)
sizeNoArray of size labels to filter by (e.g. ['S', 'M', 'L', 'XL', '32'])
queryYesThe search query or style keyword to find fashion items (e.g. 'black leather jacket', 'floral summer midi dress')
genderNoTarget gender filter: 'men', 'women', or 'unisex'
vendorNoList of brand or vendor names to filter by (e.g. ['Zara', 'H&M', 'Tandul'])
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
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
region.get_currentGet Current Shopping Region & Settings
Read-only
Inspect

Get the currently active shopping destination country, currency code, symbol, phone code, and catalog scope mode from persistent local configuration (~/.polopan/region.json).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

region.list_supportedList & Search Supported Countries
Read-only
Inspect

Search the 240+ supported destination countries with localized currency codes, symbols, flags, phone codes, and price groups from live platform settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of countries to return (default: 20)
queryNoOptional search filter by country name, ISO code, currency, or phone dialing code (e.g. 'Emirates', 'dollar', 'CAD', 'Europe')
region.set_currentSet Current Shopping RegionInspect

Set the active shopping country/region using any natural country name, city (e.g. 'Dubai', 'London', 'California', 'Paris'), 2-letter ISO code ('US', 'GB', 'IN', 'AE', 'CA'), or currency ('USD', 'AED', 'GBP', 'EUR'). Saves to persistent local JSON (~/.polopan/region.json) so the user never needs to be asked again across turns and sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoCatalog mode: 'global' (ships to country) or 'local' (domestic store only). Defaults to 'global'.
countryYesTarget country name, alias, city, currency, or ISO-2 code (e.g. 'United States', 'US', 'UK', 'London', 'Dubai', 'UAE', 'Canada', 'India', 'Germany', 'AED', 'EUR')
vision.outfit.detect_piecesDetect Fashion Pieces & Bounding BoxesA
Read-only
Inspect

Deconstruct an outfit image or influencer photo into individual fashion pieces (e.g. Upper-body garment, Lower-body garment, Dress, Footwear, Bag, Headwear) with normalized bounding box coordinates and detection confidence scores.

PURPOSE & DISAMBIGUATION:

  • Computer-vision object detection tool designed to analyze multi-item outfit photographs and isolate individual garments with their spatial coordinates.

  • Distinct from 'products.search.image_url' / 'products.search.image_upload': Use this tool to segment a full outfit into pieces before querying, NOT to directly retrieve catalog search results.

  • Distinct from 'looks.curation.recommend': Use this tool for image-based piece decomposition, NOT text-based styling suggestions.

WHEN TO USE:

  • When the user provides a full-body model photo, street style snapshot, or celebrity outfit and wants to identify each individual clothing piece (jacket, top, pants, shoes, bag) to find matching products for each piece.

WHEN NOT TO USE:

  • Do NOT use when the image contains only a single standalone garment (use 'products.search.image_url' or 'products.search.image_upload' directly).

  • Do NOT use for text-only searches (use 'products.search.text').

BEHAVIOR & SAFETY:

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

  • Supports input via local file path ('image_path'), base64 string ('image_base64'), or public URL ('image_url'). Exactly one source must be provided.

  • Returns an array of detected piece objects with 'label', 'confidence' (0.0 to 1.0), and normalized 'box' coordinates [ymin, xmin, ymax, xmax].

PARAMETERS & CONSTRAINTS:

  • 'image_path' (string, optional): Local file system path to the outfit image (e.g. '/tmp/outfit.jpg').

  • 'image_base64' (string, optional): Base64-encoded image data string.

  • 'image_url' (string, optional): Public HTTP(S) URL of the image.

  • 'threshold' (number 0.05-0.95, default 0.22): Detection confidence threshold for bounding box filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
image_urlNoPublic HTTP(S) URL of the fashion image to deconstruct
thresholdNoConfidence threshold for object detection bounding boxes (0.05 to 0.95, default 0.22)
image_pathNoLocal file system path to the outfit image file to deconstruct
image_base64NoBase64-encoded image data string for outfit piece detection

TDQS

A4.8/5.0
Behavior5/5

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

While annotations already declare readOnlyHint and destructiveHint, the description goes further by stating the tool is 'read-only and idempotent' and specifies the input methods (image_path, image_base64, image_url) with the constraint that exactly one must be provided. It also discloses the output structure (label, confidence, box) and the threshold's range, adding valuable context beyond the annotations.

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 well-organized with clear sections (PURPOSE, WHEN, BEHAVIOR, PARAMETERS) and avoids redundancy. It is longer than minimal but each sentence serves a purpose, such as disambiguation and usage rules. Slight redundancy exists in the parameter explanations (schema already contains similar), but it remains focused.

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?

Given the tool's moderate complexity (4 params, no output schema), the description is exceptionally complete. It covers purpose, disambiguation, usage rules, behavioral details, input constraints, and return format. An agent has everything needed to correctly invoke the tool without additional research.

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?

The schema already covers all parameters (100% coverage), but the description adds practical context for each, such as example paths, the meaning of threshold, and the exact-one-source constraint. It also clarifies the output format, which is not in the schema, providing extra value for parameter usage.

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 clearly states the tool's purpose: deconstructing outfit images into individual fashion pieces with bounding boxes and confidence scores. It lists the piece types (e.g., Upper-body garment, Dress, Footwear) and explicitly distinguishes it from sibling tools like products.search.image_url, making its unique role unambiguous.

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?

The description provides explicit WHEN TO USE and WHEN NOT TO USE sections, detailing scenarios for multi-piece outfit images versus single garments, and contrasts it with text-based search. This directly guides the agent on when to select this tool over alternatives like products.search.image_url or looks.curation.recommend.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updates
    • Addedaddress.delete
    • Addedaddress.get_current
    • Addedaddress.list_saved
    • Addedaddress.save
    • Addedaddress.set_default
    • Changedcheckout.links.get_direct_url8 fields changed
      • addedInput schema / properties / address
        Added value: +{
        +  "description": "Optional ad-hoc address object to prefill",
        +  "properties": {
        +    "address1": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "address2": {
        +      "type": "string"
        +    },
        +    "city": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "country": {
        +      "type": "string"
        +    },
        +    "email": {
        +      "type": "string"
        +    },
        +    "firstName": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "lastName": {
        +      "type": "string"
        +    },
        +    "phone": {
        +      "type": "string"
        +    },
        +    "province": {
        +      "type": "string"
        +    },
        +    "zip": {
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "firstName",
        +    "address1",
        +    "city",
        +    "zip"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / address_id
        Added value: +{
        +  "description": "Optional saved address ID to prefill",
        +  "type": "string"
        +}
      • 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 / coupon / description
        Previous value: -"Optional discount coupon code to pre-apply"New value: +"Optional discount coupon code to pre-apply in the checkout session"
      • changedInput schema / properties / handle / description
        Previous value: -"Unique product handle identifier"New value: +"Unique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')"
      • changedInput schema / properties / quantity / description
        Previous value: -"Number of units to purchase (1-10)"New value: +"Number of units to purchase (1 to 10, default 1)"
      • changedInput schema / properties / size / description
        Previous value: -"Size label confirmed by the user (e.g. 'M', 'L', 'XL')"New value: +"Size label confirmed by the user (e.g. 'M', 'L', 'XL', '40')"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "checkout_url": {
        -      "description": "Direct 1-click purchase permalink (https://s.polopan.com/p/{handle}/{size_index})",
        -      "type": "string"
        -    },
        -    "handle": {
        -      "description": "Product handle",
        -      "type": "string"
        -    },
        -    "size": {
        -      "description": "Selected size",
        -      "type": "string"
        -    },
        -    "size_index": {
        -      "description": "Selected size index",
        -      "type": "number"
        -    }
        -  },
        -  "required": [
        -    "handle",
        -    "size_index",
        -    "checkout_url"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedlooks.curation.by_occasion8 fields changed
      • changedInput schema / properties / age / description
        Previous value: -"Target demographic age"New value: +"Target demographic age (16 to 99, default 25)"
      • 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 / gender / description
        Previous value: -"Target gender filter: 'women' or 'men'"New value: +"Target gender filter: 'women' or 'men' (default: 'women')"
      • 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 looks pagination"New value: +"Page number for looks pagination (1-indexed)"
      • changedInput schema / properties / page_size / description
        Previous value: -"Number of looks per page"New value: +"Number of looks returned per page (1 to 100, default 10)"
      • changedInput schema / properties / vendor / description
        Previous value: -"Optional brand filter"New value: +"Optional brand or vendor name filter array"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "looks": {
        -      "description": "List of verified in-stock occasion looks",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "id": {
        -            "description": "Unique look ID",
        -            "type": "string"
        -          },
        -          "image_url": {
        -            "description": "Main styled look image",
        -            "type": "string"
        -          },
        -          "occasion": {
        -            "description": "Occasion tag",
        -            "type": "string"
        -          },
        -          "products": {
        -            "description": "100% in-stock items in this outfit",
        -            "items": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "handle": {
        -                  "description": "Product handle",
        -                  "type": "string"
        -                },
        -                "price": {
        -                  "description": "Price",
        -                  "type": "number"
        -                },
        -                "title": {
        -                  "description": "Product title",
        -                  "type": "string"
        -                },
        -                "url": {
        -                  "description": "Purchase link",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "handle",
        -                "title",
        -                "price",
        -                "url"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "title": {
        -            "description": "Look title",
        -            "type": "string"
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "looks"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedlooks.curation.recommend8 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 / gender / description
        Previous value: -"Target gender filter: 'women' or 'men'"New value: +"Target gender filter: 'women' or 'men' (default: 'women')"
      • changedInput schema / properties / handle / description
        Previous value: -"Product handle to build coordinating outfits around"New value: +"Product handle identifier to build coordinating outfits around (e.g. 'solid-linen-shirt')"
      • 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 / occasion / description
        Previous value: -"Target occasion or aesthetic theme (e.g. 'Wedding', 'Party', 'Cocktail', 'Date Night')"New value: +"Target occasion or aesthetic theme (e.g. 'Wedding & Reception', 'Party', 'Cocktail', 'Date Night', 'Formal')"
      • 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 outfits per page"New value: +"Number of outfit sets to return per page (1 to 100, default 20)"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "handle": {
        -      "description": "Base product handle",
        -      "type": "string"
        -    },
        -    "looks": {
        -      "description": "List of recommended outfits",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "image_url": {
        -            "description": "Look image URL",
        -            "type": "string"
        -          },
        -          "title": {
        -            "description": "Outfit title",
        -            "type": "string"
        -          }
        -        },
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "type": "object"
        -}New value: +null
    • Changedproducts.items.check_stock5 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 / desired_size / description
        Previous value: -"Optional size query to verify (e.g. 'M', 'L', 'XL', '32', '40')"New value: +"Optional size query to verify against variant inventory (e.g. 'M', 'L', 'XL', '32', '40')"
      • changedInput schema / properties / handle / description
        Previous value: -"Unique product handle identifier"New value: +"Unique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')"
      • changedInput schema / properties / size_index / description
        Previous value: -"Zero-based index of the size variant"New value: +"Zero-based index of the specific size variant to inspect"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "available_sizes": {
        -      "description": "List of currently available in-stock sizes",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "direct_checkout_url": {
        -      "description": "Verified 1-click checkout permalink",
        -      "type": "string"
        -    },
        -    "handle": {
        -      "description": "Product handle",
        -      "type": "string"
        -    },
        -    "is_in_stock": {
        -      "description": "Overall stock status",
        -      "type": "boolean"
        -    },
        -    "out_of_stock_sizes": {
        -      "description": "List of out-of-stock sizes",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "title": {
        -      "description": "Product title",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "handle",
        -    "title",
        -    "is_in_stock",
        -    "available_sizes",
        -    "out_of_stock_sizes",
        -    "direct_checkout_url"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedproducts.items.get_by_handle3 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 / handle / description
        Previous value: -"Unique product handle identifier (e.g. 'solid-linen-shirt')"New value: +"Unique product handle identifier (e.g. 'solid-linen-shirt', 'shopify_11206')"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "handle": {
        -      "description": "Product handle identifier",
        -      "type": "string"
        -    },
        -    "price": {
        -      "description": "Price",
        -      "type": "number"
        -    },
        -    "title": {
        -      "description": "Product title",
        -      "type": "string"
        -    },
        -    "url": {
        -      "description": "Verified purchase link",
        -      "type": "string"
        -    },
        -    "variants": {
        -      "description": "Variant size list",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "in_stock": {
        -            "description": "Stock availability",
        -            "type": "boolean"
        -          },
        -          "size": {
        -            "description": "Size label",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "size",
        -          "in_stock"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "handle",
        -    "title",
        -    "price",
        -    "url"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Addedproducts.items.get_size_guide
    • Changedproducts.search.alternatives11 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"
      • 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
    • Changedproducts.search.image_upload17 fields changed
      • changedInput schema / properties / content_type / description
        Previous value: -"MIME type of the image, e.g. 'image/jpeg', 'image/png'"New value: +"MIME type of the image, e.g. 'image/jpeg', 'image/png', 'image/webp'"
      • 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 / expiry_hours / description
        Previous value: -"Temporary upload URL lifetime in hours"New value: +"Temporary upload URL lifetime in hours before expiration (1 to 168, default 24)"
      • changedInput schema / properties / gender / description
        Previous value: -"Target gender filter"New value: +"Target gender filter: 'men', 'women', or 'unisex'"
      • changedInput schema / properties / image_base64 / description
        Previous value: -"Base64-encoded image data string"New value: +"Base64-encoded image data string (alternative to image_path)"
      • changedInput schema / properties / image_path / description
        Previous value: -"Local file system path to the image file"New value: +"Local file system path to the image file (e.g. '/path/to/dress.jpg')"
      • 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 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 personalize search ranking"New value: +"Whether to apply personalized ranking weights"
      • changedInput schema / properties / price_max / description
        Previous value: -"Maximum price"New value: +"Maximum price in local currency"
      • addedInput schema / properties / price_max / minimum
        Added value: +0
      • changedInput schema / properties / price_min / description
        Previous value: -"Minimum price"New value: +"Minimum price in local currency"
      • addedInput schema / properties / price_min / minimum
        Added value: +0
      • changedInput schema / properties / sort_by / description
        Previous value: -"Sorting criteria"New value: +"Sorting criteria: 'relevance', 'price', or 'title'"
      • changedInput schema / properties / vendor / description
        Previous value: -"List of brand names"New value: +"List of brand names to filter by"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "products": {
        -      "description": "Matching products",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "handle": {
        -            "description": "Product handle",
        -            "type": "string"
        -          },
        -          "price": {
        -            "description": "Price",
        -            "type": "number"
        -          },
        -          "title": {
        -            "description": "Product title",
        -            "type": "string"
        -          },
        -          "url": {
        -            "description": "Purchase link",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "handle",
        -          "title",
        -          "price",
        -          "url"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "uploaded_image_url": {
        -      "description": "Temporary URL of the uploaded image",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "uploaded_image_url",
        -    "products"
        -  ],
        -  "type": "object"
        -}New value: +null
    • Changedproducts.search.image_url12 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"
      • 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
    • Changedproducts.search.text10 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"
        +}
      • 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 (starts at 1)"New value: +"Pagination page number (1-indexed, starts at 1)"
      • changedInput schema / properties / page_size / description
        Previous value: -"Number of items to return per page (max 100)"New value: +"Number of items to return per page (1 to 100, default 20)"
      • 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, e.g. ['S', 'M', 'L', 'XL']"New value: +"Array of size labels to filter by (e.g. ['S', 'M', 'L', 'XL', '32'])"
      • changedInput schema / properties / sort_by / description
        Previous value: -"Sorting criteria for the search results"New value: +"Sorting criteria for search results: 'relevance', 'price', or 'title'"
      • changedInput schema / properties / vendor / description
        Previous value: -"List of brand or vendor names to filter by"New value: +"List of brand or vendor names to filter by (e.g. ['Zara', 'H&M', 'Tandul'])"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "pagination": {
        -      "additionalProperties": false,
        -      "description": "Pagination metadata",
        -      "properties": {
        -        "page": {
        -          "description": "Current page number",
        -          "type": "number"
        -        },
        -        "page_size": {
        -          "description": "Number of items per page",
        -          "type": "number"
        -        },
        -        "total": {
        -          "description": "Total number of matching products",
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "page",
        -        "page_size"
        -      ],
        -      "type": "object"
        -    },
        -    "products": {
        -      "description": "List of matching fashion products",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "brand": {
        -            "description": "Brand or vendor name",
        -            "type": "string"
        -          },
        -          "discount_percent": {
        -            "description": "Discount percentage",
        -            "type": "number"
        -          },
        -          "handle": {
        -            "description": "Unique product handle identifier",
        -            "type": "string"
        -          },
        -          "mrp": {
        -            "description": "Original maximum retail price",
        -            "type": "number"
        -          },
        -          "price": {
        -            "description": "Current selling price",
        -            "type": "number"
        -          },
        -          "sizes": {
        -            "description": "List of available in-stock sizes",
        -            "items": {
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "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
    • Addedregion.get_current
    • Addedregion.list_supported
    • Addedregion.set_current
    • Changedvision.outfit.detect_pieces4 fields changed
      • changedInput schema / properties / image_base64 / description
        Previous value: -"Base64-encoded image string for outfit piece detection"New value: +"Base64-encoded image data string for outfit piece detection"
      • changedInput schema / properties / image_path / description
        Previous value: -"Local path to the outfit image file to deconstruct"New value: +"Local file system path to the outfit image file to deconstruct"
      • changedInput schema / properties / threshold / description
        Previous value: -"Confidence threshold for object detection bounding boxes (0.05 to 0.95)"New value: +"Confidence threshold for object detection bounding boxes (0.05 to 0.95, default 0.22)"
      • changedOutput schema / (root)
        Previous value: -{
        -  "$schema": "http://json-schema.org/draft-07/schema#",
        -  "additionalProperties": false,
        -  "properties": {
        -    "pieces": {
        -      "description": "List of detected fashion pieces",
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "box": {
        -            "description": "Normalized bounding box coordinates [ymin, xmin, ymax, xmax]",
        -            "items": {
        -              "type": "number"
        -            },
        -            "type": "array"
        -          },
        -          "confidence": {
        -            "description": "Confidence score between 0.0 and 1.0",
        -            "type": "number"
        -          },
        -          "label": {
        -            "description": "Detected clothing category (e.g. Upper-body garment, Lower-body garment, Footwear, Bag)",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "label",
        -          "confidence",
        -          "box"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "pieces"
        -  ],
        -  "type": "object"
        -}New value: +null
  2. 20 tool updates
    • Removedcheck_variant_availability
    • Addedcheckout.links.get_direct_url
    • Removeddetect_fashion_pieces
    • Removedget_direct_checkout_url
    • Removedget_looks_by_occasion
    • Removedget_product_by_handle
    • Removedget_recommended_outfits
    • Addedlooks.curation.by_occasion
    • Addedlooks.curation.recommend
    • Addedproducts.items.check_stock
    • Addedproducts.items.get_by_handle
    • Addedproducts.search.alternatives
    • Addedproducts.search.image_upload
    • Addedproducts.search.image_url
    • Addedproducts.search.text
    • Removedsearch_alternatives_in_budget
    • Removedsearch_products_image
    • Removedsearch_products_image_upload
    • Removedsearch_products_text
    • Addedvision.outfit.detect_pieces
  3. 10 tool updates
    • First observedcheck_variant_availability
    • First observeddetect_fashion_pieces
    • First observedget_direct_checkout_url
    • First observedget_looks_by_occasion
    • First observedget_product_by_handle
    • First observedget_recommended_outfits
    • First observedsearch_alternatives_in_budget
    • First observedsearch_products_image
    • First observedsearch_products_image_upload
    • First observedsearch_products_text

Publisher details

Operator
Rofoso Consumer Private Limited · Publisher source
Operator website
https://polopan.com
Vendor relationship
First-party
Restrictions
Totally free. No limit on usage

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources