Skip to content

Product (commerce) MCP ​

Expose your product catalog's search to an outside AI tool β€” Claude Code, Cursor, or any MCP-capable host β€” as a set of read-only product-search tools scoped to one account and one product catalog. Use this when you're building an AI sales agent outside MyChatBot and want it to run the same catalog search, category browsing, and attribute filtering that the in-app agent uses.

Cheat sheet ​

ItemValue
Server addresshttps://product.mychatbot.app/mcp/{account_id}/{integration_id}/stream
TransportStreamable HTTP MCP
AccessScoped by the account + catalog IDs already baked into the URL β€” the URL itself is the key
What's exposed10 read-only product-search tools (see below)
Where to get itIn the app: Knowledge Base or Agents β†’ Connectors β†’ Connect AI tools

Add to Claude Code:

bash
claude mcp add --transport http product-search "https://product.mychatbot.app/mcp/{account_id}/{integration_id}/stream"

Add to Cursor (~/.cursor/mcp.json):

json
{
  "mcpServers": {
    "product-search": {
      "url": "https://product.mychatbot.app/mcp/{account_id}/{integration_id}/stream"
    }
  }
}

Get the ready-made command from the app β€” don't build the URL by hand

Both {account_id} and {integration_id} are filled in for you. Open the Connect AI tools dialog and copy the setup for your tool:

The dialog shows the Server address, a ready-to-run Claude Code command, and a Cursor config block, each with its own copy button. {integration_id} is the specific product catalog (product-feed integration) you connected.

The 'Connect AI tools' dialog on a product catalog card β€” Server address, Claude Code command, and Cursor config with copy buttons

The Agents β†’ Connectors catalog, where each connected product catalog exposes a 'Connect AI tools' action

Scoping & access ​

Every connection targets exactly one catalog:

https://product.mychatbot.app/mcp/{account_id}/{integration_id}/stream
  • {account_id} β€” the MyChatBot account that owns the catalog.
  • {integration_id} β€” one specific product catalog on that account. Search results, categories, and attributes are read only from this catalog.

There is no header, token, or password β€” the account and catalog IDs in the URL are the access control. Anyone holding the full URL can query that catalog.

Treat the server address as a secret

Because the IDs in the URL are the only access control, anyone who obtains the address can read that catalog's products, categories, and attribute values. Share it only with trusted integrators, keep it out of public repos and client-side bundles, and re-create the catalog integration if an address leaks.

Tools exposed ​

The server offers 10 read-only tools. Your MCP client discovers them automatically once connected β€” you never call them by hand; the agent picks the right one. All of them read from the account + catalog in the URL.

Tool (MCP)What it doesWhen the agent uses it
semantic_product_searchFree-text (or image) search across the catalog; returns matching products plus the categories they fall under. Can be narrowed by attribute values.The main entry point β€” "find me X".
filter_category_productsLists products inside one category, with reliable range narrowing (price, size, and other numeric attributes).After a category is known and you need price/spec ranges.
get_all_categoriesReturns the catalog's category list.To learn what categories exist before filtering.
get_product_detailsFull record for one product, including the long description that search results leave out.When the agent needs everything about a specific item.
get_product_variantsLists the variants (size, color, etc.) of one product.To present the options for a chosen product.
find_similar_productsReturns products similar to a given one."Show me something like this."
get_category_attributesLists the attribute names that exist in a category.To learn the real, catalog-specific filter keys before building a filter.
get_category_attribute_valuesLists the common values for one attribute in a category.To learn which values are valid (e.g. which colors exist).
get_available_filtersReturns faceted filters for a category β€” each attribute with its values and how many products match each.To drive guided, faceted narrowing instead of guessing.
get_products_by_idsFetches several products at once by their IDs.To batch-load a known set of items efficiently.

Every tool is read-only. Adding or updating products happens through the product feed, not over MCP β€” see Getting inventory in.

How filtering works ​

The agent can narrow results by product attributes β€” price, color, brand, tags, and so on. Two things are worth knowing:

  • Exact-match narrowing works everywhere. Free-text search reliably filters on exact attribute values ("equals" a value, or "is one of" a list).
  • Number ranges are reliable inside a category. For "under 500" or "between 40 and 44", the agent should first resolve a category, then narrow within it (that's what filter_category_products and get_available_filters are for). Range narrowing layered directly onto a free-text search is less dependable.

Discover attributes before filtering

Attribute names and values are specific to each catalog. A good agent calls get_all_categories, then get_category_attributes / get_category_attribute_values (or get_available_filters), to learn the real keys and values before it builds a filter β€” rather than guessing field names.

Search results are trimmed to stay fast

To keep responses small, search results omit the heavy long-form description and detail fields, and semantic_product_search returns the top-level description as "[truncated]" by default. When the agent needs the full record, it should call get_product_details.

Best practices ​

Do

  • Let the agent learn the catalog first β€” categories, then attribute names and values β€” before it builds filters.
  • Use get_available_filters to power faceted narrowing (values + counts per attribute) instead of guessing.
  • Batch known IDs through get_products_by_ids rather than looping single lookups.
  • Ask for full descriptions only when the model actually needs them; otherwise keep responses lean.

Don't

  • Don't lean on number-range narrowing in free-text search; resolve a category first, then filter within it.
  • Don't expect writes β€” every tool is read-only. Catalog updates come through the product feed.

Test it ​

  1. Connect it. Paste the copied command into your terminal (Claude Code) or drop the config into ~/.cursor/mcp.json (Cursor).
  2. Confirm the client sees it. In Claude Code, run claude mcp list (or /mcp inside a session) and check that product-search is connected.
  3. Ask a catalog question. Try something like "search the catalog for a gift for dry skin under 500" and confirm the agent runs a product search and returns real items.

Empty results on older catalogs

If attribute filters silently return nothing, the catalog was probably indexed before searchable attributes existed. Fixing it needs a full reindex, which isn't a self-serve toggle: delete and re-add the catalog integration, or contact MyChatBot support with the catalog details and we'll run the reindex for you. See Troubleshooting.

See also ​