kalicart-global

Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
93%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin get_offer_attestation

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,019Tokens (tool definitions)
~5.2 KBTypical response size
Significant attention impact (3.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "kalicart-global": {
      "url": "https://dashboard.kalicart.com/mcp-public"
    }
  }
}

Remote endpoints

https://dashboard.kalicart.com/mcp-publicstreamable-http
https://global.kalicart.com/mcp-publicstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢global_search(q, leaf, brand, gender, color, ...)

Use this when a user wants to find or compare product candidates across participating WooCommerce merchants. Search cards include bounded variants_compact and variant_option_values from the merchant snapshot. Option values are independent and do not prove a purchasable combination. Verify the selected variant, price and stock through its merchant Bridge handoff before confirming an offer. For a request with multiple distinct items, search each item independently (calls may run in parallel), then pass the selected p2209_id values together to verify_basket. Each offer states checkout_quote_available: only those merchants can return a WooCommerce-calculated delivered total (verify_basket quote:true). Use get_product only when a search card lacks needed indexed details.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free-text product query. Each term must match as a whole word in the native merchant catalog text (name, short description, description) or in the canonical category path, so English category terms reach catalogs written in other languages: q=\"mattress\" returns products under home.bedroom.mattress even when their text is Italian. There is no server-side translation of product text; for language-neutral retrieval by category use leaf and the canonical filters."
    },
    "leaf": {
      "type": "string",
      "description": "Canonical category node. Accepts a terminal leaf (e.g. beverages.alcohol.sparkling_prosecco) or any parent node (e.g. jewellery, home.bedroom): a parent matches the node and its whole subtree, so you can widen or narrow the search by moving up or down the tree. Use list_categories to browse the tree."
    },
    "brand": {
      "type": "string",
      "description": "Brand facet filter (normalized, e.g. \"nike\")"
    },
    "gender": {
      "type": "string",
      "enum": [
        "female",
        "male",
        "unisex"
      ],
      "description": "Canonical gender facet. Filtering is discovery-tolerant: untagged and unisex products can remain candidates, so verify the chosen product. Allowed values: female, male, unisex."
    },
    "color": {
      "type": "string",
      "description": "Bridge color family (e.g. \"blue\"). Common aliases are resolved to a family available in the active index. A family match does not guarantee an exact shade; read filter_semantics.color and verify the chosen product via handoff.bridge_product_url."
    },
    "in_stock": {
      "type": "boolean",
      "description": "true filters product-level stock in the indexed snapshot. Does not verify a selected variant or a booking slot."
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "Lower bound in major currency units (for example 50 means EUR 50 for EUR offers). Matches overlapping variant price ranges in each offer currency; no FX conversion. Verify the chosen variant."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Upper bound in major currency units (for example 1550 means EUR 1,550 for EUR offers). A matching range may include variants above this bound; verify the chosen variant. Per-offer currency, no FX conversion."
    },
    "price_currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO 4217 currency of min_price/max_price (e.g. EUR). With it, only offers priced in that currency are returned; without it the bounds compare numbers in each offer's own currency. Needs min_price or max_price."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Max offers per page (1-25, default 10). Use next_cursor for the next page."
    },
    "variant": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "maxItems": 32
              }
            ]
          }
        },
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "keys": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "maxItems": 16
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 1,
                "maxItems": 32
              }
            },
            "required": [
              "values"
            ],
            "additionalProperties": false
          },
          "maxItems": 4
        }
      ],
      "description": "Constraints that must ALL hold on the SAME variant. Keys and values are the merchant's own, in any language or script (read variant_vocabulary first): {\"pa_taglia\":\"L\"}, {\"size\":[\"L\",\"Large\"]}, {\"*\":[\"rouge\",\"rosso\"]} (* = any option), or [{\"keys\":[\"pa_taglia\",\"size\"],\"values\":[\"L\",\"Large\"]}] across merchants. KaliCart never translates: pass every value you accept. match.kind: exact (ignoring case, Latin accents, separators) or normalized (same number+unit symbol, NxN, size code). Indexed snapshot: verify on the merchant before quoting."
    },
    "variant_facets": {
      "type": "boolean",
      "description": "true adds variant_vocabulary: real option keys and values with variant and in-stock counts, for the offers returned or, with no q, for the merchant (or all merchants). Use it to choose the values to pass in variant."
    },
    "variant_facets_limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "Max values per option key in variant_vocabulary (1-200, default 40); values_total is always the full count"
    },
    "variant_in_stock": {
      "type": "boolean",
      "description": "true keeps only variants whose own availability is in_stock"
    },
    "variant_price_min": {
      "type": "number",
      "minimum": 0,
      "description": "Lower bound on the variant price (major units)"
    },
    "variant_price_max": {
      "type": "number",
      "minimum": 0,
      "description": "Upper bound on the variant price (major units)"
    },
    "variant_price_currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "description": "ISO 4217 currency of variant_price_min/max (e.g. EUR). With it, only variants priced in that currency satisfy the bound; no FX conversion. Without it, bounds compare numbers in each variant's own currency."
    },
    "variant_limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Max matching variants returned per offer (1-500, default 50); matching_variant_count is always the full count"
    },
    "merchant": {
      "type": "string",
      "maxLength": 253,
      "description": "Restrict to one merchant: merchant_id as returned in result_facets.merchants or offers (e.g. \"duinshop-it\") or its domain."
    },
    "result_facets": {
      "type": "boolean",
      "description": "true adds result_facets: counts over ALL matching offers (not just this page) by merchant, category leaf, brand, availability, and price quartiles per currency. Use them to narrow the next call."
    },
    "cursor": {
      "type": "string",
      "maxLength": 512,
      "description": "Opaque next_cursor from a previous global_search with the SAME arguments; returns the next page. A cursor from a different query is rejected."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "federated": {
      "type": "boolean"
    },
    "scope": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": true
    },
    "coverage": {
      "type": "object",
      "properties": {
        "returned": {
          "type": "integer",
          "minimum": 0
        },
        "limit": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "total_known": {
          "type": "boolean"
        },
        "more_results_possible": {
          "type": "boolean"
        }
      },
      "required": [
        "returned",
        "limit",
        "total_known",
        "more_results_possible"
      ],
      "additionalProperties": true
    },
    "result_count": {
      "type": "integer",
      "minimum": 0
    },
    "applied_filters": {
      "type": "object",
      "additionalProperties": {}
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "p2209_id": {
            "type": "string"
          },
          "merchant_domain": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {},
          "availability_status": {
            "type": [
              "string",
              "null"
            ]
          },
          "category_leaf": {
            "type": [
              "string",
              "null"
            ]
          },
          "provenance": {},
          "handoff": {}
        },
        "required": [
          "p2209_id",
          "merchant_domain",
          "name"
        ],
        "additionalProperties": true
      }
    },
    "error": {
      "type": "string"
    },
    "guidance_code": {
      "type": "string"
    }
  },
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_offer_attestation(p2209_id)

