Title100/100
Search Products
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Search 100M+ products across thousands of retailers for one product type. Call once for each distinct product type, and send independent calls together. Put relevant constraints in `query`. Returns up to 8 product cards plus structured product data. The result includes a `thread_id`. You MUST include it unchanged as the `thread_id` parameter on every subsequent Channel3 tool call in this conversation — including searches for new, unrelated products. Never omit it once you have one.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
One product type and its constraints in natural language (brand, color, material, size, price, gender). Good: "red leather jacket under $200"; "leather golf glove under $40". Bad: "gift ideas for dad"; "cool sneakers"; "golf glove or rangefinder".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
image_url
Public image URL for visual search. Combine with `query` for text + image.
Clear enough to supply this argument.
thread_id
Conversation thread ID. Omit ONLY on the very first Channel3 call of a conversation. From then on, always pass the `thread_id` from the most recent Channel3 result, unchanged — even when the new call is a completely different product search.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Output schema84/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"products",
"next_page_token",
"as_of",
"thread_id"
],
"properties": {
"seq": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"as_of": {
"type": "string",
"description": "ISO timestamp of when this result was produced; prices are live as of this moment."
},
"query": {
"type": "string",
"description": "The text query this result answers."
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"brands": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"availability",
"domain",
"price",
"url"
],
"properties": {
"url": {
"type": "string"
},
"price": {
"type": "object",
"required": [
"currency",
"price"
],
"properties": {
"price": {
"type": "number"
},
"currency": {
"type": "string"
},
"compare_at_price": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
"domain": {
"type": "string"
},
"availability": {
"enum": [
"InStock",
"OutOfStock"
],
"type": "string"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
}
},
"image_url": {
"type": "string",
"description": "The image URL this result answers."
},
"thread_id": {
"type": "string",
"description": "Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation."
},
"session_id": {
"type": "string",
"description": "PostHog MCP session ID for analytics correlation."
},
"server_origin": {
"type": "string",
"description": "Origin of this MCP server; the storefront UI posts analytics events here."
},
"next_page_token": {
"type": [
"string",
"null"
],
"description": "Opaque pagination token used by the storefront UI; not usable via this tool."
}
},
"additionalProperties": false
}