{"serverId":"mcp-registry/com.idevice/wearables","tools":[{"name":"pick_between","fixed":{"name":"pick_between","description":"For two or three products, which one the written buy-or-wait rules put ahead, or that neither is ahead, optionally for a shopper who owns a device or uses iPhone or Android, with a budget. Each product comes with its verdict (buy_now, wait, skip, check_fit or not_enough_data), its fit with the phone given, today's retailer price and the reasons, each with its source and how sure iDevice is. A product that does not work with the phone given goes last; then the verdict decides, then the fit answer","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["product_slugs"],"properties":{"budget_usd":{"type":"number","description":"A price ceiling in US dollars","exclusiveMinimum":0},"buyer_context":{"description":"Optional. The shopper's own situation, in the closed grammar of the form on the idevice.com decision pages: { context_version: \"buyer-context-v1\", context, provenance }. context: currency \"USD\", risk_tolerance \"normal\", urgency (today, within_30_days, within_90_days or can_wait), priorities (up to three { id, importance }, importance must_have, high or medium; an id is a use or buying criterion the page can weigh, such as sleep, fitness or battery_life), hard_constraints (up to three: { id: \"phone_platform\", value: \"iphone\" or \"android\" }, { id: \"no_subscription\", value: true }, { id: \"max_budget\", value: a dollar amount }), cost_inputs (up to three { kind: offered_price, trade_in or required_accessories, amount, currency \"USD\", explicit_zero }), and optionally platform, expected_ownership_months (12, 24, 36 or 48), owned_condition and ecosystem_switch_willingness. Amounts are numbers from 0 to 100000 with at most two decimals. provenance: for each hard constraint, \"hard_constraints:<id>\": \"selected\" when the shopper stated it; a hard constraint without \"selected\" is not applied. The products come from this call's own arguments. A context outside the grammar is answered with buyer_decision_info naming the fields to fix, and the rest of the answer is unchanged. The context is used for this one answer and then dropped: it goes into no log.","type":"string"},"product_slugs":{"type":"array","items":{"type":"string"},"maxItems":3,"minItems":2,"description":"Two or three product_slugs, e.g. ['oura-ring-4','samsung-galaxy-ring-1']"},"owned_platform":{"enum":["iphone","android","other"],"type":"string","description":"The phone platform the shopper uses"},"owned_device_slug":{"type":"string","description":"A product_slug of a device the shopper already owns, e.g. 'iphone-17'"}},"additionalProperties":false},"annotations":{"title":"Pick between two or three products","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Pick between two or three products"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: buyer_context. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":732,"tokensAfter":737},{"name":"should_i_buy","fixed":{"name":"should_i_buy","description":"For one product: buy now, wait, skip or check fit first, optionally for a shopper who already owns a device or uses iPhone or Android, with a budget or a use. Returns a verdict (buy_now, wait, skip, check_fit or not_enough_data) and the rule behind it, reasons that each carry a source link and how sure iDevice is (Confirmed, Reported, Our read or Not confirmed), the fit with the shopper's phone platform, timing (a newer model out, announced or reported), price (iDevice's published verdict and th","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["product_slug"],"properties":{"use_case":{"type":"string","maxLength":120,"description":"What it is for, e.g. 'running' or 'sleep tracking'"},"budget_usd":{"type":"number","description":"A price ceiling in US dollars","exclusiveMinimum":0},"product_slug":{"type":"string","description":"The product being considered, a product_slug, e.g. 'apple-watch'"},"buyer_context":{"description":"Optional. The shopper's own situation, in the closed grammar of the form on the idevice.com decision pages: { context_version: \"buyer-context-v1\", context, provenance }. context: currency \"USD\", risk_tolerance \"normal\", urgency (today, within_30_days, within_90_days or can_wait), priorities (up to three { id, importance }, importance must_have, high or medium; an id is a use or buying criterion the page can weigh, such as sleep, fitness or battery_life), hard_constraints (up to three: { id: \"phone_platform\", value: \"iphone\" or \"android\" }, { id: \"no_subscription\", value: true }, { id: \"max_budget\", value: a dollar amount }), cost_inputs (up to three { kind: offered_price, trade_in or required_accessories, amount, currency \"USD\", explicit_zero }), and optionally platform, expected_ownership_months (12, 24, 36 or 48), owned_condition and ecosystem_switch_willingness. Amounts are numbers from 0 to 100000 with at most two decimals. provenance: for each hard constraint, \"hard_constraints:<id>\": \"selected\" when the shopper stated it; a hard constraint without \"selected\" is not applied. The products come from this call's own arguments. A context outside the grammar is answered with buyer_decision_info naming the fields to fix, and the rest of the answer is unchanged. The context is used for this one answer and then dropped: it goes into no log.","type":"string"},"owned_platform":{"enum":["iphone","android","other"],"type":"string","description":"The phone platform the shopper uses"},"owned_device_slug":{"type":"string","description":"A product_slug of a device the shopper already owns, e.g. 'iphone-17'"}},"additionalProperties":false},"annotations":{"title":"Should I buy this","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Should I buy this"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: buyer_context. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":746,"tokensAfter":751}],"toolsChanged":2,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}