Search Brands (Market)
mdmcp-search_brands
Find brands for the brand_slug and brand filters. Search by name or description.
Use the returned slug value for the brand_slug filter, and the returned
name when you filter on the free-text brand field — that canonical
spelling matches variant listings the user's phrasing may miss. Never put a
slug in a brand filter. Some brands have slug: null (no normalised
slug); for those the name is all you get, and it is exactly what brand
wants.
Judge the match yourself — there is no confidence score. This returns a
best-first list for almost any input, so a returned slug is NOT proof the
brand was found: compare each returned name to the user's brand string
(ignore case, punctuation, ®/accents, hyphens vs spaces). If none matches
closely, treat the brand as unmapped and filter on brand with the user's
own brand string rather than forcing an unrelated slug or name.
"Nike", "luxury brands", "Gucci", "sportswear".
Parameters
| Name | Type | Required | Constraints | Description |
|---|---|---|---|---|
query | string | string[] | yes | — | Single query string or list of query strings for batch search. |
search_limit | integer | no | default: 10 · 1–50 | 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. |
Returns
- When query is a string: list[Brand]
- When query is a list: list[list[Brand]] with results in same order as queries.
Try it
Code examples
- curl
- TypeScript
- Python
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_brands",
"arguments": {
"query": "Nike",
"search_limit": 10
}
}
}'
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "demo", version: "1.0.0" }, { capabilities: {} });
await client.connect(
new StreamableHTTPClientTransport(new URL("https://mcp.edited.com/mcp"), {
requestInit: { headers: { "x-api-key": process.env.MCP_API_KEY ?? "" } },
}),
);
const result = await client.callTool({
name: "mdmcp-search_brands",
arguments: {
"query": "Nike",
"search_limit": 10
},
});
import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
headers = {"x-api-key": os.environ["MCP_API_KEY"]}
async with streamablehttp_client("https://mcp.edited.com/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"mdmcp-search_brands",
{"query": "Nike", "search_limit": 10},
)
Example response
Parsed from result.content[0].text (the MCP envelope wraps the JSON as a TextContent block — see Concepts → Tools:
[
{
"name": "Nike",
"slug": "nike"
},
{
"name": "Nike SB",
"slug": "nike-sb"
},
{
"name": "Nike Golf",
"slug": "nike-golf"
}
]
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"
}
},
"required": [
"query"
]
}