{"mcp_endpoint":"/api/mcp","transport":"mcp","count":6,"tools":[{"name":"list_products","description":"List available products by location and category","inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Optional substring of storeLocation (case-insensitive). e.g. \"Mauritius\", \"Bangalore\"."},"category":{"type":"string","description":"Optional substring of productCategory or subCategory (case-insensitive). e.g. \"rental\", \"stay\"."}},"required":[],"additionalProperties":false}},{"name":"resolve_price","description":"Evaluate CPQ formula deterministically. LLM never touches the math.","inputSchema":{"type":"object","properties":{"productId":{"type":"string","description":"Convex merchantProducts ID"},"variables":{"type":"object","description":"Variable values consumed by the product CPQ formula. Keys must match product.variables[].name.","additionalProperties":{"type":"number"}}},"required":["productId","variables"],"additionalProperties":false}},{"name":"create_checkout_mandate","description":"Mint a signed AP2 mandate with 15-minute TTL. Cryptographically verified.","inputSchema":{"type":"object","properties":{"productId":{"type":"string","description":"Convex merchantProducts ID"},"variables":{"type":"object","description":"Variable values feeding into the CPQ formula","additionalProperties":{"type":"number"}}},"required":["productId","variables"],"additionalProperties":false}},{"name":"validate_mandate","description":"Check if a mandate is still within its validity window","inputSchema":{"type":"object","properties":{"mandate_id":{"type":"string","description":"AP2 mandate ID (e.g. \"cart_eph_<skuId>\") returned by create_checkout_mandate."}},"required":["mandate_id"],"additionalProperties":false}},{"name":"create_commerce_trace","description":"Sign a commerce trace from an upstream provider (e.g. a Swiggy Instamart cart prepared by another MCP) with RS256, creating a verifiable approval boundary before user confirmation. Zolofy does not execute checkout, hold funds, or store provider credentials.","inputSchema":{"type":"object","properties":{"provider":{"type":"string","description":"Identifier of the upstream commerce provider whose cart this trace represents (e.g. \"swiggy-instamart\"). Does not imply partnership."},"vertical":{"type":"string","description":"Commerce vertical, e.g. \"grocery\", \"food\", \"rental\"."},"user_intent":{"type":"string","description":"Verbatim or paraphrased natural-language buyer intent that produced the cart."},"constraints":{"type":"object","description":"Free-form constraints captured from the user (delivery window, max total, dietary, etc.).","additionalProperties":true},"selected_items":{"type":"array","description":"Items currently in the cart, as resolved by the provider MCP. Zolofy does not validate or recompute prices.","items":{"type":"object","additionalProperties":true}},"cart_total":{"type":"number","description":"Cart total in major units (e.g. 250.50). Bound into the signed trace as amount_minor."},"currency":{"type":"string","description":"ISO 4217 currency code, e.g. \"INR\", \"USD\"."},"tool_plan":{"type":"array","description":"Ordered list of upstream MCP tool calls the agent used to build the cart. Recorded for auditability.","items":{"type":"object","additionalProperties":true}},"requires_user_confirmation":{"type":"boolean","description":"Whether the agent must explicitly ask the user to approve this trace before any provider checkout call."},"expires_at":{"type":"string","description":"Optional ISO-8601 expiry. Defaults to now + 900 seconds."}},"required":["provider","vertical","user_intent","constraints","selected_items","cart_total","currency","tool_plan","requires_user_confirmation"],"additionalProperties":false}},{"name":"dispatch_work_order","description":"Dispatch a signed mandate as a work order to a property maintenance provider.","inputSchema":{"type":"object","properties":{"mandate_id":{"type":"string","description":"Signed mandate ID or trace ID"},"property_id":{"type":"string","description":"Property identifier"},"approval_source":{"type":"string","description":"\"standing_policy\" or \"explicit_user_confirmation\""},"provider_channel":{"type":"string","description":"Provider routing channel"},"issue_summary":{"type":"string","description":"Summary of the issue or service requested"},"scheduled_window":{"type":"string","description":"Requested scheduling window"}},"required":["mandate_id","property_id","approval_source","provider_channel","issue_summary","scheduled_window"],"additionalProperties":false}}]}