Natural-language vector search across the SuperPharmacyPlus catalogue (~6,600 products). Designed for AI agents, MCP servers and Perplexity actions.
Two equivalent forms — use either:
GET /api/search?q=<text>&limit=<n>&brand=<slug>&category=<slug>
POST /api/search (body: { query, limit, filters: { brand, category, intended_use, feature_tags, availability } })
| Name | Where | Type | Description |
|---|---|---|---|
q / query | query / body | string | Required. Natural-language question, e.g. "folding commode that supports 150kg". |
limit | query / body | integer | Number of results (1-50, default 10). |
brand | filters | string | Restrict to a brand (case-insensitive exact match on the normalised brand). |
category | filters | string | Substring match against the category path. |
intended_use | filters | string | e.g. diabetes_management, mobility_support. |
feature_tags | filters | string[] / csv | Restrict to products tagged with all listed feature tags. |
availability | filters | string | One of in_stock, out_of_stock, backorder, discontinued. |
{
"query": "folding commode that supports 150kg",
"filters": { "brand": null, "category": null },
"count": 3,
"latency_ms": 187,
"results": [
{
"id": 1234,
"name": "Folding Steel Commode 150kg",
"slug": "folding-steel-commode-150kg",
"brand": "Days",
"product_type": "commode_chair",
"summary": "A foldable steel commode chair rated to 150kg ...",
"key_points": ["...", "..."],
"image_url": "https://.../image.jpg",
"price": 219.95,
"sale_price": null,
"availability": "in_stock",
"product_url": "https://superpharmacyplus.com.au/...",
"category_path": ["Mobility", "Commodes"],
"score": 0.821
}
],
"last_updated": "2026-04-20T01:23:45.000Z"
}
score is cosine similarity in [0, 1] — higher means more similar.
/api/search?q=portable+folding+commode+150kg/api/search?q=thin+lancets+compatible+with+freestyle/api/search?q=ketone+strips+10+pack&limit=5/api/search?q=glucose+meter&intended_use=diabetes_managementSuperPharmacyPlus provides two separate MCP servers. Connecting to one does not connect to the other.
https://ai.superpharmacyplus.com.au/mcp · Streamable HTTP, stateless, public, unauthenticated, read-only and rate-limited at 60 requests per minute per IP.
ask — NLWeb v0.55 structured natural-language Q&A.search_products — enriched semantic search with catalogue filters, FAQs and the explicit BigCommerce product entity ID for shopping handoff.get_product — full enriched record by id or SKU (summary, all FAQs, alt-text, specs, dimensions, barcode, related products, freshness signals).find_alternatives — cross-sell / accessory recommendations from the curated relationships graph, with a one-line reason for each.get_category — category authority page (narrative, top products, aggregated FAQs).get_brand — brand authority page (narrative, products carried).compare_products — enriched side-by-side comparison of two to four products.https://store-js3ghti4c3-1.mybigcommerce.com/api/mcp · BigCommerce beta. The live guest endpoint last advertised these tools on 2026-10-01:
search_products, get_product_details, add_item_to_cart, update_cart_item, remove_item_from_cart, create_checkout_url.
These are two distinct servers. Both expose a search_products tool: Pharmalama takes query; BigCommerce takes term. Qualify tool calls by server name. The observed BigCommerce get_product_details input is productIds: [bigcommerce_product_id]; rediscover its live schema instead of relying on the generic guide. This store endpoint did not advertise related_products.
Connect both MCP servers explicitly; discovery links do not install the second connection. Use superpharmacyplus-knowledge for enriched semantic discovery, FAQs, specifications, comparisons, alternatives and brand/category guides. Use superpharmacyplus-shopping for live storefront commerce data, product variants/options, shopper carts and checkout handoff. Qualify search_products by server: knowledge takes query; shopping takes term. Knowledge results expose bigcommerce_product_id, the BigCommerce product entity ID, not a SKU, feed offer ID or variant ID. Re-resolve the chosen item on the shopping server before purchase; the verified native get_product_details input is productIds: [bigcommerce_product_id]. Discover current native tools/list schemas at connection time and after tool changes; fail explicitly on incompatible schemas rather than guessing. The audited tool snapshot is not a current health check. Ask the shopper to select required variants/options and confirm cart changes. Do not guess a colour, dose or size. inStock alone does not establish purchasability; never promise stock quantities or final freight from the knowledge snapshot. Keep one isolated native session per shopper. Do not reuse session IDs across customers. Stencil chat widgets require browser-generated session sync and reverse cart sync; re-initialize after login/logout. Pharmalama public-content compliance filtering does not automatically apply to native BigCommerce tools. Do not make clinical recommendations or advertise restricted medicines merely because native search returns them. If native shopping is unavailable, keep knowledge access working and link to product_url for website purchase; do not claim a cart was updated. Oscar remains the sole BigCommerce product-metadata writer.
BigCommerce shopping is not proxied through the read-only Pharmalama endpoint. Pharmalama's public-content compliance filtering does not automatically apply to direct BigCommerce MCP clients. Oscar remains the sole owner of product metadata writes.
Smoke-test with the official MCP Inspector:
npx @modelcontextprotocol/inspector
Connect to each server separately: https://ai.superpharmacyplus.com.au/mcp and https://store-js3ghti4c3-1.mybigcommerce.com/api/mcp.
Two-server connection guide: /mcp/install.
Pharmalama knowledge discovery manifest: /.well-known/mcp.json. Companion two-server description (connections are not installed automatically): https://ai.superpharmacyplus.com.au/.well-known/mcp/connections.json.
Launch announcement: /ai/announcements/mcp-launch.md.
All MCP requests are recorded in the crawler analytics dashboard under the synthetic crawler name mcp-client.
User-Agent identifying your bot so we can whitelist legitimate crawlers.Access-Control-Allow-Origin: *) for browser-based AI agents.text-embedding-3-small (1536 dims), cosine similarity via pgvector.Operated by SuperPharmacyPlus. Questions or want to be whitelisted? See /llms.txt.