PoloPan Fashion MCP Server
Fashion & apparel MCP: visual outfit search, stock verification, and 1-click checkout.
我该使用它吗
质量与安全性
发现(20)
- HIGH
- MEDIUM在 products.search.text 中
- MEDIUM在 products.search.image_url 中
- MEDIUM在 products.search.image_upload 中
- MEDIUM在 looks.curation.by_occasion 中
- MEDIUM在 products.items.get_by_handle 中
- MEDIUM在 products.items.check_stock 中
- MEDIUM在 checkout.links.get_direct_url 中
- MEDIUM在 products.search.alternatives 中
- MEDIUM在 looks.curation.recommend 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"polopan-products-mcp"
]
}
}
}可运行的软件包
1.2.6stdio远程端点
https://mcp-server.polopan.com/mcpstreamable-http它能做什么
工具清单
工具(10)
🟢products.search.text(query, page, page_size, sort_by, sort_order, ...)
Search PoloPan products using a text query and optional filters. Returns products with available in-stock sizes, specifications table, shipping/return policies, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}). MANDATORY AGENT INSTRUCTIONS: 1. Always tell the user the available sizes for items, and display returning & shipping policies (Negative return days = 'Exchange only |X| days'). 2. When presenting/shortlisting products, display the product specifications table. 3. Return the base link (https://s.polopan.com/p/{handle}) during browsing. Provide the direct checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "The search query or style keyword to find fashion items (e.g. 'black leather jacket', 'floral summer midi dress')"
},
"page": {
"default": 1,
"description": "Page number for pagination (starts at 1)",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 20,
"description": "Number of items to return per page (max 100)",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"sort_by": {
"default": "relevance",
"description": "Sorting criteria for the search results",
"type": "string",
"enum": [
"relevance",
"price",
"title"
]
},
"sort_order": {
"default": "desc",
"description": "Sort order: 'asc' for ascending, 'desc' for descending",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"gender": {
"description": "Target gender filter: 'men', 'women', or 'unisex'",
"type": "string"
},
"size": {
"description": "Array of sizes to filter by, e.g. ['S', 'M', 'L', 'XL']",
"type": "array",
"items": {
"type": "string"
}
},
"price_min": {
"description": "Minimum price in local currency",
"type": "number"
},
"price_max": {
"description": "Maximum price in local currency",
"type": "number"
},
"vendor": {
"description": "List of brand or vendor names to filter by",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Unique product handle identifier"
},
"title": {
"type": "string",
"description": "Product name and title"
},
"brand": {
"description": "Brand or vendor name",
"type": "string"
},
"price": {
"type": "number",
"description": "Current selling price"
},
"mrp": {
"description": "Original maximum retail price",
"type": "number"
},
"discount_percent": {
"description": "Discount percentage",
"type": "number"
},
"sizes": {
"description": "List of available in-stock sizes",
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"description": "Verified purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"additionalProperties": false
},
"description": "List of matching fashion products"
},
"pagination": {
"description": "Pagination metadata",
"type": "object",
"properties": {
"page": {
"type": "number",
"description": "Current page number"
},
"page_size": {
"type": "number",
"description": "Number of items per page"
},
"total": {
"description": "Total number of matching products",
"type": "number"
}
},
"required": [
"page",
"page_size"
],
"additionalProperties": false
}
},
"required": [
"products"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢products.search.image_url(image_url, page, page_size, sort_by, sort_order, ...)
Search PoloPan products using image_url and optional filters. Returns products with available in-stock sizes, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}).
输入模式
{
"type": "object",
"properties": {
"image_url": {
"type": "string",
"format": "uri",
"description": "Publicly accessible URL of the fashion image to search for visual matches"
},
"page": {
"default": 1,
"description": "Page number for pagination",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 20,
"description": "Number of items to return per page",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"sort_by": {
"default": "relevance",
"description": "Sorting criteria for search results",
"type": "string",
"enum": [
"relevance",
"price",
"title"
]
},
"sort_order": {
"default": "desc",
"description": "Sort order: 'asc' or 'desc'",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"gender": {
"description": "Target gender filter: 'men', 'women', or 'unisex'",
"type": "string"
},
"size": {
"description": "Array of sizes to filter by",
"type": "array",
"items": {
"type": "string"
}
},
"price_min": {
"description": "Minimum price in local currency",
"type": "number"
},
"price_max": {
"description": "Maximum price in local currency",
"type": "number"
},
"vendor": {
"description": "List of brand names to filter by",
"type": "array",
"items": {
"type": "string"
}
},
"personalize": {
"default": false,
"description": "Whether to apply personalized ranking",
"type": "boolean"
}
},
"required": [
"image_url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Unique product handle identifier"
},
"title": {
"type": "string",
"description": "Product name and title"
},
"price": {
"type": "number",
"description": "Current selling price"
},
"url": {
"type": "string",
"description": "Verified purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"additionalProperties": false
},
"description": "List of matching fashion products"
}
},
"required": [
"products"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢products.search.image_upload(image_path, image_base64, content_type, expiry_hours, page, ...)
Upload a local image file (or base64 string) and search PoloPan products using the uploaded image URL. Returns products with available in-stock sizes, pricing, and verified purchase URLs (https://s.polopan.com/p/{handle}).
输入模式
{
"type": "object",
"properties": {
"image_path": {
"description": "Local file system path to the image file",
"type": "string",
"minLength": 1
},
"image_base64": {
"description": "Base64-encoded image data string",
"type": "string",
"minLength": 1
},
"content_type": {
"default": "image/jpeg",
"description": "MIME type of the image, e.g. 'image/jpeg', 'image/png'",
"type": "string"
},
"expiry_hours": {
"default": 24,
"description": "Temporary upload URL lifetime in hours",
"type": "integer",
"minimum": 1,
"maximum": 168
},
"page": {
"default": 1,
"description": "Page number for pagination",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 20,
"description": "Number of items to return per page",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"sort_by": {
"default": "relevance",
"description": "Sorting criteria",
"type": "string",
"enum": [
"relevance",
"price",
"title"
]
},
"sort_order": {
"default": "desc",
"description": "Sort order: 'asc' or 'desc'",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"gender": {
"description": "Target gender filter",
"type": "string"
},
"size": {
"description": "Array of sizes to filter by",
"type": "array",
"items": {
"type": "string"
}
},
"price_min": {
"description": "Minimum price",
"type": "number"
},
"price_max": {
"description": "Maximum price",
"type": "number"
},
"vendor": {
"description": "List of brand names",
"type": "array",
"items": {
"type": "string"
}
},
"personalize": {
"default": false,
"description": "Whether to personalize search ranking",
"type": "boolean"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"uploaded_image_url": {
"type": "string",
"description": "Temporary URL of the uploaded image"
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product handle"
},
"title": {
"type": "string",
"description": "Product title"
},
"price": {
"type": "number",
"description": "Price"
},
"url": {
"type": "string",
"description": "Purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"additionalProperties": false
},
"description": "Matching products"
}
},
"required": [
"uploaded_image_url",
"products"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢vision.outfit.detect_pieces(image_path, image_base64, image_url, threshold)
Deconstruct an outfit image or photo into individual fashion pieces (e.g. Upper-body garment, Lower-body garment, Dress, Footwear, Bag, Headwear) with bounding box coordinates and confidence scores. Use this to break down full-body look photos and search for matching catalog items for each piece individually.
输入模式
{
"type": "object",
"properties": {
"image_path": {
"description": "Local path to the outfit image file to deconstruct",
"type": "string",
"minLength": 1
},
"image_base64": {
"description": "Base64-encoded image string for outfit piece detection",
"type": "string",
"minLength": 1
},
"image_url": {
"description": "Public HTTP(S) URL of the fashion image to deconstruct",
"type": "string",
"format": "uri"
},
"threshold": {
"default": 0.22,
"description": "Confidence threshold for object detection bounding boxes (0.05 to 0.95)",
"type": "number",
"minimum": 0.05,
"maximum": 0.95
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"pieces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Detected clothing category (e.g. Upper-body garment, Lower-body garment, Footwear, Bag)"
},
"confidence": {
"type": "number",
"description": "Confidence score between 0.0 and 1.0"
},
"box": {
"type": "array",
"items": {
"type": "number"
},
"description": "Normalized bounding box coordinates [ymin, xmin, ymax, xmax]"
}
},
"required": [
"label",
"confidence",
"box"
],
"additionalProperties": false
},
"description": "List of detected fashion pieces"
}
},
"required": [
"pieces"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢looks.curation.by_occasion(occasion, gender, age, page, page_size, ...)
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 excluded). MANDATORY AGENT INSTRUCTIONS: 1. Always inform the user of available in-stock sizes, shipping SLA, and return policy for each item. Format negative return days as 'Exchange only |X| days' (e.g. -7 -> 'Exchange only 7 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/shortlisting. Provide direct 1-click checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.
输入模式
{
"type": "object",
"properties": {
"occasion": {
"description": "Target occasion or vibe: 'Wedding & Reception', 'Party', 'Casual', 'Cocktail', 'Date Night', 'Club Night', 'Brunch', 'Vacation', 'Formal'",
"type": "string"
},
"gender": {
"default": "women",
"description": "Target gender filter: 'women' or 'men'",
"type": "string",
"enum": [
"women",
"men",
"female",
"male"
]
},
"age": {
"default": 25,
"description": "Target demographic age",
"type": "integer",
"minimum": 16,
"maximum": 99
},
"page": {
"default": 1,
"description": "Page number for looks pagination",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 10,
"description": "Number of looks per page",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"vendor": {
"description": "Optional brand filter",
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"looks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Unique look ID",
"type": "string"
},
"title": {
"description": "Look title",
"type": "string"
},
"occasion": {
"description": "Occasion tag",
"type": "string"
},
"image_url": {
"description": "Main styled look image",
"type": "string"
},
"products": {
"description": "100% in-stock items in this outfit",
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product handle"
},
"title": {
"type": "string",
"description": "Product title"
},
"price": {
"type": "number",
"description": "Price"
},
"url": {
"type": "string",
"description": "Purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": "List of verified in-stock occasion looks"
}
},
"required": [
"looks"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢products.items.get_by_handle(handle)
Fetch a single product document by product handle. Returns detailed metadata, variants, in-stock sizes, price details, and the verified short purchase link (https://s.polopan.com/p/{handle}).
输入模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"minLength": 1,
"description": "Unique product handle identifier (e.g. 'solid-linen-shirt')"
}
},
"required": [
"handle"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product handle identifier"
},
"title": {
"type": "string",
"description": "Product title"
},
"price": {
"type": "number",
"description": "Price"
},
"variants": {
"description": "Variant size list",
"type": "array",
"items": {
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "Size label"
},
"in_stock": {
"type": "boolean",
"description": "Stock availability"
}
},
"required": [
"size",
"in_stock"
],
"additionalProperties": false
}
},
"url": {
"type": "string",
"description": "Verified purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢products.items.check_stock(handle, desired_size, size_index)
Verify real-time stock availability, live discounted pricing, product specifications table (Fabric, Collar, Sleeves, Fit, Bottom, Care Instructions), shipping/return policies, and available sizes for a product. MANDATORY AGENT INSTRUCTIONS: 1. Always tell the user the available in-stock sizes, and display returning & shipping policies (Negative return days = 'Exchange only |X| days'). 2. When presenting/shortlisting products, display the product specifications table. 3. Return the base link (https://s.polopan.com/p/{handle}) during browsing. Provide the direct checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.
输入模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"minLength": 1,
"description": "Unique product handle identifier"
},
"desired_size": {
"description": "Optional size query to verify (e.g. 'M', 'L', 'XL', '32', '40')",
"type": "string"
},
"size_index": {
"description": "Zero-based index of the size variant",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"handle"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product handle"
},
"title": {
"type": "string",
"description": "Product title"
},
"is_in_stock": {
"type": "boolean",
"description": "Overall stock status"
},
"available_sizes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of currently available in-stock sizes"
},
"out_of_stock_sizes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of out-of-stock sizes"
},
"direct_checkout_url": {
"type": "string",
"description": "Verified 1-click checkout permalink"
}
},
"required": [
"handle",
"title",
"is_in_stock",
"available_sizes",
"out_of_stock_sizes",
"direct_checkout_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢checkout.links.get_direct_url(handle, size, size_index, quantity, coupon)
Generate the direct 1-click checkout purchase URL for a specific product and size index (https://s.polopan.com/p/{handle}/{size_index}). MANDATORY AGENT INSTRUCTION: Only generate or provide this direct link with /{size_index} after the user has explicitly selected/confirmed their size from the available in-stock options. If there is any confusion regarding sizes or if the user is still browsing, provide ONLY the clean base link (https://s.polopan.com/p/{handle}) without /{size_index}.
输入模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"minLength": 1,
"description": "Unique product handle identifier"
},
"size": {
"description": "Size label confirmed by the user (e.g. 'M', 'L', 'XL')",
"type": "string"
},
"size_index": {
"description": "Zero-based index of the chosen size variant",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"quantity": {
"default": 1,
"description": "Number of units to purchase (1-10)",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"coupon": {
"description": "Optional discount coupon code to pre-apply",
"type": "string"
}
},
"required": [
"handle"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product handle"
},
"size": {
"description": "Selected size",
"type": "string"
},
"size_index": {
"type": "number",
"description": "Selected size index"
},
"checkout_url": {
"type": "string",
"description": "Direct 1-click purchase permalink (https://s.polopan.com/p/{handle}/{size_index})"
}
},
"required": [
"handle",
"size_index",
"checkout_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢products.search.alternatives(handle, budget_range, page, page_size, limit, ...)
Find product alternatives within a selected budget range using product image similarity (same logic as extension). Every product url is the PoloPan short purchase link from GET /products/link/{handle} (https://s.polopan.com/p/{handle}; never the raw catalog URL).
输入模式
{
"type": "object",
"properties": {
"handle": {
"type": "string",
"minLength": 1,
"description": "Base product handle to find alternatives for"
},
"budget_range": {
"default": "1501-3000",
"description": "Target price bracket in local currency",
"type": "string",
"enum": [
"0-1500",
"1501-3000",
"3001-5000",
"5000+"
]
},
"page": {
"default": 1,
"description": "Page number for pagination",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 8,
"description": "Number of items to fetch per page",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"limit": {
"default": 6,
"description": "Maximum number of filtered alternatives to return",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"sort_by": {
"default": "relevance",
"description": "Sorting criteria",
"type": "string",
"enum": [
"relevance",
"price",
"title"
]
},
"sort_order": {
"default": "desc",
"description": "Sort order: 'asc' or 'desc'",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"personalize": {
"default": false,
"description": "Whether to apply personalized ranking",
"type": "boolean"
}
},
"required": [
"handle"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"budget_range": {
"type": "string",
"description": "Applied budget bracket"
},
"source_handle": {
"type": "string",
"description": "Source product handle"
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Alternative product handle"
},
"title": {
"type": "string",
"description": "Alternative product title"
},
"price": {
"type": "number",
"description": "Alternative product price"
},
"url": {
"type": "string",
"description": "Purchase link"
}
},
"required": [
"handle",
"title",
"price",
"url"
],
"additionalProperties": false
},
"description": "List of visual alternatives within budget"
}
},
"required": [
"budget_range",
"source_handle",
"products"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢looks.curation.recommend(handle, occasion, gender, page, page_size)
Get complete recommended outfits. Pass a product 'handle' to find complementary items that style with it, OR pass an 'occasion' (e.g. 'Wedding', 'Party', 'Cocktail', 'Date Night') and 'gender' to discover full occasion looks. All returned looks are verified 100% in-stock (any look with an out-of-stock item is excluded). MANDATORY AGENT INSTRUCTIONS: 1. Always inform the user of available in-stock sizes, shipping SLA, and return policy for each item. Format negative return days as 'Exchange only |X| days' (e.g. -7 -> 'Exchange only 7 days'). 2. When shortlisting a look, render the product specifications table (Fabric, Pattern, Collar, Sleeves, Fit, Care). 3. Provide the base link (https://s.polopan.com/p/{handle}) during shortlisting. Provide direct 1-click checkout link (https://s.polopan.com/p/{handle}/{size_index}) ONLY after the user's size is finalized.
输入模式
{
"type": "object",
"properties": {
"handle": {
"description": "Product handle to build coordinating outfits around",
"type": "string"
},
"occasion": {
"description": "Target occasion or aesthetic theme (e.g. 'Wedding', 'Party', 'Cocktail', 'Date Night')",
"type": "string"
},
"gender": {
"default": "women",
"description": "Target gender filter: 'women' or 'men'",
"type": "string",
"enum": [
"women",
"men",
"female",
"male"
]
},
"page": {
"default": 1,
"description": "Page number for pagination",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"page_size": {
"default": 20,
"description": "Number of outfits per page",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"handle": {
"description": "Base product handle",
"type": "string"
},
"looks": {
"description": "List of recommended outfits",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"description": "Outfit title",
"type": "string"
},
"image_url": {
"description": "Look image URL",
"type": "string"
}
},
"additionalProperties": false
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社区
证据