Skip to main content
Glama

Vitrine: Trending Fashion, Luxury, Sneakers & Design

Complete the look

complete_the_look
Read-onlyIdempotent

Build around one item (by id from an earlier result). For fashion it returns one piece per missing slot of an outfit (layer, top, bottom, shoes, bag, accessory; a dress skips top and bottom); for an interior piece it returns the other objects of a room (lamp, vase, table, textiles). Pieces are chosen for shared style, color harmony, shared occasion, season and a similar price tier, and never from the item's own slot. Use it for 'what goes with this', 'style this' or 'finish the room'; use find_similar for alternatives to the item itself. Filters apply to every added piece (for example max_price per piece, size or ship_to). Returns {anchor, kind, count, pieces}, each piece with a slot label and, with a key, a 'why'. An unknown id returns an error result. Read-only. Without a key, results are capped at 5 and omit trend data and match reasons; a free key (POST https://vitrine.fashion/v1/keys, sent as 'Authorization: Bearer ') unlocks them. Rate limits: 10 calls a minute anonymous, 60 with a key.

Input Schema

NameRequiredDescriptionDefault
idYesThe item to build around, from an earlier result.
agentNo
filtersNoHard filters. Applied before ranking; an item that fails any of them is never returned.

Output Schema

NameRequiredDescriptionDefault
kindYes
metaYes
countYes
anchorYes
piecesYes
query_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / filters / properties / subcategory
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Product type, e.g. 'coat', 'sneakers', 'vase'. Exact values: vocabulary."
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / filters / properties / gender
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "women",
      +        "men",
      +        "unisex"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Department: women, men or unisex. 'men' returns men's and unisex pieces, 'women' returns women's and unisex pieces, 'unisex' returns unisex pieces only. Set gender_exact to true to drop the unisex pieces."
      +}
    • addedInput schema / properties / filters / properties / gender_exact
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "With gender, true matches that department only, without unisex pieces."
      +}
    • addedOutput schema / properties / pieces / items / properties / gender
      Added value: +{
      +  "description": "Department. Accessories and interior are usually unisex.",
      +  "enum": [
      +    "women",
      +    "men",
      +    "unisex"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, non-destructive, idempotent), and the description goes well beyond them: an unknown id returns an error, filters apply to every added piece rather than the anchor, pieces never come from the anchor's own slot, anonymous results are capped at 5 and omit trend data and match reasons, and rate limits (10/min anonymous, 60/min keyed) plus the key-acquisition endpoint are spelled out. That is exactly the operational context annotations cannot carry.

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?

It is dense but front-loaded: the core behavior comes first, then usage routing, then filters, then return shape, then auth and rate limits. The return-shape sentence partially duplicates the output schema, and the key/rate-limit material could be tightened, but no sentence is pure filler.

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

Completeness5/5

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

For a tool with three parameters, a nested filter object and a declared output schema, everything an agent needs is present: anchor requirements, slot logic, per-piece filtering, degraded anonymous mode, error behavior, and key/rate-limit mechanics. Nothing material is left for the caller to infer.

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 67%, so the schema documents most fields already, but the description adds genuine semantics the schema does not: filters are per-added-piece (max_price is the ceiling for each piece, not the total) and the id must be one returned by an earlier call. The optional 'agent' identity object and the tier/gender interactions are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation ('build around one item by id') and then spells out exactly what is produced for each catalog domain: one piece per missing outfit slot for fashion (with the dress exception) and the complementary objects for interiors. This is far more than a restatement of the name 'complete_the_look' and makes the tool's behavior predictable before any schema is opened.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger phrases ('what goes with this', 'style this', 'finish the room') and names a concrete alternative with the condition that selects it ('use find_similar for alternatives to the item itself'). The gap is that shop_the_look is the nearest sibling and is never mentioned, so an agent must guess which of the two framing tools to pick.

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.

Resources