SuperPharmacyPlus Semantic Search API

Natural-language vector search across the SuperPharmacyPlus catalogue (~6,600 products). Designed for AI agents, MCP servers and Perplexity actions.

Endpoint

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 } })

Parameters

NameWhereTypeDescription
q / queryquery / bodystringRequired. Natural-language question, e.g. "folding commode that supports 150kg".
limitquery / bodyintegerNumber of results (1-50, default 10).
brandfiltersstringRestrict to a brand (case-insensitive exact match on the normalised brand).
categoryfiltersstringSubstring match against the category path.
intended_usefiltersstringe.g. diabetes_management, mobility_support.
feature_tagsfiltersstring[] / csvRestrict to products tagged with all listed feature tags.
availabilityfiltersstringOne of in_stock, out_of_stock, backorder, discontinued.

Response shape

{
  "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.

Example queries

Model Context Protocol (MCP) endpoint

SuperPharmacyPlus provides two separate MCP servers. Connecting to one does not connect to the other.

Pharmalama knowledge — superpharmacyplus-knowledge

https://ai.superpharmacyplus.com.au/mcp · Streamable HTTP, stateless, public, unauthenticated, read-only and rate-limited at 60 requests per minute per IP.

Native storefront shopping — superpharmacyplus-shopping

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.

Limits & etiquette

Operated by SuperPharmacyPlus. Questions or want to be whitelisted? See /llms.txt.