Vistoya MCP
A Model Context Protocol server that enables AI agents to search, discover, and recommend fashion products across a curated multi-brand marketplace. It supports semantic search, finding similar products or brands, and browsing by structured filters like category, price, and style.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.vistoya.com/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for fashion products using natural language queries
- Find visually and semantically similar products to a given item
- Discover brands based on style, origin, or aesthetic
- Browse products using structured filters like price, color, and category
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- v-marketplace 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- 42 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Tools
6 advertised
discover_products
Find fashion products using natural language and/or structured filters. Provide a `query` for semantic ranking via multimodal text+image embeddings ("oversized wool coat", "black leather jacket", "minimalist gold jewelry", "linen shirt for a beach wedding under $200") — best for open-ended discovery. Keep queries concrete: noun-led with up to one or two modifiers works best ("summer linen shirt" beats "breathable linen shirt perfect for summer"). Provide only structured filters (category, brand, colors, gender, price, etc.) for pure browse — results are recency-ranked and paginate cleanly. Combine both for filtered semantic search. At least one of query or a filter must be provided. Example calls (notice the sparse filter population — descriptive attributes stay in `query`, not in structured fields): - "linen wedding guest dress under $200" → {query: "linen wedding guest dress", gender: "women", max_price: 200, materials: ["linen"]} - "wool coat under $300" → {query: "wool coat", gender: "women", max_price: 300, materials: ["wool"]} - "browse women's black dresses $100-$300" → {gender: "women", category: "clothing/dresses", colors: ["black"], min_price: 100, max_price: 300} - "Acne Studios outerwear" → {query: "outerwear", brand: "Acne Studios", gender: "women"} Returns compact product cards: AI-generated summary, price, images, tags, and compact availability by color/size; variant price differences are nested under the availability dimension that determines price. For merchant description, store info, SKU-level variants, exact variant prices, and all product images, call get_product with a product ID from these results. Multi-currency prices supported (e.g. "under 200 zł" or min_price=200 + currency="PLN"); returned prices render in the requested currency when provided.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number. Increment while the response indicates another page. Vistoya results are returned first; a later page may continue with an optional external catalog after owned results are exhausted. Provider failure does not fail normal discovery."
},
"brand": {
"type": "string",
"maxLength": 200,
"description": "Filter by brand name"
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 20,
"minimum": 1,
"description": "Page size (1-20, default 12)"
},
"query": {
"type": "string",
"maxLength": 500,
"description": "Natural language search query — be descriptive for best results. Can include price with currency symbols (e.g. \"white coat under 200 zł\") which will be parsed automatically. Optional: when omitted, results are filtered by the structured fields below and ranked by recency. Provide either a query, structured filters, or both."
},
"colors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Filter by lowercase colors: e.g. [\"black\", \"navy\", \"sage green\"]"
},
"gender": {
"enum": [
"women",
"men",
"unisex",
"boys",
"girls"
],
"type": "string",
"description": "Gender filter."
},
"season": {
"enum": [
"spring",
"summer",
"fall",
"winter",
"all-season"
],
"type": "string",
"description": "Season filter. Soft descriptor — set ONLY when the user explicitly named the season. The `query` field already captures season semantically; over-specifying is the most common cause of zero-result calls."
},
"styles": {
"type": "array",
"items": {
"enum": [
"minimalist",
"streetwear",
"elegant",
"avant-garde",
"grunge",
"vintage",
"y2k",
"techwear",
"workwear",
"preppy",
"punk",
"sportswear",
"coquette",
"quiet-luxury",
"old-money",
"gorpcore",
"goth",
"basics",
"boho",
"glam",
"classic",
"western"
],
"type": "string"
},
"maxItems": 20,
"description": "Style filter (OR semantics — a product matches if any of its `styles` values is in this list). Pass a single value to filter by one style (\"styles\": [\"minimalist\"]); pass several to span a related set (\"styles\": [\"basics\", \"minimalist\", \"preppy\", \"sportswear\"] for a \"Casual\" bucket). Soft descriptor — set ONLY when the user explicitly named one or more styles. The `query` field already captures style semantically; over-specifying is the most common cause of zero-result calls."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
},
"pattern": {
"enum": [
"solid",
"stripe",
"checked",
"floral",
"polka dot",
"camouflage",
"logo"
],
"type": "string",
"description": "Pattern filter (e.g. solid, stripe, checked, floral). Soft descriptor — set ONLY when the user explicitly named the pattern. Default for unspecified (\"solid\") leaks into queries and zeros the candidate set; omit when unsure."
},
"sleeves": {
"enum": [
"sleeveless",
"short-sleeve",
"long-sleeve",
"three-quarter",
"cap-sleeve",
"puff",
"balloon",
"bishop",
"bell",
"dolman"
],
"type": "string",
"description": "Sleeve style filter. Soft descriptor — set ONLY when the user explicitly named the sleeve style. Do not infer from category or query."
},
"category": {
"type": "string",
"maxLength": 200,
"description": "Category slug, e.g. \"clothing\", \"clothing/jackets\", \"clothing/jackets/bomber-jackets\". Accepts last-segment shortcuts when unambiguous — e.g. \"loafers-and-slip-ons\" resolves the same as \"shoes/loafers-and-slip-ons\", and \"bomber-jackets\" resolves the same as \"clothing/jackets/bomber-jackets\"."
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code for min_price/max_price (e.g. \"PLN\", \"EUR\", \"GBP\"). Prices are converted to USD for filtering. Omit for USD."
},
"neckline": {
"enum": [
"v-neck",
"crewneck",
"scoop",
"square",
"halter",
"off-shoulder",
"one-shoulder",
"sweetheart",
"turtleneck",
"mock-neck",
"boat-neck",
"cowl",
"asymmetric",
"plunge",
"high-neck",
"collared",
"strapless"
],
"type": "string",
"description": "Neckline filter. Soft descriptor — set ONLY when the user explicitly named the neckline. Do not infer from category or query."
},
"occasion": {
"enum": [
"casual",
"formal",
"business",
"party",
"outdoor",
"beach"
],
"type": "string",
"description": "Occasion filter. Soft descriptor — set ONLY when the user explicitly named the occasion. The `query` field already captures occasion semantically; over-specifying is the most common cause of zero-result calls."
},
"materials": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Filter by lowercase materials: e.g. [\"cotton\", \"silk\", \"leather\"]"
},
"max_price": {
"type": "number",
"maximum": 100000,
"minimum": 0.01,
"description": "Maximum price (in the currency specified by \"currency\" param, or USD if omitted)"
},
"min_price": {
"type": "number",
"maximum": 100000,
"minimum": 0.01,
"description": "Minimum price (in the currency specified by \"currency\" param, or USD if omitted)"
},
"silhouette": {
"enum": [
"fitted",
"slim",
"regular",
"relaxed",
"oversized",
"tailored",
"boxy"
],
"type": "string",
"description": "Silhouette/fit filter (e.g. fitted, slim, regular, relaxed, oversized). Soft descriptor — set ONLY when the user explicitly named the fit. The `query` field already captures silhouette semantically; over-specifying is the most common cause of zero-result calls."
},
"color_match": {
"enum": [
"any",
"exact"
],
"type": "string",
"default": "any",
"description": "Color matching mode. \"any\" (default): product has at least one of the queried colors. \"exact\": product has at least one image where the ONLY colors are the queried colors — use for mono-color searches like \"all black\"."
},
"store_domain": {
"type": "string",
"maxLength": 253,
"description": "Filter by store domain (e.g. \"thereformation.com\"). Accepts forms with protocol, www, locale subdomain, or path — they are normalized to match the registered store."
},
"exclude_colors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Exclude products with these colors: e.g. [\"white\", \"beige\"]"
},
"is_sustainable": {
"type": "boolean",
"description": "True when the user explicitly wants products with sustainability claims."
},
"available_sizes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Filter by available size labels, e.g. [\"s\", \"m\", \"38\"]."
},
"exclude_materials": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Exclude products with these materials: e.g. [\"polyester\", \"nylon\"]"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"products",
"page",
"hasNextPage",
"marketUrl"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"price",
"currency",
"availability"
],
"properties": {
"id": {
"type": "string"
},
"brand": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"inStock": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"currency": {
"type": "string"
},
"productUrl": {
"type": "string"
},
"availability": {
"type": "object",
"required": [
"dimensions",
"color",
"sizes"
],
"properties": {
"color": {
"type": "array",
"items": {
"type": "object",
"required": [
"colorKey",
"color",
"label",
"availableSizes"
],
"properties": {
"color": {
"type": "string"
},
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"availableSizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"inStock": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"sizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"required": [
"inStock"
],
"properties": {
"sku": {
"type": "string"
},
"size": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"compareAtPrice": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
}
},
"dimensions": {
"type": "array",
"items": {
"enum": [
"color",
"size"
],
"type": "string"
}
}
},
"additionalProperties": false
},
"compareAtPrice": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
}
},
"marketUrl": {
"type": "string"
},
"hasNextPage": {
"type": "boolean"
},
"externalCatalogStatus": {
"enum": [
"temporarily_unavailable",
"continuation_expired"
],
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}find_similar_products
Given a product ID, find similar products across the entire catalog. Useful for "more like this" recommendations or finding alternatives. Returns compact product cards, not full variant detail; call get_product for SKU-level variants, exact variant prices, merchant description, store info, and all images. Returns page and hasNextPage. Returns up to 20 results per page, paginated (max 3 pages).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_id"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 3,
"minimum": 1,
"description": "Page number (1-3)"
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 20,
"minimum": 1,
"description": "Page size (1-20)"
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code to render prices in (e.g. \"GBP\", \"EUR\", \"USD\"). Defaults to USD. Stored native prices are preferred; falls back to FX conversion when a merchant-set price isn't available."
},
"product_id": {
"type": "string",
"description": "The product ID (from a previous search result)"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"page",
"hasNextPage",
"products"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"price",
"currency",
"availability"
],
"properties": {
"id": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"brand": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
},
"title": {
"type": "string"
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"gender": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"inStock": {
"type": "boolean"
},
"sleeves": {
"type": "string"
},
"summary": {
"type": "string"
},
"category": {
"type": "string"
},
"closures": {
"type": "array",
"items": {
"type": "string"
}
},
"currency": {
"type": "string"
},
"neckline": {
"type": "string"
},
"materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productUrl": {
"type": "string"
},
"silhouette": {
"type": "string"
},
"availability": {
"type": "object",
"required": [
"dimensions",
"color",
"sizes"
],
"properties": {
"color": {
"type": "array",
"items": {
"type": "object",
"required": [
"colorKey",
"color",
"label",
"availableSizes"
],
"properties": {
"color": {
"type": "string"
},
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"availableSizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"inStock": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"sizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"required": [
"inStock"
],
"properties": {
"sku": {
"type": "string"
},
"size": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"compareAtPrice": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
}
},
"dimensions": {
"type": "array",
"items": {
"enum": [
"color",
"size"
],
"type": "string"
}
}
},
"additionalProperties": false
},
"isSustainable": {
"type": "boolean"
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"relevanceScore": {
"type": "number"
},
"similarityScore": {
"type": "number"
}
},
"additionalProperties": false
}
},
"hasNextPage": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}discover_brands
Find fashion brands using natural language, structured filters, or both. Best for queries like "Italian streetwear brands", "Scandinavian minimalist brands", "Japanese technical outerwear", "brands with avant-garde tailoring", or qualified similarity such as "brands like Rick Owens for technical outerwear". For a plain "brands like X" request, use find_similar_brands. Country adjectives ("Italian", "Scandinavian", "Nordic", "Japanese", "Iberian", "Benelux") are parsed server-side into shipping-origin filters; you don't need to translate them to ISO codes. `query` is optional — provide a query, structured filters, or both. Brand country/shipping signals are best-effort and separate from product availability.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 12,
"maximum": 20,
"minimum": 1,
"description": "Maximum number of brands to return (1-20, default 12)."
},
"query": {
"type": "string",
"maxLength": 500,
"description": "Natural language brand search query, e.g. \"Italian streetwear brands\", \"Scandinavian minimalist brands\", \"Japanese technical outerwear\", or qualified similarity such as \"brands like Rick Owens for technical outerwear\". Use find_similar_brands for a plain \"brands like X\" request. Similarity seeds must resolve to an active catalog brand or merged alias; unknown or ambiguous seeds return no brands. Country adjectives are parsed server-side — no need to translate them into ISO codes. Optional: when omitted, results are filtered by the structured fields below."
},
"style": {
"enum": [
"minimalist",
"streetwear",
"elegant",
"avant-garde",
"grunge",
"vintage",
"y2k",
"techwear",
"workwear",
"preppy",
"punk",
"sportswear",
"coquette",
"quiet-luxury",
"old-money",
"gorpcore",
"goth",
"basics",
"boho",
"glam",
"classic",
"western"
],
"type": "string",
"description": "Optional style filter, e.g. streetwear, minimalist, elegant, avant-garde, techwear."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
},
"price_tier": {
"enum": [
"budget",
"mid",
"premium",
"luxury"
],
"type": "string",
"description": "Optional public brand price-tier focus filter: budget, mid, premium, or luxury. Input \"budget\" maps to the brand-level output tier \"value\"."
},
"gender_focus": {
"type": "array",
"items": {
"enum": [
"women",
"men",
"unisex",
"boys",
"girls"
],
"type": "string"
},
"maxItems": 20,
"description": "Optional brand audience focus filters."
},
"category_focus": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Optional brand category focus filters, e.g. [\"clothing\", \"shoes\"]."
},
"ships_from_country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional ISO-3166-1 alpha-2 country filter for best-effort store shipping origin, e.g. \"IT\", \"US\", \"GB\". Lowercase input is accepted and normalized to uppercase. This is not the same as brand origin."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"brands"
],
"properties": {
"brands": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"about": {
"type": "string"
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"genders": {
"type": "array",
"items": {
"type": "string"
}
},
"materials": {
"type": "array",
"items": {
"type": "string"
}
},
"priceTier": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"countryOfOrigin": {
"type": "string"
},
"similarityScore": {
"type": "number"
},
"shipsFromCountries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}find_similar_brands
Given an active catalog brand name or merged alias, find similar brands using brand-profile vectors generated during product indexing. Unknown or ambiguous seeds return no brands. Returns up to 20 brands.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"brand"
],
"properties": {
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Brand name (case-insensitive), e.g. \"Rick Owens\"."
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 20,
"minimum": 1
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"brands"
],
"properties": {
"brands": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"about": {
"type": "string"
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
},
"domains": {
"type": "array",
"items": {
"type": "string"
}
},
"genders": {
"type": "array",
"items": {
"type": "string"
}
},
"materials": {
"type": "array",
"items": {
"type": "string"
}
},
"priceTier": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"countryOfOrigin": {
"type": "string"
},
"similarityScore": {
"type": "number"
},
"shipsFromCountries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}get_product
Get the detailed response for a specific product ID. Use this after discover_products or find_similar_products when you need merchant description, store info, all images, SKU-level availability variants, SKU, colorKey/size matrix, exact variant prices/compareAtPrice in the requested currency, and the direct link to purchase.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_id"
],
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
},
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code to render prices in (e.g. \"GBP\", \"EUR\", \"USD\"). Defaults to USD."
},
"product_id": {
"type": "string",
"description": "The product ID (from a previous search result)"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"price",
"currency",
"availability"
],
"properties": {
"id": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"brand": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
},
"store": {
"anyOf": [
{
"type": "object",
"required": [
"name",
"domain"
],
"properties": {
"name": {
"type": "string"
},
"domain": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"title": {
"type": "string"
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"gender": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"inStock": {
"type": "boolean"
},
"sleeves": {
"type": "string"
},
"summary": {
"type": "string"
},
"category": {
"type": "string"
},
"closures": {
"type": "array",
"items": {
"type": "string"
}
},
"currency": {
"type": "string"
},
"neckline": {
"type": "string"
},
"materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productUrl": {
"type": "string"
},
"silhouette": {
"type": "string"
},
"availability": {
"type": "object",
"required": [
"dimensions",
"color",
"sizes"
],
"properties": {
"color": {
"type": "array",
"items": {
"type": "object",
"required": [
"colorKey",
"color",
"label",
"availableSizes"
],
"properties": {
"color": {
"type": "string"
},
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"availableSizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"inStock": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"sizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"inStock"
],
"properties": {
"label": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"priceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"compareAtPriceRange": {
"type": "object",
"required": [
"min",
"max",
"currency"
],
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"variants": {
"type": "array",
"items": {
"type": "object",
"required": [
"inStock"
],
"properties": {
"sku": {
"type": "string"
},
"size": {
"type": "string"
},
"price": {
"type": "number"
},
"inStock": {
"type": "boolean"
},
"colorKey": {
"type": "string"
},
"currency": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"compareAtPrice": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
}
},
"dimensions": {
"type": "array",
"items": {
"enum": [
"color",
"size"
],
"type": "string"
}
}
},
"additionalProperties": false
},
"isSustainable": {
"type": "boolean"
},
"compareAtPrice": {
"type": [
"number",
"null"
]
},
"relevanceScore": {
"type": "number"
},
"similarityScore": {
"type": "number"
},
"merchantDescription": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}get_filters
Returns available filter values in the catalog. By default returns categoryTree plus brands, colors, materials, genders, occasions, seasons, styles, silhouettes, currencies, and price range. Use "fields" to request only specific dimensions — faster and less data. "categoryTree" is a flat DFS-ordered list of { value, label } entries; hierarchy is encoded in the value slug (e.g. "clothing/jackets/bomber-jackets"), parents appear before descendants, and every value can be passed directly to discover_products.category. Use "brand_search" to search brands by prefix instead of listing all. Pass "gender" to scope categoryTree to that gender (women/men/girls/boys); omit to see the merged union.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fields": {
"type": "array",
"items": {
"enum": [
"categoryTree",
"brands",
"colors",
"materials",
"genders",
"occasions",
"seasons",
"styles",
"silhouettes",
"patterns",
"currencies",
"priceRange"
],
"type": "string"
},
"description": "Which filter dimensions to return. Omit for all. Example: [\"categoryTree\", \"colors\", \"priceRange\"]"
},
"gender": {
"enum": [
"women",
"men",
"unisex",
"boys",
"girls"
],
"type": "string",
"description": "Scope categoryTree to this gender. Omit to return the merged union across women/men/girls/boys."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Optional shopper location as an ISO-3166-1 alpha-2 country code (e.g. \"US\", \"GB\", \"DE\"). Recorded for analytics and used to improve future offer geo-matching. Omit if unknown — absence preserves current behavior."
},
"brand_page": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number for brands (12 per page). Use with or without brand_search."
},
"brand_search": {
"type": "string",
"maxLength": 100,
"description": "Search brands by name (case-insensitive, prefix matches first). Only affects the brands field."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"brands": {
"type": "array",
"items": {
"type": "string"
}
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
},
"genders": {
"type": "array",
"items": {
"type": "string"
}
},
"seasons": {
"type": "array",
"items": {
"type": "string"
}
},
"patterns": {
"type": "array",
"items": {
"type": "string"
}
},
"materials": {
"type": "array",
"items": {
"type": "string"
}
},
"occasions": {
"type": "array",
"items": {
"type": "string"
}
},
"currencies": {
"type": "array",
"items": {
"type": "string"
}
},
"priceRange": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": [
"number",
"null"
]
},
"min": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
"silhouettes": {
"type": "array",
"items": {
"type": "string"
}
},
"categoryTree": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"label"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
42 advertised
Vistoya product-list widget
Vistoya product-list widget (MCP-Apps spec — Claude Desktop, Cursor, VS Code Copilot, Goose).
ui://widget/product-list-v23.htmlVistoya product-list widget (ui://widget/product-list-v22.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v22.htmlVistoya product-list widget (ui://widget/product-list-v21.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v21.htmlVistoya product-list widget (ui://widget/product-list-v20.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v20.htmlVistoya product-list widget (ui://widget/product-list-v19.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v19.htmlVistoya product-list widget (ui://widget/product-list-v18.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v18.htmlVistoya product-list widget (ui://widget/product-list-v17.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v17.htmlVistoya product-list widget (ui://widget/product-list-v16.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v16.htmlVistoya product-list widget (ui://widget/product-list-v15.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v15.htmlVistoya product-list widget (ui://widget/product-list-v14.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v14.htmlVistoya product-list widget (ui://widget/product-list-v13.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v13.htmlVistoya product-list widget (ui://widget/product-list-v12.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v12.htmlVistoya product-list widget (ui://widget/product-list-v11.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v11.htmlVistoya product-list widget (ui://widget/product-list-v10.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v10.htmlVistoya product-list widget (ui://widget/product-list-v9.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v9.htmlVistoya product-list widget (ui://widget/product-list-v8.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v8.htmlVistoya product-list widget (ui://widget/product-list-v7.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v7.htmlVistoya product-list widget (ui://widget/product-list-v6.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v6.htmlVistoya product-list widget (ui://widget/product-list-v5.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v5.htmlVistoya product-list widget (ui://widget/product-list-v4.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v4.htmlVistoya product-list widget (ui://widget/product-list-v3.html compatibility)
Current Vistoya product-list widget for clients with cached metadata.
ui://widget/product-list-v3.htmlvistoya-product-list-widget-skybridge — Vistoya product-list widget (ChatGPT)
Vistoya product-list widget for ChatGPT Apps SDK (Skybridge MIME).
ui://widget/product-list-v23.skybridge.htmlvistoya-product-list-widget-skybridge-compat-0 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v22.skybridge.htmlvistoya-product-list-widget-skybridge-compat-1 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v21.skybridge.htmlvistoya-product-list-widget-skybridge-compat-2 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v20.skybridge.htmlvistoya-product-list-widget-skybridge-compat-3 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v19.skybridge.htmlvistoya-product-list-widget-skybridge-compat-4 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v18.skybridge.htmlvistoya-product-list-widget-skybridge-compat-5 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v17.skybridge.htmlvistoya-product-list-widget-skybridge-compat-6 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v16.skybridge.htmlvistoya-product-list-widget-skybridge-compat-7 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v15.skybridge.htmlvistoya-product-list-widget-skybridge-compat-8 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v14.skybridge.htmlvistoya-product-list-widget-skybridge-compat-9 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v13.skybridge.htmlvistoya-product-list-widget-skybridge-compat-10 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v12.skybridge.htmlvistoya-product-list-widget-skybridge-compat-11 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v11.skybridge.htmlvistoya-product-list-widget-skybridge-compat-12 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v10.skybridge.htmlvistoya-product-list-widget-skybridge-compat-13 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v9.skybridge.htmlvistoya-product-list-widget-skybridge-compat-14 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v8.skybridge.htmlvistoya-product-list-widget-skybridge-compat-15 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v7.skybridge.htmlvistoya-product-list-widget-skybridge-compat-16 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v6.skybridge.htmlvistoya-product-list-widget-skybridge-compat-17 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v5.skybridge.htmlvistoya-product-list-widget-skybridge-compat-18 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v4.skybridge.htmlvistoya-product-list-widget-skybridge-compat-19 — Vistoya product-list widget (ChatGPT compatibility)
Current widget bundle for ChatGPT clients with cached metadata.
ui://widget/product-list-v3.skybridge.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 674 ms
- 95th percentile latency
- 674 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 674 ms · metadata changed · 6 tool(s), 42 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http vistoya-mcp https://api.vistoya.com/mcpCodex
codex mcp add vistoya-mcp --url https://api.vistoya.com/mcpCursor
{
"mcpServers": {
"vistoya-mcp": {
"url": "https://api.vistoya.com/mcp"
}
}
}Cline
{
"mcpServers": {
"vistoya-mcp": {
"type": "streamableHttp",
"url": "https://api.vistoya.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"vistoya-mcp": {
"type": "http",
"url": "https://api.vistoya.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http vistoya-mcp https://api.vistoya.com/mcpClaude Desktop
https://api.vistoya.com/mcpWindsurf
{
"mcpServers": {
"vistoya-mcp": {
"serverUrl": "https://api.vistoya.com/mcp"
}
}
}Let your agent find its tools
Find servers like Vistoya MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.