Channel3 Shopping

Shopping search across 100M+ products, with every retailer's offer and live price in one place.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
89%
Naming quality
97%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'browse_products' suggests web access but openWorldHint=falsein browse_products

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,370Tokens (tool definitions)
~4.0 KBTypical response size
Moderate attention impact (1.85% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "shopping": {
      "url": "https://mcp.trychannel3.com/"
    }
  }
}

Remote endpoints

https://mcp.trychannel3.com/streamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_products(query, image_url, thread_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "One product type and its constraints in natural language (brand, color, material, size, price, gender).\nGood: \"red leather jacket under $200\"; \"leather golf glove under $40\".\nBad: \"gift ideas for dad\"; \"cool sneakers\"; \"golf glove or rangefinder\".",
      "type": "string",
      "minLength": 1
    },
    "image_url": {
      "description": "Public image URL for visual search. Combine with `query` for text + image.",
      "type": "string"
    },
    "thread_id": {
      "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"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The text query this result answers.",
      "type": "string"
    },
    "image_url": {
      "description": "The image URL this result answers.",
      "type": "string"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "brands": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "additionalProperties": {}
            }
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": {}
            }
          },
          "offers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "availability": {
                  "type": "string",
                  "enum": [
                    "InStock",
                    "OutOfStock"
                  ]
                },
                "domain": {
                  "type": "string"
                },
                "price": {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "compare_at_price": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "currency",
                    "price"
                  ],
                  "additionalProperties": false
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "availability",
                "domain",
                "price",
                "url"
              ],
              "additionalProperties": {}
            }
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": {}
      }
    },
    "next_page_token": {
      "description": "Opaque pagination token used by the storefront UI; not usable via this tool.",
      "type": [
        "string",
        "null"
      ]
    },
    "as_of": {
      "type": "string",
      "description": "ISO timestamp of when this result was produced; prices are live as of this moment."
    },
    "session_id": {
      "description": "PostHog MCP session ID for analytics correlation.",
      "type": "string"
    },
    "server_origin": {
      "description": "Origin of this MCP server; the storefront UI posts analytics events here.",
      "type": "string"
    },
    "thread_id": {
      "type": "string",
      "description": "Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation."
    },
    "seq": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "products",
    "next_page_token",
    "as_of",
    "thread_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_products(product_ids, thread_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "product_ids": {
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "string",
        "description": "Product ID (from a `search_products` result) or URL."
      },
      "description": "Products to fetch in parallel."
    },
    "thread_id": {
      "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"
    }
  },
  "required": [
    "product_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": {}
      }
    },
    "unresolved": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "as_of": {
      "type": "string",
      "description": "ISO timestamp of when this result was produced; prices are live as of this moment."
    },
    "session_id": {
      "description": "PostHog MCP session ID for analytics correlation.",
      "type": "string"
    },
    "server_origin": {
      "description": "Origin of this MCP server; the storefront UI posts analytics events here.",
      "type": "string"
    },
    "thread_id": {
      "type": "string",
      "description": "Conversation thread ID. Pass it back unchanged as `thread_id` on every follow-up call in this conversation."
    }
  },
  "required": [
    "products",
    "as_of",
    "thread_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢browse_products(query, image_url, page_token, limit, thread_id, ...)

Search and page through products for the storefront UI.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "One product type and its constraints in natural language (brand, color, material, size, price, gender).\nGood: \"red leather jacket under $200\"; \"leather golf glove under $40\".\nBad: \"gift ideas for dad\"; \"cool sneakers\"; \"golf glove or rangefinder\".",
      "type": "string",
      "minLength": 1
    },
    "image_url": {
      "description": "Public image URL for visual search. Combine with `query` for text + image.",
      "type": "string"
    },
    "page_token": {
      "description": "Token from a previous response's next_page_token.",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "thread_id": {
      "type": "string"
    },
    "device_id": {
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": {}
      }
    },
    "next_page_token": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "products",
    "next_page_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_similar(product_id, limit, thread_id, device_id)

Find products similar to a given product, for the storefront UI.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Canonical product ID to find similar products for."
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "thread_id": {
      "type": "string"
    },
    "device_id": {
      "type": "string"
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title"
        ],
        "additionalProperties": {}
      }
    },
    "next_page_token": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "products",
    "next_page_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_details(product_id, selected_options, thread_id, device_id)

Fetch a product with live offers, for the storefront UI.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Canonical product ID."
    },
    "selected_options": {
      "description": "Variant configuration as `{ optionName: label }` for re-resolving offers.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "thread_id": {
      "type": "string"
    },
    "device_id": {
      "type": "string"
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "title"
      ],
      "additionalProperties": {}
    }
  },
  "required": [
    "product"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_price_history(product_id, selected_options, thread_id, device_id)

Fetch 30-day price history for a product, for the storefront UI.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "description": "Canonical product ID."
    },
    "selected_options": {
      "description": "Variant configuration as `{ optionName: label }` for re-resolving offers.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "thread_id": {
      "type": "string"
    },
    "device_id": {
      "type": "string"
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "canonical_product_id": {
      "type": "string"
    },
    "history": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "timestamp": {
            "type": "string"
          }
        },
        "required": [
          "currency",
          "price",
          "timestamp"
        ],
        "additionalProperties": false
      }
    },
    "statistics": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string"
            },
            "current_price": {
              "type": "number"
            },
            "current_status": {
              "type": "string",
              "enum": [
                "low",
                "typical",
                "high"
              ]
            },
            "max_price": {
              "type": "number"
            },
            "mean": {
              "type": "number"
            },
            "min_price": {
              "type": "number"
            },
            "std_dev": {
              "type": "number"
            }
          },
          "required": [
            "currency",
            "current_price",
            "current_status",
            "max_price",
            "mean",
            "min_price",
            "std_dev"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "canonical_product_id",
    "history",
    "statistics"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools