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
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools