Skip to main content
Glama

Get Looks By Occasion

looks.curation.by_occasion
Read-only

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.

Input 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)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema 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"
  2. Changed1 schema field changed
    • 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
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only/non-destructive, but the description adds real behavioral context beyond them: automatic exclusion of any look with an out-of-stock item, localization to active country/240+ regions, enrichment with purchase links and policy data, and the negative-return-days convention. This is well above the annotation baseline.

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 purpose and routing, then organized into labeled sections that scan well. It is on the long side, and the MANDATORY AGENT INSTRUCTIONS (table rendering, checkout-link timing) lean prescriptive rather than descriptive, but each section is relevant to correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return burden and does so reasonably: it covers in-stock filtering, localization, purchase-link format, and policy data. It could say more about response structure (e.g. how looks and their constituent items are grouped), which is the remaining gap for a complex 8-parameter tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds value: it lists the valid occasion themes, interprets the gender enum ('women' or 'men'), and gives richer country examples ('US', 'United States', 'UK', 'Dubai', 'CA', 'IN') than the schema. It does not, however, explain interaction between page/page_size or mode defaults in new ways.

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+resource ('Discover complete curated fashion looks styled for specific occasions') and enumerates concrete occasions. It explicitly contrasts itself with products.search.text (individual products) and looks.curation.recommend (seed-product-based), so an agent can distinguish it from siblings without opening any 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?

Dedicated WHEN TO USE and WHEN NOT TO USE sections name the two alternatives and the exact conditions that select them ('outfit inspiration for events' vs 'single product category' vs 'coordinating around a specific item'). Routing is explicit and leaves nothing 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.