search_products
Search the nutrient catalog by product name, ingredient or guaranteed-analysis element, and free-text keywords across descriptions, benefits, category and growth stage. Optional filters narrow results by ingredient origin, product category and growth stage. Results are paginated and can be sorted by relevance, newest additions, or price. Every result explains itself: a matches array lists per-field context snippets with <mark> highlights showing which query tokens hit, and whether each hit was exact or a typo-tolerant fuzzy match.
Parameters
query — optional string — e.g. "vitaroot", "seaweed", "calcium", "bloom". Typo-tolerant: minor misspellings still match and are flagged fuzzyMatch; exact hits rank higher. Omit to browse the filtered catalogorigin — optional string — only products whose ingredient origin contains this text, e.g. "seaweed", "marine", "silicon"category — optional enum — one of "Foundation", "Bloom", "Signaling", "Structure", "Finish"stage — optional string — only products whose growth stage contains this text, e.g. "veg", "late bloom", "all stages"sort — optional enum — "relevance" (default, ranked by match score; A–Z when browsing), "newest" (recently added first), or "price" (lowest 1L price first, AU retail region)page — optional integer, default 1 — page numberpageSize — optional integer, default 10, max 25 — results per page
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"query": "seaweed root",
"category": "Foundation",
"stage": "veg",
"sort": "price",
"page": 1,
"pageSize": 5
}
}
}More example queries
Typo-tolerant search — a misspelled name still finds the right product, flagged fuzzyMatch with the corrected word highlighted
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"query": "vitarot",
"page": 1,
"pageSize": 5
}
}
}Filter-only browsing — no query, just an origin and growth stage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"origin": "marine",
"stage": "bloom",
"page": 1,
"pageSize": 10
}
}
}Deep paging — fetch the next slice with page + pageSize (hasMore tells you when to stop)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"query": "vita",
"page": 2,
"pageSize": 3
}
}
}list_products
List the full Vitaponix nutrient catalog with category, growth stage and a short description for each product.
Parameters
None — call with an empty arguments object.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_products",
"arguments": {}
}
}get_product
Get full details for one product by slug, including benefits, guaranteed analysis, signaling and feeding directions.
Parameters
slug — required string — e.g. "vita-root". Use list_products or search_products to discover slugs
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_product",
"arguments": {
"slug": "vita-root"
}
}
}list_subscription_plan_options
List every configurable subscription option with its allowed values and the calculator's defaults: the two plan templates (standard vs optimized), harvest commitment range with volume-discount tiers, delivery frequency presets, payment options, seasonal break settings, pricing regions, and grower types. Call this before helping someone configure or compare subscription plans. Public — no authentication required.
Parameters
None — call with an empty arguments object.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_subscription_plan_options",
"arguments": {}
}
}list_my_subscription_plans
List the subscription plans you saved in the nutrient calculator — schedule, products and total cost, newest first. Reads only your own plans.
Parameters
None — call with an empty arguments object.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_my_subscription_plans",
"arguments": {}
}
}get_my_subscription_plan
Get the full details of one saved subscription plan: every saved setting (harvest count, veg/flower weeks, delivery frequency, payment option, seasonal break, region, grower type), the original calculator inputs, and the product breakdown with costs.
Parameters
id — required UUID — a plan ID from list_my_subscription_plans
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_my_subscription_plan",
"arguments": {
"id": "3f6b2c1e-8a4d-4e2f-9c5b-7d1a0e8f6b2a"
}
}
}update_my_subscription_plan
Update the saved settings of one of your subscription plans and get the full updated plan back. Only the fields you pass are changed — everything else is preserved. This updates settings only: product selections and total cost are not recalculated (rebuild the plan in the nutrient calculator to reprice it). Delivery frequency is validated against the plan's grow cycle so nutrients never schedule past a harvest.
Parameters
id — required UUID — a plan ID from list_my_subscription_plansplanName — optional string — new display name for the planharvestCommitment — optional integer 1–52 — harvests covered; 5%/10%/15% volume discounts at 3/5/10 harvestsfrequencyWeeks — optional integer 1–52 — weeks between deliveries; must fit within the plan's veg + flower weekspaymentOption — optional enum — "upfront", "monthly", "per_delivery", or "weekly"includeSeasonalBreak — optional boolean — enable or disable the off-season breakbreakStartMonth — optional enum — full month name, e.g. "December"breakDurationMonths — optional integer 1–9 — length of the seasonal breakregion — optional enum — "AU", "EU", or "US" (does not reprice the saved total)growerType — optional enum — "home" or "commercial"
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_my_subscription_plan",
"arguments": {
"id": "3f6b2c1e-8a4d-4e2f-9c5b-7d1a0e8f6b2a",
"harvestCommitment": 10,
"frequencyWeeks": 12,
"paymentOption": "monthly",
"includeSeasonalBreak": true,
"breakStartMonth": "December",
"breakDurationMonths": 3
}
}
}