Returns a cryptographic proof that this offer's product row is exactly the one the merchant signed in its catalog snapshot: the signed row, its bucket hashes, the Ed25519-signed manifest, the merchant public key and step-by-step verification. Trust is anchored on the merchant domain (key fingerprint published at key_anchor), not on KaliCart. It proves the row as signed at snapshot.generated_at, not the current price or stock: the checkout is authoritative. Independent verifier: https://global.kalicart.com/ucp/tools/verify-offer-attestation.js

Input Schema

{
  "type": "object",
  "properties": {
    "p2209_id": {
      "type": "string",
      "maxLength": 200,
      "description": "Offer id from global_search (e.g. prod_duinshop-it_446678)."
    }
  },
  "required": [
    "p2209_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢estimate_delivered_cost(p2209_id, variation_id, quantity, destination, max_age_seconds, ...)

Deterministic estimate from the merchant's own data: item price x quantity plus the shipping options the store declares for the destination (flat rate = declared base rate; free shipping with its threshold, whether this quantity reaches it and how much is missing). Lists what is not included (shipping classes, cost formulas, duties, taxes on shipping). Pass variation_id for variable products. Valid within max_age_seconds of the last merchant confirmation; live=true reads the merchant now. The checkout is the only authority.

Input Schema

{
  "type": "object",
  "properties": {
    "p2209_id": {
      "type": "string",
      "maxLength": 200
    },
    "variation_id": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 999
    },
    "destination": {
      "type": "string",
      "maxLength": 16,
      "description": "ISO 3166-1 country, optionally with region: \"IT\" or \"IT:CB\"."
    },
    "max_age_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 2592000
    },
    "live": {
      "type": "boolean"
    }
  },
  "required": [
    "p2209_id",
    "destination"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_basket(items, destination, destination_details, quote, max_age_seconds, ...)

For a multi-item request, collect p2209_id and any selected variation_id from global_search results and send all selected items in one call. For every variable product, include a variation_id from its selected variants_compact entry on the first call; without it the price and basket total may be unknown. Never substitute WooCommerce numeric product IDs for p2209_id. Set live=false for a snapshot-only check with no merchant request; live=true reads merchants. Checks a basket of offers (up to 40 lines, any merchants) against the merchants' own data. Per merchant: subtotal, declared shipping options, and checkout handoff. Optional quote=true requires live=true and destination_details; it makes one bounded merchant request per basket and returns a WooCommerce quote when the merchant enabled it, otherwise unknown alongside the estimate. A quote creates no checkout session or order; checkout may still change the total.

Input Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "p2209_id": {
            "type": "string",
            "maxLength": 200
          },
          "variation_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "description": "For a variable product, pass the chosen variant ID from global_search variants_compact; required to price that line and compute a complete basket total."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 999
          },
          "expected_unit_price": {
            "type": "number",
            "minimum": 0,
            "description": "The unit price you showed the user; checked as price_unchanged."
          }
        },
        "required": [
          "p2209_id"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 40
    },
    "destination": {
      "type": "string",
      "maxLength": 16,
      "description": "ISO 3166-1 country, optionally with region: \"IT\" or \"IT:CB\". Needed for shipping."
    },
    "destination_details": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "state": {
          "type": "string",
          "maxLength": 16
        },
        "postcode": {
          "type": "string",
          "minLength": 1,
          "maxLength": 20
        },
        "city": {
          "type": "string",
          "maxLength": 100
        }
      },
      "required": [
        "country",
        "postcode"
      ],
      "additionalProperties": false,
      "description": "Postal destination for precise declared shipping zones even with quote=false and live=false; required for quote=true. Example: {country:\"IT\",state:\"CB\",postcode:\"86100\",city:\"Campobasso\"}."
    },
    "quote": {
      "type": "boolean",
      "description": "false by default. true requires live=true and destination_details, and may contact up to four merchants for WooCommerce quotes."
    },
    "max_age_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 2592000
    },
    "live": {
      "type": "boolean",
      "description": "false (default) uses saved Global data without contacting merchants; true reads each merchant now (at most 10 lines)."
    }
  },
  "required": [
    "items"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_offer(p2209_id, variation_id, constraints, max_age_seconds, live)

Checks ONE offer (optionally a selected variant) and returns true, false or unknown per constraint with evidence. Pass constraints as an ARRAY, for example [{"field":"available"},{"field":"price","max":300,"currency":"EUR"},{"field":"ships_to","value":"IT:CB"}]. available has no expected key: ask for the fact and read its result. For a merchant-declared variant option use {"field":"option","keys":["pa_color"],"values":["black"]}; use only native merchant values, with variation_id for a specific variant. Nothing is inferred or translated. Results are unknown outside max_age_seconds (default 86400); live=true reads the merchant now. Checkout is the final authority.

Input Schema

{
  "type": "object",
  "properties": {
    "p2209_id": {
      "type": "string",
      "maxLength": 200,
      "description": "Offer id from global_search (e.g. prod_duinshop-it_446678)."
    },
    "variation_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Variant to check (from matching_variants or variants_compact). Without it, variant-dependent constraints may be unknown."
    },
    "constraints": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "price"
              },
              "min": {
                "type": "number",
                "minimum": 0
              },
              "max": {
                "type": "number",
                "minimum": 0
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$"
              }
            },
            "required": [
              "field"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "available"
              }
            },
            "required": [
              "field"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "option"
              },
              "keys": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "maxItems": 16
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "minItems": 1,
                "maxItems": 32
              }
            },
            "required": [
              "field",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "brand"
              },
              "values": {
                "$ref": "#/properties/constraints/items/anyOf/2/properties/values"
              }
            },
            "required": [
              "field",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "merchant"
              },
              "values": {
                "$ref": "#/properties/constraints/items/anyOf/2/properties/values"
              }
            },
            "required": [
              "field",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "attribute"
              },
              "keys": {
                "$ref": "#/properties/constraints/items/anyOf/2/properties/keys"
              },
              "values": {
                "$ref": "#/properties/constraints/items/anyOf/2/properties/values"
              }
            },
            "required": [
              "field",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "barcode"
              },
              "values": {
                "$ref": "#/properties/constraints/items/anyOf/2/properties/values"
              }
            },
            "required": [
              "field",
              "values"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "const": "ships_to"
              },
              "value": {
                "type": "string",
                "pattern": "^[A-Z]{2}(:[A-Z0-9-]{1,10})?$"
              }
            },
            "required": [
              "field",
              "value"
            ],
            "additionalProperties": false
          }
        ]
      },
      "minItems": 1,
      "maxItems": 8,
      "description": "Required array of 1-8 objects. Each object has field and only the keys shown by its schema. Examples: [{\"field\":\"available\"}], [{\"field\":\"price\",\"max\":50,\"currency\":\"EUR\"}]."
    },
    "max_age_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 2592000
    },
    "live": {
      "type": "boolean",
      "description": "true reads the merchant Bridge now (one request)."
    }
  },
  "required": [
    "p2209_id",
    "constraints"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢lookup_merchant(domain)

Use this when the user already knows a merchant domain and needs to check whether it publishes a KaliCart Bridge catalog, its latest observed access state, or its federation consent. This tool only reads the Global registry and never probes or modifies the merchant. Do not use it to discover products; use global_search instead.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "minLength": 4,
      "description": "Merchant domain, e.g. shop.example.com"
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "registered": {
      "type": "boolean"
    },
    "domain": {
      "type": "string"
    },
    "bridge_detected": {
      "type": "boolean"
    },
    "bridge_version": {
      "type": [
        "string",
        "null"
      ]
    },
    "merchant_discovery_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ]
    },
    "consent": {},
    "federation_status": {
      "type": "string"
    },
    "bridge_access": {
      "type": "string"
    },
    "observed_at": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "date-time"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "probe": {
      "type": "string"
    }
  },
  "required": [
    "registered",
    "domain"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_product(p2209_id)

Use this after global_search when the selected candidate needs indexed details that are not already on its search card. The p2209_id must come from global_search. Variant options and colors are merchant-declared snapshot evidence matched by variation ID. This remains a snapshot, not live merchant verification; follow the returned handoff before confirming variant, price, or stock. Skip this call when the search card already answers the question.

Input Schema

{
  "type": "object",
  "properties": {
    "p2209_id": {
      "type": "string",
      "minLength": 1,
      "description": "KaliCart product ID (e.g. prod_duinshop-it_432395)"
    }
  },
  "required": [
    "p2209_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "p2209_id": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "scope": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": true
    },
    "name": {
      "type": "string"
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "merchant_id": {
      "type": "string"
    },
    "storefront_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ]
    },
    "product_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {},
    "availability": {},
    "attributes": {},
    "variants": {},
    "provenance": {},
    "handoff": {},
    "updated_at": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "date-time"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "p2209_id"
  ],
  "additionalProperties": true,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_merchants(limit)

Use this to inspect which WooCommerce merchants currently participate in the searchable KaliCart Global catalog and how much catalog coverage each contributes. It returns stable merchant identifiers, domains, storefront URLs, product counts, and sync time. Do not use it to find products; use global_search instead.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Max merchants to return (default 20, max 50), ordered by product count descending. No pagination"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "merchants": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "merchant_id": {
            "type": "string"
          },
          "merchant_domain": {
            "type": [
              "string",
              "null"
            ]
          },
          "storefront_url": {
            "type": "string",
            "format": "uri"
          },
          "platform": {
            "type": "string"
          },
          "product_count": {
            "type": "integer",
            "minimum": 0
          },
          "last_sync": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string",
                    "format": "date-time"
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "merchant_id",
          "merchant_domain",
          "platform",
          "product_count",
          "last_sync"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": 0
    },
    "returned_count": {
      "type": "integer",
      "minimum": 0
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "merchants",
    "total",
    "returned_count",
    "truncated"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_categories(parent)

Use this to discover the canonical category paths currently represented in KaliCart Global before calling global_search with leaf. An optional parent returns that node and its full subtree. This lists category vocabulary and counts; it does not return products.

Input Schema

{
  "type": "object",
  "properties": {
    "parent": {
      "type": "string",
      "description": "Optional canonical node to restrict results to that node and its subtree (for example apparel or home.bedroom)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "leaf": {
            "type": "string"
          },
          "product_count": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "leaf",
          "product_count"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "minimum": 0
    },
    "returned_count": {
      "type": "integer",
      "minimum": 0
    },
    "truncated": {
      "type": "boolean"
    },
    "complete_via": {
      "type": "string",
      "format": "uri"
    },
    "next_step": {
      "type": "string"
    },
    "filtered_by": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "categories",
    "total",
    "returned_count",
    "truncated",
    "filtered_by"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools