{"serverId":"mcp-registry/shop.notrobo/shop","tools":[{"name":"add-to-basket","fixed":{"name":"add-to-basket","description":"Add a product variant to a basket. Get variant IDs from get-product. Returns the updated basket.","inputSchema":{"type":"object","required":["basket_token","variant_id"],"properties":{"quantity":{"type":"integer","description":"Quantity to add (default 1)."},"variant_id":{"type":"integer","description":"The product variant ID to add."},"basket_token":{"type":"string","description":"The basket token from create-basket."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Add To Basket"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"create-basket","fixed":{"name":"create-basket","description":"Create a new basket. Returns a basket_token — keep it and pass it to every basket and checkout tool. Treat it as a secret.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Basket"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"get-order-status","fixed":{"name":"get-order-status","description":"Check an order's status. Requires the order number AND the email it was placed with.","inputSchema":{"type":"object","required":["order_number","email"],"properties":{"email":{"type":"string","description":"The email address the order was placed with."},"order_number":{"type":"string","description":"The order number, e.g. ORD-260612-AB3D."}}},"annotations":{"readOnlyHint":true},"title":"Get Order Status"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"get-product","fixed":{"name":"get-product","description":"Get a product's full details by slug: description, options, and every variant with its SKU, price and stock. Variant IDs are what you add to a basket.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"The product slug, e.g. \"enamel-mug\"."}}},"annotations":{"readOnlyHint":true},"title":"Get Product"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"list-shipping-methods","fixed":{"name":"list-shipping-methods","description":"List available delivery methods, optionally filtered by destination country (ISO 2-letter code). Use the method ID in start-checkout.","inputSchema":{"type":"object","properties":{"country":{"type":"string","description":"Optional ISO 3166-1 alpha-2 destination country, e.g. \"GB\"."}}},"annotations":{"readOnlyHint":true},"title":"List Shipping Methods"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"remove-from-basket","fixed":{"name":"remove-from-basket","description":"Remove a line from a basket. Returns the updated basket.","inputSchema":{"type":"object","required":["basket_token","item_id"],"properties":{"item_id":{"type":"integer","description":"The basket line ID (from view-basket)."},"basket_token":{"type":"string","description":"The basket token from create-basket."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Remove From Basket"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"search-products","fixed":{"name":"search-products","description":"Search the shop catalogue. Returns matching products with their slugs, price and stock availability. Use get-product for full details and variants.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms. Omit or leave empty to list the latest products."}}},"annotations":{"readOnlyHint":true},"title":"Search Products"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"start-checkout","fixed":{"name":"start-checkout","description":"Turn a basket into an order and get payment links. Two ways to pay: a human pay_url (pay-by-bank, the customer authorises in their banking app) and, when offered, an x402_payment_url for autonomous USDC settlement with no human needed. Never claim to have paid — confirm with get-order-status. For digital-only baskets, only name and country are required in shipping_address.","inputSchema":{"type":"object","required":["basket_token","email","shipping_address"],"properties":{"email":{"type":"string","description":"Customer email for order confirmation."},"basket_token":{"type":"string","description":"The basket token from create-basket."},"shipping_address":{"type":"object","required":["name","country"],"properties":{"city":{"type":"string","description":"Required for physical delivery; omit for digital-only baskets."},"name":{"type":"string"},"line1":{"type":"string","description":"Street address. Required for physical delivery; omit for digital-only baskets."},"line2":{"type":"string"},"phone":{"type":"string"},"county":{"type":"string"},"country":{"type":"string","description":"ISO 2-letter country code, e.g. GB."},"postcode":{"type":"string","description":"Required for physical delivery; omit for digital-only baskets."}},"description":"Customer address. For digital-only baskets only name and country are needed; physical orders also need line1, city and postcode."},"shipping_method_id":{"type":"integer","description":"Delivery method ID from list-shipping-methods. Omit for baskets containing only digital products."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Start Checkout"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":440,"tokensAfter":440},{"name":"update-basket-item","fixed":{"name":"update-basket-item","description":"Change the quantity of a basket line. A quantity of 0 removes it. Returns the updated basket.","inputSchema":{"type":"object","required":["basket_token","item_id","quantity"],"properties":{"item_id":{"type":"integer","description":"The basket line ID (from view-basket)."},"quantity":{"type":"integer","description":"New quantity; 0 removes the line."},"basket_token":{"type":"string","description":"The basket token from create-basket."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Basket Item"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"view-basket","fixed":{"name":"view-basket","description":"View a basket: its lines, quantities and subtotal.","inputSchema":{"type":"object","required":["basket_token"],"properties":{"basket_token":{"type":"string","description":"The basket token from create-basket."}}},"annotations":{"readOnlyHint":true},"title":"View Basket"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70}],"toolsChanged":10,"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."}