fashion.vitrine/trend-index
Registry code: edf6130d2c32e11d
Vitrine is a curated index of trending fashion, accessories and interior pieces. Use search for a shopper's request (free text plus hard filters and an optional taste profile), trending for what is hot or rising now, get_item for full details on one item, and find_similar for alternatives (for example cheaper or in stock). Show each result's why line, then send the person to outbound_url: checkout always happens at the retailer, and Vitrine never sells or takes payment. Never send names, emails or other personal data. Anonymous calls get 5 basic results; a free key (POST…
- endpoint
- https://vitrine.fashion/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is fashion.vitrine/trend-index live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is fashion.vitrine/trend-index free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does fashion.vitrine/trend-index have?
- 4 tools: get_item, find_similar, search, trending.
- Is fashion.vitrine/trend-index safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 4 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
search open 1h ago
Find fashion, accessories or interior pieces for a shopper's request. Use this first for any need stated in words ('a quiet luxury bag for work under $1,000'); use trending when there is no specific need, and find_similar to vary an item you already have. Hard filters (category, tier, price, colors, size, brand, availability, ship_to) exclude items outright; the optional taste_profile only reranks. Returns 5 to 20 items ranked by text match, taste and trend, each with price, availability, image, trend status, a one-line 'why' and an outbound_url to the retailer, where checkout happens. No pagination; an empty list means nothing fits, so loosen filters. 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 <key>') unlocks them. Rate limits: 10 calls a minute anonymous, 60 with a key.
{ "type": "object", "properties": { "agent": { "anyOf": [ { "type": "object", "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "e.g. 'acme-shopper'" }, "locale": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "default": null, "description": "e.g. 'en-GB'" }, "version": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "null" } ], "default": null }, "platform": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "Platform or developer" }, "session_id": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "default": null, "description": "Your own opaque id linking calls in one shopping session. Never a user id." } }, "description": "Optional self-identification. Identified callers help us rank better; keys make it reliable." }, { "type": "null" } ], "default": null }, "limit": { "type": "integer", "default": 10, "maximum": 20, "minimum": 5, "description": "Maximum results, 5 to 20. Anonymous callers get 5. No pagination." }, "query": { "type": "string", "default": "", "maxLength": 300, "description": "Free text, e.g. 'relaxed linen trousers for a summer trip'. Max 300 characters." }, "filters": { "type": "object", "properties": { "size": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 1 }, { "type": "null" } ], "default": null, "description": "Item must be available in this size, e.g. 'M' or '32'." }, "tier": { "anyOf": [ { "enum": [ "luxury_anchor", "trend_brand", "streetwear", "sneakers", "resale_vintage", "accessories_interior" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Catalog tier, see CATALOG_TIERS.md." }, "brand": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null }, "colors": { "anyOf": [ { "type": "array", "items": { "type": "string", "maxLength": 40, "minLength": 1 }, "maxItems": 20 }, { "type": "null" } ], "default": null, "description": "Item must come in at least one of these colors." }, "ship_to": { "anyOf": [ { "type": "string", "pattern": "^[A-Za-z]{2}$" }, { "type": "null" } ], "default": null, "description": "ISO country code, e.g. 'US', 'FR', 'GB'." }, "category": { "anyOf": [ { "enum": [ "fashion", "accessories", "interior" ], "type": "string" }, { "type": "null" } ], "default": null }, "max_price": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null }, "min_price": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null }, "availability": { "anyOf": [ { "type": "array", "items": { "enum": [ "in_stock", "low_stock", "preorder", "out_of_stock" ], "type": "string" } }, { "type": "null" } ], "default": null, "description": "Allowed availability states." } }, "description": "Hard filters. Applied before ranking; an item that fails any of them is never returned.", "additionalProperties": false }, "taste_profile": { "anyOf": [ { "type": "object", "properties": { "style_tags": { "type": "array", "items": { "type": "string", "maxLength": 40, "minLength": 1 }, "maxItems": 20, "description": "e.g. minimal, tailored, relaxed, vintage" }, "price_comfort": { "anyOf": [ { "type": "object", "properties": { "max": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null }, "min": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null } } }, { "type": "null" } ], "default": null }, "avoided_colors": { "type": "array", "items": { "type": "string", "maxLength": 40, "minLength": 1 }, "maxItems": 20 }, "preferred_colors": { "type": "array", "items": { "type": "string", "maxLength": 40, "minLength": 1 }, "maxItems": 20 } }, "description": "Soft preferences from the shopper's agent. Used for ranking, never for exclusion.\nDescribe taste only: no names, emails or other personal data.", "additionalProperties": false }, { "type": "null" } ], "default": null } } }arguments 321 linestrending open 1h ago
List what is hot or rising right now, ranked by trend score (0 to 100), optionally within one category (fashion, accessories, interior) or tier. Use it for open questions like 'what's trending in bags'; use search when the shopper has a specific need. 'hot' means confirmed by demand data, 'rising' means early momentum not yet confirmed. Returns 5 to 20 items in the same shape as search, plus meta.updated_at. 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 <key>') unlocks them. Rate limits: 10 calls a minute anonymous, 60 with a key.
{ "type": "object", "properties": { "tier": { "anyOf": [ { "enum": [ "luxury_anchor", "trend_brand", "streetwear", "sneakers", "resale_vintage", "accessories_interior" ], "type": "string" }, { "type": "null" } ], "default": null }, "agent": { "anyOf": [ { "type": "object", "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "e.g. 'acme-shopper'" }, "locale": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "default": null, "description": "e.g. 'en-GB'" }, "version": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "null" } ], "default": null }, "platform": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "Platform or developer" }, "session_id": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "default": null, "description": "Your own opaque id linking calls in one shopping session. Never a user id." } }, "description": "Optional self-identification. Identified callers help us rank better; keys make it reliable." }, { "type": "null" } ], "default": null }, "limit": { "type": "integer", "default": 10, "maximum": 20, "minimum": 5, "description": "5 to 20. Anonymous callers get 5." }, "category": { "anyOf": [ { "enum": [ "fashion", "accessories", "interior" ], "type": "string" }, { "type": "null" } ], "default": null } } }arguments 125 linesget_item unknown never probed
Get the full record for one item, using an id from a search, trending or find_similar result. Use it before recommending a piece, to check sizes, materials, colors, shipping regions and seller. With a key it adds silhouette, occasion, season and trend data. Returns {item, meta}. An unknown id returns an error result telling you to search again. 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 <key>') unlocks them. Rate limits: 10 calls a minute anonymous, 60 with a key.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "pattern": "^[A-Za-z0-9._-]+$", "maxLength": 120, "minLength": 1, "description": "Item id from a search, trending or find_similar result." }, "agent": { "anyOf": [ { "type": "object", "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "e.g. 'acme-shopper'" }, "locale": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "default": null, "description": "e.g. 'en-GB'" }, "version": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "null" } ], "default": null }, "platform": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "Platform or developer" }, "session_id": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "default": null, "description": "Your own opaque id linking calls in one shopping session. Never a user id." } }, "description": "Optional self-identification. Identified callers help us rank better; keys make it reliable." }, { "type": "null" } ], "default": null } } }arguments 93 linesfind_similar unknown 1h ago
Find alternatives to one item (by id from an earlier result): pieces close in style, the same product type first. Use it for 'something like this but cheaper' (filters.max_price), 'but in stock' (filters.availability) or a different color. The source item is never included. Returns {anchor, count, results} in the search result shape, each with a 'why' naming the shared style. An unknown id returns an error result; an empty list means no alternative passes the filters. 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 <key>') unlocks them. Rate limits: 10 calls a minute anonymous, 60 with a key.
{ "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "pattern": "^[A-Za-z0-9._-]+$", "maxLength": 120, "minLength": 1, "description": "The item to find alternatives for." }, "agent": { "anyOf": [ { "type": "object", "properties": { "name": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "e.g. 'acme-shopper'" }, "locale": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "default": null, "description": "e.g. 'en-GB'" }, "version": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "null" } ], "default": null }, "platform": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null, "description": "Platform or developer" }, "session_id": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "default": null, "description": "Your own opaque id linking calls in one shopping session. Never a user id." } }, "description": "Optional self-identification. Identified callers help us rank better; keys make it reliable." }, { "type": "null" } ], "default": null }, "limit": { "type": "integer", "default": 10, "maximum": 20, "minimum": 5, "description": "5 to 20. Anonymous callers get 5." }, "filters": { "type": "object", "properties": { "size": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 1 }, { "type": "null" } ], "default": null, "description": "Item must be available in this size, e.g. 'M' or '32'." }, "tier": { "anyOf": [ { "enum": [ "luxury_anchor", "trend_brand", "streetwear", "sneakers", "resale_vintage", "accessories_interior" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Catalog tier, see CATALOG_TIERS.md." }, "brand": { "anyOf": [ { "type": "string", "maxLength": 80 }, { "type": "null" } ], "default": null }, "colors": { "anyOf": [ { "type": "array", "items": { "type": "string", "maxLength": 40, "minLength": 1 }, "maxItems": 20 }, { "type": "null" } ], "default": null, "description": "Item must come in at least one of these colors." }, "ship_to": { "anyOf": [ { "type": "string", "pattern": "^[A-Za-z]{2}$" }, { "type": "null" } ], "default": null, "description": "ISO country code, e.g. 'US', 'FR', 'GB'." }, "category": { "anyOf": [ { "enum": [ "fashion", "accessories", "interior" ], "type": "string" }, { "type": "null" } ], "default": null }, "max_price": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null }, "min_price": { "anyOf": [ { "type": "number", "minimum": 0 }, { "type": "null" } ], "default": null }, "availability": { "anyOf": [ { "type": "array", "items": { "enum": [ "in_stock", "low_stock", "preorder", "out_of_stock" ], "type": "string" } }, { "type": "null" } ], "default": null, "description": "Allowed availability states." } }, "description": "Hard filters. Applied before ranking; an item that fails any of them is never returned.", "additionalProperties": false } } }arguments 245 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idedf6130d2c32e11d.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/edf6130d2c32e11d/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/edf6130d2c32e11d?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.