mcpField
M
market

market

Remote
github.com/vistoyaSearch0Updated 5w ago
Repository

About market

Vistoya MCP is a server for semantic fashion product and brand discovery across indexed stores. It serves MCP-compatible agents with ranked search results, similarity lookups, product details, and available filters.

Key features

  1. 01Semantic product search across stores
  2. 02Filter by product attributes
  3. 03Find similar products
  4. 04Search and compare brands
  5. 05Retrieve product details and filters

Use cases

  1. 01Find clothing by style, color, or price
  2. 02Explore brands by aesthetic or origin
  3. 03Discover products similar to an item
  4. 04Fetch details for a selected product

MCP support

Exposes fashion product and brand search tools through a Streamable HTTP MCP endpoint. MCP clients can discover and filter products, find similar items or brands, and retrieve product details.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.vistoya.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

6
ParameterTypeRequiredDescription
pageintegerNoPage 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.
brandstringNoFilter by brand name
limitintegerNoPage size (1-20, default 12)
querystringNoNatural 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.
colorsarrayNoFilter by lowercase colors: e.g. ["black", "navy", "sage green"]
genderenumNoGender filter.women | men | unisex | boys | girls
seasonenumNoSeason 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.spring | summer | fall | winter | all-season
stylesarrayNoStyle 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.
countrystringNoOptional 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.
patternenumNoPattern 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.solid | stripe | checked | floral | polka dot | camouflage | logo
sleevesenumNoSleeve style filter. Soft descriptor — set ONLY when the user explicitly named the sleeve style. Do not infer from category or query.sleeveless | short-sleeve | long-sleeve | three-quarter | cap-sleeve | puff | balloon | bishop | bell | dolman
categorystringNoCategory 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".
currencystringNoISO 4217 currency code for min_price/max_price (e.g. "PLN", "EUR", "GBP"). Prices are converted to USD for filtering. Omit for USD.
necklineenumNoNeckline filter. Soft descriptor — set ONLY when the user explicitly named the neckline. Do not infer from category or query.v-neck | crewneck | scoop | square | halter | off-shoulder | one-shoulder | sweetheart | turtleneck | mock-neck | boat-neck | cowl | asymmetric | plunge | high-neck | collared | strapless
occasionenumNoOccasion 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.casual | formal | business | party | outdoor | beach
materialsarrayNoFilter by lowercase materials: e.g. ["cotton", "silk", "leather"]
max_pricenumberNoMaximum price (in the currency specified by "currency" param, or USD if omitted)
min_pricenumberNoMinimum price (in the currency specified by "currency" param, or USD if omitted)
silhouetteenumNoSilhouette/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.fitted | slim | regular | relaxed | oversized | tailored | boxy
color_matchenumNoColor 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".any | exact
store_domainstringNoFilter 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_colorsarrayNoExclude products with these colors: e.g. ["white", "beige"]
is_sustainablebooleanNoTrue when the user explicitly wants products with sustainability claims.
available_sizesarrayNoFilter by available size labels, e.g. ["s", "m", "38"].
exclude_materialsarrayNoExclude products with these materials: e.g. ["polyester", "nylon"]

Details

From the project README

Vistoya MCP

Semantic search and recommendations across fashion stores, exposed as a Model Context Protocol server. Connect any MCP-compatible AI agent (Claude, Cursor, VS Code, ChatGPT, etc.) and let it discover products, find visually similar items, and explore stores in the Vistoya marketplace.

  • Registry name: io.github.vistoya/market
  • Endpoint: https://api.vistoya.com/mcp
  • Transport: Streamable HTTP
  • Website: https://vistoya.com

Quick setup

npx @vistoya/mcp

Automatically detects and configures Claude Desktop, Claude Code, Cursor, Windsurf, and VS Code. Restart your AI client after running.

What it does

Vistoya indexes fashion products from many stores and embeds them with a vision-language model. The MCP server lets agents query that index in natural language and reason over the results.

Tools

ToolDescription
discover_productsSemantic search across all indexed stores. Accepts a natural-language query plus optional filters (category, color, gender, price, etc.) and returns ranked products.
find_similar_productsGiven a product ID, return visually and semantically similar products.
discover_brandsSemantic search over brand profiles. Find brands by style, origin, or aesthetic (e.g. "Italian streetwear brands", "minimalist Scandinavian labels").
find_similar_brandsGiven a brand name or key, return similar brands using brand-profile vectors.
get_productFetch full details for a single product by ID.
get_filtersList available filter values (categories, colors, materials, brands, …) so the agent knows what's filterable.

Manual install

Claude Desktop / Claude Code

Add to claude_desktop_config.json (or your Claude Code MCP config):

{
  "mcpServers": {
    "vistoya": {
      "url": "https://api.vistoya.com/mcp"
    }
  }
}
Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "vistoya": {
      "url": "https://api.vistoya.com/mcp"
    }
  }
}
VS Code (MCP extension)

Add to your mcp.json:

{
  "servers": {
    "vistoya": {
      "type": "http",
      "url": "https://api.vistoya.com/mcp"
    }
  }
}
Generic stdio fallback (clients that don't support remote yet)

Use mcp-remote as a bridge:

{
  "mcpServers": {
    "vistoya": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.vistoya.com/mcp"]
    }
  }
}

Example prompts

Once connected, try:

  • "Find me a black leather jacket under $300"
  • "Show me something similar to this product"
  • "What cozy sweaters do you have for fall?"
  • "Find me running shorts under $100"

Discoverability

This server is published on the official MCP Registry. You can find it at:

https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.vistoya/market

Status

Public preview. The endpoint is publicly reachable and does not currently require authentication.

License

MIT — see LICENSE.

Contact

Issues and feature requests: open an issue on this repo.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.