search_products
ActiveTool of Synchronity
Find products on a registered store. To BROWSE a store's catalog (open-ended requests like "what do they sell", "show me what's available"), call with NO query — this returns the store's products. To SEARCH, pass `query` (a product name/keyword). Returns paginated products as an interactive card. ALWAYS translate a buyer's budget or price constraint into the price params on THIS call instead of filtering in your reply: "under/below/within X" or "X budget" → `max_price: X`; "over/above/at least X" → `min_price: X`; "between X and Y" → both. Likewise pass `in_stock: true` for "available"/"in stock" and `category` when they name one. The card renders exactly what this call returns, so the filter MUST be applied here — never fetch the full catalog and then narrow it in text. Call once with your best intent (browse OR a single query); if a real search is genuinely empty, ask the user to clarify rather than re-firing reworded queries. The card shows products, prices, IDs, and Add-to-cart controls — keep your text reply to one brief sentence and do not re-list what the card shows.
Parameters schema
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"page": {
"type": "integer",
"description": "Page number (1-indexed, default: 1)"
},
"query": {
"type": "string",
"description": "Optional single search term (product name/keyword). OMIT to browse; for several names use `queries`."
},
"queries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Search several product names at once (e.g. when the buyer lists multiple items). Returns all matches in ONE call/card instead of searching one at a time. Use `query` for a single search, `queries` for several, or omit both to browse."
},
"site_id": {
"type": "string",
"description": "Registered site ID (e.g., \"site_abc123\" or \"shopify_store_1\")"
},
"category": {
"type": "string",
"description": "Filter by product category (optional)"
},
"in_stock": {
"type": "boolean",
"description": "Filter to in-stock items only (default: false)"
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (default: 20, max: 100)"
},
"max_price": {
"type": "string",
"description": "Maximum price filter in store currency, format: \"199.99\" (optional)"
},
"min_price": {
"type": "string",
"description": "Minimum price filter in store currency, format: \"19.99\" (optional)"
}
}
}No endpoints wrapped at confidence ≥ 0.50.
Parent server
Synchronity
https://github.com/themewireco/synchronity
2/7 registries