Channel3 Shopping
Server Details
Shopping search across 100M+ products, with every retailer's offer and live price in one place.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- channel3-ai/mcp-server
- GitHub Stars
- 2
- Server Listing
- Channel3 MCP Server
TDQS
Scored across 6 tools
browse_products and search_products overlap in searching/paging, and get_details and get_products both fetch product details with offers. The descriptions provide some hints, but boundaries are fuzzy enough that an agent could easily call the wrong tool.
All tool names follow a mostly consistent verb_object pattern like browse_products, get_price_history, and search_products. get_details is a minor deviation because the object is vague, but the overall convention remains predictable.
Six tools is a reasonable size for a product discovery and price-history server. Some tools overlap in purpose, so not every tool clearly earns its place, but the count itself is well-scoped.
The toolkit covers the main shopping workflows: search/browse, product details, price history, and similar-item discovery. Cart or purchase functionality is absent, but that appears out of scope for a storefront search API, and any remaining gaps are minor workarounds.
Available Tools
6 toolsbrowse_productsBrowse ProductsCRead-onlyIdempotentInspect
Search and page through products for the storefront UI.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | 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". | |
| device_id | No | ||
| image_url | No | Public image URL for visual search. Combine with `query` for text + image. | |
| thread_id | No | ||
| page_token | No | Token from a previous response's next_page_token. |
Output Schema
| Name | Required | Description |
|---|---|---|
| products | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as pagination details, rate limits, or any caveats. It merely restates the action without enriching understanding of side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no wasted words. It is appropriately brief for a straightforward browsing tool. However, it lacks any structural organization or emphasis; it is merely a phrase without front-loading key distinguishing details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, zero required, and a rich set of siblings, the description is far too thin. It does not explain pagination usage, how to combine query and image_url, or any filtering nuances. An output schema exists, so return values are covered, but the overall usage context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with descriptions for query, image_url, and page_token, but none for limit, device_id, or thread_id. The description mentions no parameters at all, so it does not compensate for the undocumented ones. An agent gets no help understanding what device_id or thread_id mean from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Search and page through products'. It conveys the core action of browsing with pagination. However, it does not distinguish this tool from the sibling 'search_products' which likely overlaps, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'search_products' or 'get_products'. There are no exclusions, conditions, or hints about the appropriate context. The only context is 'for the storefront UI', which is a vague purpose indicator, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailsGet Product DetailsARead-onlyIdempotentInspect
Fetch a product with live offers, for the storefront UI.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | ||
| thread_id | No | ||
| product_id | Yes | Canonical product ID. | |
| selected_options | No | Variant configuration as `{ optionName: label }` for re-resolving offers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| product | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, and “live offers” adds a small behavioral hint about data freshness (it is not just a static product lookup). The description does not, however, explain how “live” behaves — e.g., whether offers are re-resolved per request, cached, or require selected options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
An single sentence with the core purpose, the behavioral_distinguisher (“live offers”), and the intended context (storefront UI) — all without roundabout explanation or redundant restatement of the name or title. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only product fetch, the description covers the basic task and leaves no missing required inputs (product_id is listed as required). However, there is no output schema and no description of what “live offers” means, and two params (device_id, thread_id) remain opaque, so an agent gets an useful but not debt, complete, complete target.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
product_id and selected_options are already described in the schema, so roughly half of the parameters have provenance. The description's storefront-UI framing gives only weak hints about device_id and thread_id (frontrount route context), but does not really compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (“fetch”) and resource (“product” with a distinctive “live offers” modifier, so an agent clearly knows what the tool returns. It does not name any sibling tools, so full differentiation from similar fetch/list tools is not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
“For the storefront UI” implies the intended context: use when serving the customer-facing product page. However, there is no explicit when-not-to-use condition, no prerequisite mention, and no alternative tool is named, so routing falls to agent inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyGet Price HistoryBRead-onlyIdempotentInspect
Fetch 30-day price history for a product, for the storefront UI.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | No | ||
| thread_id | No | ||
| product_id | Yes | Canonical product ID. | |
| selected_options | No | Variant configuration as `{ optionName: label }` for re-resolving offers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| history | Yes | |
| statistics | Yes | |
| canonical_product_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the 30-day window and storefront context, which is useful but limited; it does not explain behavior around variant resolution or filtered results beyond that. This is a modest improvement over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one effective, front-loaded sentence with no filler. It states the core functionality and intended context without redundant detail, making it easy to scan and parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup tool backed by an output schema and active annotations, the description is mostly sufficient, but it lacks any signposting for how this tool compares to siblings and leaves some parameter behavior muddy. The core call is clear, but the surrounding decision of when to use it is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not explain any of the parameters directly. It references 'product' which maps to product_id, but leaves device_id, thread_id, and selected_options completely unexplained, so an agent cannot infer their purpose beyond the schema's partial doc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific verb—Fetch—and the resource: a 30-day price history for a product, with a context qualifier ('storefront UI'). This clearly differentiates the tool from siblings like search_products or get_details, which serve other purposes. The operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus the sibling product tools, and no mention of prerequisites or when not to use it. The phrase 'for the storefront UI' hints at a context but does not direct the agent toward this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productsGet ProductsARead-onlyIdempotentInspect
Get full product data (offers, description, attributes, images) by product ID from a search result, or by retailer URL. Pass several IDs in one call to compare.
Use search_products to find products. Returns details in the storefront UI. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | 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. | |
| product_ids | Yes | Products to fetch in parallel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| as_of | Yes | ISO timestamp of when this result was produced; prices are live as of this moment. |
| products | Yes | |
| thread_id | Yes | Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation. |
| session_id | No | PostHog MCP session ID for analytics correlation. |
| unresolved | No | |
| server_origin | No | Origin of this MCP server; the storefront UI posts analytics events here. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only/idempotent, and the description adds critical behavioral context: results are returned in the storefront UI, and the thread_id must be propagated unchanged to every subsequent Channel3 call, including unrelated searches. This goes beyond annotations and is essential for correct stateful usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and usage, and the key behavioral details are present. However, the final two sentences about thread_id largely repeat information already in the schema's thread_id parameter description, adding redundancy that could be trimmed without losing necessary emphasis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter tool with an output schema present, the description covers purpose, usage, and the critical thread_id statefulness rule. It does not need to explain return values due to the output schema, and the context is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the baseline is 3. The description adds meaning by clarifying that product_ids can be IDs from search results or retailer URLs, and that multiple IDs are fetched in parallel for comparison, which enriches the schema's bare field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Get full product data') with a defined resource (offers, description, attributes, images) and identifies two input methods (product ID or retailer URL). It distinguishes itself from siblings by explicitly referencing search_products and noting batch comparison, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to use search_products to find products first and suggests passing multiple IDs for comparison. However, it does not clarify when to prefer get_products over sibling tools like get_details or get_similar, so it lacks full exclusions or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similarGet Similar ProductsBRead-onlyIdempotentInspect
Find products similar to a given product, for the storefront UI.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| device_id | No | ||
| thread_id | No | ||
| product_id | Yes | Canonical product ID to find similar products for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| products | Yes | |
| next_page_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no behavioral detail beyond the basic function and does not explain what it returns, any limitations, or side effects beyond what annotations imply. It is consistent with annotations, so no contradiction, but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and object. It is efficient, avoids redundancy, and is free of fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters and only 25% schema coverage, the description is inadequate. It does not clarify the purpose of limit, device_id, or thread_id, nor does it provide usage context relative to sibling tools. Even with an output schema, the description fails to give an agent enough to confidently invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only product_id has a description). The description implicitly covers product_id ('given a product') but provides no semantics for limit, device_id, or thread_id. With such low coverage, the description should compensate but fails to explain the meaning or purpose of these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find products similar to a given product') and the context ('for the storefront UI'). It is specific and distinct from sibling tools like search_products (query-based) and browse_products (general browsing). The verb and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It only hints at 'storefront UI' but does not explain scenarios, exclusions, or how it differs from search_products or browse_products. An agent is left to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch ProductsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | 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". | |
| image_url | No | Public image URL for visual search. Combine with `query` for text + image. | |
| thread_id | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seq | No | |
| as_of | Yes | ISO timestamp of when this result was produced; prices are live as of this moment. |
| query | No | The text query this result answers. |
| products | Yes | |
| image_url | No | The image URL this result answers. |
| thread_id | Yes | Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation. |
| session_id | No | PostHog MCP session ID for analytics correlation. |
| server_origin | No | Origin of this MCP server; the storefront UI posts analytics events here. |
| next_page_token | Yes | Opaque pagination token used by the storefront UI; not usable via this tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description discloses key behavior: 'Returns up to 8 product cards plus structured product data' and the critical requirement to propagate the returned thread_id on every subsequent Channel3 call. This adds substantial behavioral context that annotations alone do not provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with purpose front-loaded in the first sentence and every subsequent sentence earning its place. The detailed thread_id instruction is essential and clearly emphasized. No filler or repetition relative to what annotations already cover.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, output schema, and fully described parameters, the description covers the essential operational aspects: what to search, how to batch calls, constraints, return format, and mandatory thread_id propagation. It is slightly less complete in not clarifying how it relates to sibling tools, but that is not required for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents query, image_url, and thread_id. The description's mention of putting constraints in query and the thread_id propagation echoes the schema without adding new parameter-level detail. The baseline of 3 applies because the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search 100M+ products across thousands of retailers for one product type.' This clearly conveys what the tool does and that it focuses on product-type search. It does not explicitly name or differentiate from sibling search tools such as browse_products or get_products, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear invocation guidance: 'Call once for each distinct product type, and send independent calls together' and 'Put relevant constraints in query.' This provides good context on how to use the tool, though it does not mention when not to use it or how it differs from the sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
browse_products2 fields changed- removed
Output schema / properties / next_page_token / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / next_page_token / typeAdded value: +[ + "string", + "null" +]
- Changed
get_similar2 fields changed- removed
Output schema / properties / next_page_token / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / next_page_token / typeAdded value: +[ + "string", + "null" +]
- Changed
search_products4 fields changed- removed
Output schema / properties / next_page_token / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / next_page_token / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / products / items / properties / offers / items / properties / price / properties / compare_at_price / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "null" - } -] - added
Output schema / properties / products / items / properties / offers / items / properties / price / properties / compare_at_price / typeAdded value: +[ + "number", + "null" +]
4 tool updates
- Changed
browse_products1 field changed- added
Input schema / properties / device_idAdded value: +{ + "type": "string" +}
- Changed
get_details1 field changed- added
Input schema / properties / device_idAdded value: +{ + "type": "string" +}
- Changed
get_price_history1 field changed- added
Input schema / properties / device_idAdded value: +{ + "type": "string" +}
- Changed
get_similar1 field changed- added
Input schema / properties / device_idAdded value: +{ + "type": "string" +}
2 tool updates
- Changed
get_details1 field changed- added
Input schema / properties / selected_optionsAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Variant configuration as `{ optionName: label }` for re-resolving offers.", + "propertyNames": { + "type": "string" + }, + "type": "object" +}
- Changed
get_price_history3 fields changed- added
Input schema / properties / selected_optionsAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Variant configuration as `{ optionName: label }` for re-resolving offers.", + "propertyNames": { + "type": "string" + }, + "type": "object" +} - added
Output schema / properties / canonical_product_idAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "history", - "statistics" -]New value: +[ + "canonical_product_id", + "history", + "statistics" +]
6 tool updates
- Changed
browse_products1 field changed- added
Input schema / properties / thread_idAdded value: +{ + "type": "string" +}
- Changed
get_details1 field changed- added
Input schema / properties / thread_idAdded value: +{ + "type": "string" +}
- Changed
get_price_history1 field changed- added
Input schema / properties / thread_idAdded value: +{ + "type": "string" +}
- Changed
get_products5 fields changed- added
Input schema / properties / thread_idAdded value: +{ + "description": "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.", + "type": "string" +} - added
Output schema / properties / server_originAdded value: +{ + "description": "Origin of this MCP server; the storefront UI posts analytics events here.", + "type": "string" +} - added
Output schema / properties / session_idAdded value: +{ + "description": "PostHog MCP session ID for analytics correlation.", + "type": "string" +} - added
Output schema / properties / thread_idAdded value: +{ + "description": "Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation.", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "products", - "as_of" -]New value: +[ + "products", + "as_of", + "thread_id" +]
- Changed
get_similar1 field changed- added
Input schema / properties / thread_idAdded value: +{ + "type": "string" +}
- Changed
search_products5 fields changed- added
Input schema / properties / thread_idAdded value: +{ + "description": "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.", + "type": "string" +} - added
Output schema / properties / server_originAdded value: +{ + "description": "Origin of this MCP server; the storefront UI posts analytics events here.", + "type": "string" +} - added
Output schema / properties / session_idAdded value: +{ + "description": "PostHog MCP session ID for analytics correlation.", + "type": "string" +} - added
Output schema / properties / thread_idAdded value: +{ + "description": "Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation.", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "products", - "next_page_token", - "as_of" -]New value: +[ + "products", + "next_page_token", + "as_of", + "thread_id" +]
6 tool updates
- First observed
browse_products - First observed
get_details - First observed
get_price_history - First observed
get_products - First observed
get_similar - First observed
search_products
Related MCP Connectors
Cross-merchant product search with real price history, comparisons, and demand signals.
AI shopping comparison — search 50M+ products, compare prices, find deals
Search products, compare prices and discover deals across 6 European markets with your AI assistant.
Visual fashion search across retailers and resale, with localized prices and app handoffs.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to search and compare live UK product prices from marketplaces like eBay and Amazon, returning normalised JSON with direct buy links.-
- FlicenseNot gradedqualityBmaintenanceEnables searching and comparing product prices across major Indian quick-commerce and e-commerce platforms, ranking results by landed price, returning product links, storing price history, and providing 15–30 day price direction forecasts with best-buy recommendations.-

Periskop MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform product discovery from natural language shopping intents, returning ranked products with merchant links without completing checkout.MIT- AlicenseAqualityDmaintenanceKlarna-style product discovery for AI shopping agents. Makes product catalogs machine-readable so AI agents can search, compare, and purchase products programmatically.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.