Skip to main content

Search Product Categories (Market)

mdmcp-search_product_searches

Find product categories to use in filter queries. Search by category name or type.

Use the returned id value when building category/product search filters.

Try queries like

"dresses", "mens shoes", "accessories", "outerwear", "tops".

Parameters

NameTypeRequiredConstraintsDescription
querystring | string[]yesSingle query string or list of query strings for batch search.
search_limitintegernodefault: 10 · 1–50Maximum number of results to return (default 10, max 50). Raise it when validating or comparing many entities in one call so the list is not clipped at the default 10.
verticalstringnoOptional market vertical (apparel | beauty | homeware); resolves from config when omitted. Scopes results to that vertical's categories.

Returns

  • When query is a string: list[ProductSearch]
  • When query is a list: list[list[ProductSearch]] with results in same order as queries.

Try it

Loading interactive widget…

Code examples

curl -s https://mcp.edited.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "x-api-key: $MCP_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "mdmcp-search_product_searches",
"arguments": {
"query": "Nike",
"search_limit": 10,
"vertical": "example"
}
}
}'

Example response

Parsed from result.content[0].text (the MCP envelope wraps the JSON as a TextContent block — see Concepts → Tools:

[
{
"id": 138,
"name": "Dresses",
"vertical": "apparel",
"type": "top_level_category",
"category": "dresses",
"parent_id": null,
"curation_value": "dresses"
},
{
"id": 2956,
"name": "Bodycon",
"vertical": "apparel",
"type": "subcategory",
"category": "dresses",
"parent_id": 138,
"curation_value": "sub_cat_bodycon_dress"
}
]

Input schema

{
"type": "object",
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"maxItems": 10,
"type": "array"
}
]
},
"search_limit": {
"default": 10,
"description": "Maximum number of results to return (default 10, max 50). Raise it when validating or comparing many entities in one call so the list is not clipped at the default 10.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"vertical": {
"description": "Optional. The market vertical (top-level data segment) to search within: `apparel` | `beauty` | `homeware`. NOT a product category. Pass the same vertical you use on the analytics/options tools so discovered slugs/categories match the data you query. When omitted it resolves to the account's default vertical (reported as `default_vertical` by `market_data_entitlements`). Available verticals vary by account — only pass this when the user explicitly asks about a different vertical; otherwise omit it and let the account default apply. Requesting a vertical you're not entitled to returns an error; call `market_data_entitlements` to see yours.",
"enum": [
"apparel",
"beauty",
"homeware"
],
"type": "string"
}
},
"required": [
"query"
]
}