{"serverId":"mcp-registry/com.b2bware/mcp-server","tools":[{"name":"add_cart_item","fixed":{"name":"add_cart_item","description":"Add one product line to a cart via POST /cart-items (preferred for admin/test carts). Provide cart_id OR session_uuid (and optional customer_id). Returns the cart item.","inputSchema":{"type":"object","required":["product_id","quantity"],"properties":{"price":{"type":"number","description":"Optional unit price override"},"cart_id":{"type":"number","description":"Existing cart ID"},"quantity":{"type":"number"},"product_id":{"type":"number"},"customer_id":{"type":"number"},"session_uuid":{"type":"string","description":"Session UUID if cart_id unknown"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"bulk_create_attribute_values","fixed":{"name":"bulk_create_attribute_values","description":"[attributes] Create up to 100 attribute values in one call (partial success, parallel). Same fields as create_attribute_value per item. No DataHub bulk route — MCP orchestrates POSTs.","inputSchema":{"type":"object","required":["values"],"properties":{"values":{"type":"array","items":{"type":"object","required":["value"],"properties":{"label":{"type":"string"},"value":{"type":"string"},"position":{"type":"number"},"attribute_id":{"type":"number"},"swatch_value":{"type":"string"}}}},"attribute_id":{"type":"number","description":"Default attribute_id when omitted per item"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"bulk_create_attributes","fixed":{"name":"bulk_create_attributes","description":"[attributes] Bulk create/update attribute definitions (AttributesHub insert/bulk). Max 100 items.","inputSchema":{"type":"object","required":["attributes"],"properties":{"attributes":{"type":"array","items":{"type":"object"}},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"bulk_create_brands","fixed":{"name":"bulk_create_brands","description":"[catalog] Create up to 100 brands (partial success). Same fields as create_brand per item.","inputSchema":{"type":"object","required":["brands"],"properties":{"brands":{"type":"array","items":{"type":"object"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"bulk_create_categories","fixed":{"name":"bulk_create_categories","description":"[catalog] Create up to 100 categories in one call (partial success). Items should list parents before children or include parent_id; order is normalized top-down.","inputSchema":{"type":"object","required":["categories"],"properties":{"categories":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"language":{"type":"string"},"position":{"type":"number"},"image_url":{"type":"string"},"is_active":{"type":"boolean"},"parent_id":{"type":"number"},"description":{"type":"string"}}},"description":"Array of category objects (same fields as create_category)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":190,"tokensAfter":190},{"name":"bulk_create_companies","fixed":{"name":"bulk_create_companies","description":"[customer] Create up to 100 companies (partial success). Same fields as create_company per item.","inputSchema":{"type":"object","required":["companies"],"properties":{"companies":{"type":"array","items":{"type":"object"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"bulk_create_customers","fixed":{"name":"bulk_create_customers","description":"[b2b] Create up to 100 customers (partial success). Same shape as create_customer_full per item.","inputSchema":{"type":"object","required":["customers"],"properties":{"customers":{"type":"array","items":{"type":"object"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"bulk_create_orders","fixed":{"name":"bulk_create_orders","description":"[orders-admin] Create up to 100 orders (partial success). Each item uses the same fields as create_order.","inputSchema":{"type":"object","required":["orders"],"properties":{"orders":{"type":"array","items":{"type":"object"}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"bulk_create_products","fixed":{"name":"bulk_create_products","description":"[catalog] Create or upsert up to 100 products (partial success). Uses SKU upsert per item for idempotency.","inputSchema":{"type":"object","required":["products"],"properties":{"products":{"type":"array","items":{"type":"object","description":"Same fields as create_product / upsert_product"}},"use_upsert":{"type":"boolean","description":"If true (default), PUT upsert/single per SKU; if false, POST create only"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"bulk_update_stock","fixed":{"name":"bulk_update_stock","description":"[catalog] Bulk upsert stock records (POST /stock/upsert/bulk, max ~1000).","inputSchema":{"type":"object","required":["stock"],"properties":{"stock":{"type":"array","items":{"type":"object","required":["product_id","warehouse_id","stock_quantity"],"properties":{"product_id":{"type":"number"},"warehouse_id":{"type":"number"},"stock_quantity":{"type":"number"}}}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"bulk_upsert_prices","fixed":{"name":"bulk_upsert_prices","description":"[catalog] Bulk upsert prices (POST /prices/upsert/bulk, max ~1000).","inputSchema":{"type":"object","required":["prices"],"properties":{"prices":{"type":"array","items":{"type":"object","description":"Price row: product_id, price, cost_price, special_price, tier_prices, etc."}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"calculate_tax","fixed":{"name":"calculate_tax","description":"Calculate tax for line items given customer context (country, region, customer_group, vat_number). Uses TaxHub rule engine. Returns tax amounts per line and total. Useful before checkout or for quotes.","inputSchema":{"type":"object","required":["line_items","customer"],"properties":{"customer":{"type":"object","properties":{"email":{"type":"string"},"region":{"type":"string"},"country":{"type":"string","description":"Country code e.g. DE, AT"},"vat_number":{"type":"string"},"customer_group":{"type":"string"}},"description":"Customer context for tax rules (country, region, vat_number, etc.)"},"line_items":{"type":"array","items":{"type":"object","required":["subtotal","tax_class_id"],"properties":{"subtotal":{"type":"number","description":"Line subtotal amount"},"product_id":{"type":"number","description":"Optional product ID"},"tax_class_id":{"type":"number","description":"Tax class ID"}}},"description":"Line items with subtotal and tax_class_id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":279,"tokensAfter":279},{"name":"cancel_order","fixed":{"name":"cancel_order","description":"[orders-admin] Cancel an order (status → canceled). Optional reason stored as order comment.","inputSchema":{"type":"object","required":["order_id"],"properties":{"reason":{"type":"string"},"order_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"checkout","fixed":{"name":"checkout","description":"Execute checkout on an existing cart and create an order. Requires a cart_id, shipping and billing address IDs, and method IDs. IMPORTANT: Before calling checkout, always fetch available shipping methods via list_shipping_methods and billing methods via list_billing_methods if the IDs are not already known. Both shipping_method_id AND billing_method_id are required for a successful checkout. Use list_customer_addresses to fetch existing addresses for a customer.","inputSchema":{"type":"object","required":["cart_id","shipping_address_id","billing_address_id","shipping_method_id","billing_method_id"],"properties":{"cart_id":{"type":"string","description":"Cart ID returned by upsert_cart"},"comment":{"type":"string"},"billing_method_id":{"type":["number","string"],"description":"Required billing method ID. Use list_billing_methods first."},"billing_address_id":{"type":"number","description":"Required billing address ID. Use list_customer_addresses to fetch valid IDs."},"shipping_method_id":{"type":["number","string"],"description":"Required shipping method ID. Use list_shipping_methods first."},"shipping_address_id":{"type":"number","description":"Required shipping address ID. Use list_customer_addresses to fetch valid IDs."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":356,"tokensAfter":356},{"name":"create_attribute","fixed":{"name":"create_attribute","description":"[attributes] Create an attribute definition in AttributesHub. Set entity_scope (product, customer, order, company, category) or group_id. Brands use a product-scoped attribute (e.g. Brand/Manufacturer) with values via create_attribute_value / create_brand.","inputSchema":{"type":"object","required":["code","label","type"],"properties":{"code":{"type":"string","description":"Snake_case preferred; pH → ph, spaces → underscores (auto-normalised)"},"type":{"enum":["select","multiselect","text","textarea","number","boolean","date","datetime","swatch","numeric","radio"],"type":"string"},"label":{"type":"string"},"group_id":{"type":"number","description":"Overrides entity_scope when set"},"position":{"type":"number"},"is_required":{"type":"boolean","description":"Maps to API required"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."},"show_in_cart":{"type":"boolean","description":"Display under line items in storefront cart (product group)"},"default_value":{"description":"Default value when entity has no assignment","type":"string"},"is_filterable":{"type":"boolean","description":"Storefront layered navigation — maps to used_for_filtering"},"is_searchable":{"type":"boolean","description":"Filterable with results — maps to filterable_with_results"},"use_in_search":{"type":"boolean","description":"Include in product keyword search (product group, searchable types only)"},"display_options":{"type":"object","description":"AttributesHub display_options JSON"},"use_for_sorting":{"type":"boolean","description":"Admin/list sort by attribute_code — triggers background backfill"},"use_in_checkout":{"type":"boolean","description":"Expose on storefront checkout (order group only)"},"validation_rules":{"type":"object","description":"Stored in meta_data.validation on the attribute"},"use_in_notifications":{"type":"boolean","description":"Expose as NotificationHub email template variable"},"use_for_admin_filtering":{"type":"boolean","description":"Admin grid filter by attribute_code — shares backfill with use_for_sorting"},"visible_on_product_page":{"type":"boolean","description":"Show on product detail page (product group)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: default_value. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":657,"tokensAfter":661},{"name":"create_attribute_group","fixed":{"name":"create_attribute_group","description":"[attributes] Create an attribute group for a scope (usually pre-seeded per tenant).","inputSchema":{"type":"object","required":["name","entity_scope"],"properties":{"name":{"type":"string"},"position":{"type":"number","description":"display_order"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"create_attribute_value","fixed":{"name":"create_attribute_value","description":"[attributes] Create a predefined option (select/multiselect/swatch). swatch_value is forwarded to DataHub but may return null until backend persists it (verify with list_attribute_values). For colors without hex support, use value labels (e.g. \"blue\") and assign via auto_create_value on products.","inputSchema":{"type":"object","required":["attribute_id","value"],"properties":{"label":{"type":"string"},"value":{"type":"string"},"position":{"type":"number"},"attribute_id":{"type":"number"},"swatch_value":{"type":"string","description":"Hex (#RRGGBB) or image URL — sent to API; persistence varies"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":183,"tokensAfter":183},{"name":"create_automation_flow","fixed":{"name":"create_automation_flow","description":"[automation] Create a new automation flow. POST /flows. Pass the full flow payload as body (trigger, actions, conditions, name, etc.). Call list_available_automation_triggers and list_available_automation_actions first.","inputSchema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"Flow payload sent as JSON body to POST /flows"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"create_billing_address","fixed":{"name":"create_billing_address","description":"Create a billing address for a customer. Country accepts ISO-2 (e.g. \"DE\") or full name (e.g. \"Germany\") — both are normalised automatically.","inputSchema":{"type":"object","required":["customer_id","address_line_1","city","zip","country"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string","description":"Display name for the address. Auto-generated from first_name + last_name if omitted."},"company":{"type":"string"},"country":{"type":"string","description":"Country as ISO-2 code (\"AT\") or full name (\"Austria\")"},"last_name":{"type":"string"},"first_name":{"type":"string"},"customer_id":{"type":"number"},"address_line_1":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":207},{"name":"create_brand","fixed":{"name":"create_brand","description":"[catalog] Create a product brand/manufacturer. Brands are stored as attribute values on the Brand/Manufacturer attribute (AttributesHub). Names should be unique. Call list_brands first to avoid duplicates. Returns { id, name, slug, ... } where id is the attribute_value id for use as brand_id on create_product.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"slug":{"type":"string","description":"URL slug; auto-generated from name if omitted"},"website":{"type":"string"},"logo_url":{"type":"string","description":"Remote logo URL (stored as swatch_value when supported)"},"position":{"type":"number"},"is_active":{"type":"boolean","description":"Default true"},"description":{"type":"string"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":252,"tokensAfter":252},{"name":"create_category","fixed":{"name":"create_category","description":"[catalog] Create a B2Bware product category. Call list_categories first to obtain parent_id values for subcategories. Use for demo catalog provisioning.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Category display name (required)"},"slug":{"type":"string","description":"URL slug; auto-generated if omitted"},"language":{"type":"string","description":"Translation locale, e.g. \"de\""},"position":{"type":"number","description":"Sort order"},"image_url":{"type":"string","description":"Remote image URL (URL-only mode)"},"is_active":{"type":"boolean","description":"Default true"},"parent_id":{"type":"number","description":"Parent category ID; omit for top-level"},"image_file":{"type":"string","description":"Base64 for CDN upload"},"description":{"type":"string"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."},"image_fetch_url":{"type":"string","description":"Remote URL for CDN ingest"},"image_file_name":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":309,"tokensAfter":309},{"name":"create_company","fixed":{"name":"create_company","description":"[customer] Create a B2B company in CustomerHub. Optional address fields map to the company record. Requires admin/write scope.","inputSchema":{"type":"object","required":["name"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"notes":{"type":"string"},"phone":{"type":"string"},"country":{"type":"string"},"website":{"type":"string"},"vat_number":{"type":"string"},"credit_limit":{"type":"number"},"payment_terms":{"type":"string"},"address_line_1":{"type":"string"},"company_number":{"type":"string"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."},"customer_group_id":{"type":"number"},"registration_number":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"create_company_address","fixed":{"name":"create_company_address","description":"[customer] Create shipping and/or billing address for a company (type: billing | shipping | both).","inputSchema":{"type":"object","required":["company_id","type","address_line_1","zip","city","country"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"type":{"enum":["billing","shipping","both"],"type":"string"},"company":{"type":"string"},"country":{"type":"string","description":"ISO-2 or full country name"},"last_name":{"type":"string"},"company_id":{"type":"number"},"first_name":{"type":"string"},"is_default":{"type":"boolean"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"create_coupon","fixed":{"name":"create_coupon","description":"[rulehub] Create a coupon. RuleHub POST /coupons. Pass the full API body (code, cart_price_rule_ids, …).","inputSchema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"Coupon payload passthrough"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"create_customer","fixed":{"name":"create_customer","description":"Create a new customer account in B2Bware.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"},"phone":{"type":"string"},"role_id":{"type":"number"},"last_name":{"type":"string"},"company_id":{"type":"number","description":"Link to B2B company (use list_companies)"},"first_name":{"type":"string"},"customer_group_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"create_customer_full","fixed":{"name":"create_customer_full","description":"[b2b] Create a customer with optional company link and billing/shipping addresses in one call. Use list_companies or search_companies first if you need an existing company_id.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"},"phone":{"type":"string"},"role_id":{"type":"number"},"last_name":{"type":"string"},"company_id":{"type":"number"},"first_name":{"type":"string"},"billing_address":{"type":"object","required":["address_line_1","zip","city","country"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"company":{"type":"string"},"country":{"type":"string","description":"ISO-2 or full country name"},"last_name":{"type":"string"},"first_name":{"type":"string"},"is_default":{"type":"boolean"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"}}},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."},"shipping_address":{"type":"object","required":["address_line_1","zip","city","country"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"company":{"type":"string"},"country":{"type":"string","description":"ISO-2 or full country name"},"last_name":{"type":"string"},"first_name":{"type":"string"},"is_default":{"type":"boolean"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"}}},"customer_group_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":419,"tokensAfter":419},{"name":"create_event_subscription","fixed":{"name":"create_event_subscription","description":"[eventhub] Create a webhook subscription. EventHub POST /event-subscriptions. Pass the full API body (name, event_slug, target_url, payload_includes, conditions, …).","inputSchema":{"type":"object","required":["body"],"properties":{"body":{"type":"object","description":"Event subscription payload passthrough"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"create_notification","fixed":{"name":"create_notification","description":"[notification] Create a notification in NotificationHub. Requires notification_type_id (from list_notification_types), notifiable target, title, message. Channels: email, database, broadcast, sms, push, slack.","inputSchema":{"type":"object","required":["notification_type_id","notifiable_type","notifiable_id","title","message"],"properties":{"title":{"type":"string"},"message":{"type":"string"},"channels":{"type":"array","items":{"enum":["email","database","broadcast","sms","push","slack"],"type":"string"}},"priority":{"type":"number","description":"1–10 (optional)"},"notifiable_id":{"type":"number"},"notifiable_type":{"type":"string","description":"Polymorphic type e.g. Customers"},"notification_type_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"create_order","fixed":{"name":"create_order","description":"[orders-admin] Create an order directly in OrderHub (demo/backfill). Does NOT run cart checkout — use for historical or manual orders. Call list_shipping_methods, list_billing_methods, and list_customer_addresses first. Valid status: draft, pending, processing, completed, canceled, invoiced, shipped, paid, etc.","inputSchema":{"type":"object","required":["customer_id","shipping_address_id","billing_address_id","shipping_method_id","billing_method_id","line_items"],"properties":{"source":{"type":"string","description":"Order source tag: manual, pdf, edi, storefront, api (stored as attribute)"},"status":{"type":"string","description":"Default pending. Use completed for demo history."},"line_items":{"type":"array","items":{"type":"object","required":["quantity"],"properties":{"name":{"type":"string","description":"Required if product_id omitted"},"price":{"type":"number","description":"Net unit price; fetched from catalog if omitted with product_id"},"quantity":{"type":"number"},"product_id":{"type":"number","description":"ProductHub product ID (name/price auto-filled if omitted)"},"tax_class_id":{"type":"number"}}},"minItems":1},"order_date":{"type":"string","description":"ISO-8601 backfill date (_created_at)"},"customer_id":{"type":"number"},"order_number":{"type":"string"},"internal_notes":{"type":"string","description":"Added as internal order comment after create"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."},"customer_comment":{"type":"string","description":"Added as order comment after create"},"billing_method_id":{"type":"number"},"billing_address_id":{"type":"number"},"external_reference":{"type":"string","description":"Stored as external_id"},"shipping_method_id":{"type":"number"},"shipping_address_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":522,"tokensAfter":522},{"name":"create_order_comment","fixed":{"name":"create_order_comment","description":"[orders-admin] Add a comment to an existing order (POST /order-comments). Use for customer notes or internal support annotations.","inputSchema":{"type":"object","required":["order_id","comment"],"properties":{"comment":{"type":"string"},"order_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"create_product","fixed":{"name":"create_product","description":"[catalog] Create a new simple product with price, stock, categories, optional images and tier prices. Call list_categories first for valid category_ids. SKU must be unique.","inputSchema":{"type":"object","required":["sku","name","price"],"properties":{"ean":{"type":"string","description":"EAN-13 / GTIN (check digit validated)"},"sku":{"type":"string"},"name":{"type":"string"},"brand":{"type":"string","description":"Legacy text brand; prefer brand_id from create_brand"},"price":{"type":"number","description":"Net regular price"},"stock":{"type":"number","description":"Default 0"},"weight":{"type":"number","description":"Product weight (unit per portal config)"},"brand_id":{"type":"number","description":"Brand id (attribute_value id from create_brand / list_brands)"},"language":{"type":"string"},"attributes":{"type":"object","description":"Custom attributes map (attribute_id or key → value)"},"description":{"type":"string"},"tier_prices":{"type":"array","items":{"type":"object","required":["quantity_min","price"],"properties":{"price":{"type":"number"},"quantity_min":{"type":"number"},"customer_group_id":{"type":"number"}}}},"category_ids":{"type":"array","items":{"type":"number"}},"product_type":{"enum":["simple","configurable","license","dt-one"],"type":"string"},"tax_class_id":{"type":"number"},"warehouse_id":{"type":"number","description":"Default warehouse ID (default 1)"},"main_image_url":{"type":"string","description":"External image URL — URL-only mode (no CDN ingest)"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."},"main_image_file":{"type":"string","description":"Base64 file content for CDN upload (ProductHub media[].file)"},"short_description":{"type":"string"},"main_image_fetch_url":{"type":"string","description":"Remote URL for server-side CDN ingest (maps to media[].file)"},"main_image_file_name":{"type":"string","description":"Original filename for CDN path"},"additional_image_urls":{"type":"array","items":{"type":"string"},"description":"Gallery URLs (same passthrough semantics as main_image_url)"},"license_configuration":{"type":"object","description":"For product_type license"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":626,"tokensAfter":626},{"name":"create_product_tier_price","fixed":{"name":"create_product_tier_price","description":"[catalog] Add a quantity tier price to an existing product. Fetches current tiers and appends one row.","inputSchema":{"type":"object","required":["product_id","quantity_min","price"],"properties":{"price":{"type":"number","description":"Net tier price"},"product_id":{"type":"number"},"quantity_min":{"type":"number"},"customer_group_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"create_shipping_address","fixed":{"name":"create_shipping_address","description":"Create a shipping address for a customer. Country accepts ISO-2 (e.g. \"AT\") or full name (e.g. \"Austria\") — both are normalised automatically.","inputSchema":{"type":"object","required":["customer_id","address_line_1","city","zip","country"],"properties":{"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string","description":"Display name for the address, e.g. \"John Doe\" or company name. Auto-generated from first_name + last_name if omitted."},"company":{"type":"string"},"country":{"type":"string","description":"Country as ISO-2 code (\"AT\") or full name (\"Austria\")"},"last_name":{"type":"string"},"first_name":{"type":"string"},"customer_id":{"type":"number"},"address_line_1":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":217,"tokensAfter":217},{"name":"delete_attribute","fixed":{"name":"delete_attribute","description":"[attributes] Delete an attribute definition by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"delete_attribute_group","fixed":{"name":"delete_attribute_group","description":"[attributes] Delete an attribute group by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"delete_attribute_value","fixed":{"name":"delete_attribute_value","description":"[attributes] Delete an attribute value by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"delete_billing_address","fixed":{"name":"delete_billing_address","description":"[b2b] Delete a billing address by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"delete_brand","fixed":{"name":"delete_brand","description":"[catalog] Delete a brand (attribute value). Fails with 409 if products still use it unless force=true.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"force":{"type":"boolean","description":"Delete even when products reference this brand"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"delete_category","fixed":{"name":"delete_category","description":"[catalog] Delete a category by ID. May fail if products are still assigned.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Category ID"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"delete_company","fixed":{"name":"delete_company","description":"[customer] Delete a company by ID. CustomerHub DELETE /companies/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"delete_customer","fixed":{"name":"delete_customer","description":"[b2b] Delete a customer by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":45,"tokensAfter":45},{"name":"delete_order","fixed":{"name":"delete_order","description":"[orders-admin] Permanently delete an order by ID.","inputSchema":{"type":"object","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"delete_product","fixed":{"name":"delete_product","description":"[catalog] Delete a product by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"delete_shipping_address","fixed":{"name":"delete_shipping_address","description":"[b2b] Delete a shipping address by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"deploy_demo_catalog","fixed":{"name":"deploy_demo_catalog","description":"[orders-admin] Deploy the built-in ProductHub demo catalog (categories + sample products). Use on empty demo instances only — may duplicate data if run twice.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_attribute","fixed":{"name":"get_attribute","description":"[attributes] Get an attribute by id. Include values,group for full context.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. values,group,translation"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"get_attribute_group","fixed":{"name":"get_attribute_group","description":"[attributes] Get an attribute group by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"get_attribute_value","fixed":{"name":"get_attribute_value","description":"[attributes] Get a single attribute value by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. attribute,translation"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"get_automation_flow","fixed":{"name":"get_automation_flow","description":"[automation] Get a single automation flow by ID. GET /flows/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"get_brand","fixed":{"name":"get_brand","description":"[catalog] Get a brand by id (attribute_value id).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"get_cart","fixed":{"name":"get_cart","description":"Retrieve the current cart contents for a session by session_uuid. Uses API filter when supported; otherwise may require multiple list calls when many carts exist.","inputSchema":{"type":"object","required":["session_uuid"],"properties":{"session_uuid":{"type":"string","description":"Session UUID used when the cart was created"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"get_cart_price_rule","fixed":{"name":"get_cart_price_rule","description":"[rulehub] Get a cart price rule by ID. RuleHub GET /cart-price-rules/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"get_category","fixed":{"name":"get_category","description":"Get a single B2Bware category by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Category ID"},"language":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"get_company","fixed":{"name":"get_company","description":"[customer] Get a company by ID from CustomerHub. Default includes: customers, shippingAddresses, billingAddresses. Add attributeValues,attributeValues.value for custom company attributes.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. customers,shippingAddresses,billingAddresses,attributeValues,attributeValues.value"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"get_company_attributes","fixed":{"name":"get_company_attributes","description":"[attributes] Read custom attributes on a company.","inputSchema":{"type":"object","required":["company_id"],"properties":{"company_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"get_coupon","fixed":{"name":"get_coupon","description":"[rulehub] Get a coupon by ID. RuleHub GET /coupons/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"get_customer","fixed":{"name":"get_customer","description":"Get full details of a single customer by ID, including their shipping and billing addresses.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Customer ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"get_customer_attributes","fixed":{"name":"get_customer_attributes","description":"[attributes] Read attributes on a customer.","inputSchema":{"type":"object","required":["customer_id"],"properties":{"customer_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":56,"tokensAfter":56},{"name":"get_dashboard_layout","fixed":{"name":"get_dashboard_layout","description":"[dashboard] Get the current saved dashboard layout for the installation. GET /api/v1/apps/dashboard-hub/layout. Read-only.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"get_entity_attributes","fixed":{"name":"get_entity_attributes","description":"[attributes] Read attribute assignments for any entity scope.","inputSchema":{"type":"object","required":["entity_scope","entity_id"],"properties":{"entity_id":{"type":"string"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"get_event_delivery_log","fixed":{"name":"get_event_delivery_log","description":"[eventhub] Get a single delivery attempt with request/response details. EventHub GET /event-delivery-logs/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"get_event_subscription","fixed":{"name":"get_event_subscription","description":"[eventhub] Get a webhook subscription by ID. EventHub GET /event-subscriptions/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"get_flow_run","fixed":{"name":"get_flow_run","description":"[automation] Get a single flow run by ID. GET /flow-runs/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"get_license_key","fixed":{"name":"get_license_key","description":"[license] Get a single license key by ID from LicenseHub.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. usageLogs,pool,product,order"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_media","fixed":{"name":"get_media","description":"[media] Get a single media record by ID from MediaHub.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. mediable"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":66,"tokensAfter":66},{"name":"get_notification","fixed":{"name":"get_notification","description":"[notification] Get a single notification by ID from NotificationHub.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"include":{"type":"string","description":"e.g. notificationType,attempts,creator"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"get_notification_stats","fixed":{"name":"get_notification_stats","description":"[notification] Aggregate notification statistics from GET /notifications/stats.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"get_order","fixed":{"name":"get_order","description":"Get full details of a single order including line items.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Order ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":58,"tokensAfter":58},{"name":"get_order_attributes","fixed":{"name":"get_order_attributes","description":"[attributes] Read attributes on an order.","inputSchema":{"type":"object","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"get_product","fixed":{"name":"get_product","description":"Get full details of a single B2Bware product by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Product ID"},"include":{"type":"string","description":"Comma-separated includes; use brand for { id, name, slug, logo_url }"},"language":{"type":"string","description":"Content language, e.g. \"de\""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_product_attributes","fixed":{"name":"get_product_attributes","description":"[attributes] Alias: get_entity_attributes for products (includes brand summary).","inputSchema":{"type":"object","required":["product_id"],"properties":{"product_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"get_rule_condition_schema","fixed":{"name":"get_rule_condition_schema","description":"[rulehub] Get condition-builder schema for rule targets. RuleHub GET /conditions/schema or /conditions/schema/{target}. Targets: cart, catalog, shipping, validation.","inputSchema":{"type":"object","properties":{"target":{"type":"string","description":"Optional target slug (cart, catalog, shipping, validation). Omit for all targets."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"get_settings_config","fixed":{"name":"get_settings_config","description":"[settings] Get a single configuration entry by ID. GET /config/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"list_attribute_group_types","fixed":{"name":"list_attribute_group_types","description":"[attributes] List valid attribute group type strings from the API.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"list_attribute_groups","fixed":{"name":"list_attribute_groups","description":"[attributes] List attribute groups (Product, Category, Order, Customer, Company). Use entity_scope to filter.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"per_page":{"type":"number"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"list_attribute_types","fixed":{"name":"list_attribute_types","description":"[attributes] List valid attribute definition types from AttributesHub (e.g. select, text, datetime, swatch).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"list_attribute_values","fixed":{"name":"list_attribute_values","description":"[attributes] List values for an attribute_id (all options for that field).","inputSchema":{"type":"object","required":["attribute_id"],"properties":{"page":{"type":"number"},"search":{"type":"string","description":"Partial match on value"},"per_page":{"type":"number"},"attribute_id":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"list_attributes","fixed":{"name":"list_attributes","description":"[attributes] List attribute definitions. Filter by entity_scope or group_id. Product group includes Brand/Manufacturer and all catalog facets.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"type":{"type":"string","description":"Attribute type filter, e.g. select, text"},"include":{"type":"string"},"group_id":{"type":"number"},"per_page":{"type":"number"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":185,"tokensAfter":185},{"name":"list_automation_flows","fixed":{"name":"list_automation_flows","description":"[automation] List automation flows (paginated). GET /api/v1/apps/automation-hub/flows. Filter by name or status when supported.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Filter by flow name (partial match)"},"page":{"type":"number"},"sort":{"type":"string"},"status":{"type":"string","description":"Filter by flow status"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"list_available_automation_actions","fixed":{"name":"list_available_automation_actions","description":"[automation] List actions available for flow steps. GET /flows/available-actions/list (falls back to /available-actions/grouped).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"list_available_automation_triggers","fixed":{"name":"list_available_automation_triggers","description":"[automation] List triggers available for new flows (discovered at runtime). GET /flows/available-triggers/list.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"list_available_events","fixed":{"name":"list_available_events","description":"[eventhub] List event slugs available for webhook subscriptions. EventHub GET /event-subscriptions/available-events/list.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"list_billing_methods","fixed":{"name":"list_billing_methods","description":"List all available payment / billing methods. Call this before checkout to retrieve valid method IDs required for the checkout call.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":64,"tokensAfter":64},{"name":"list_brands","fixed":{"name":"list_brands","description":"[catalog] List brands with pagination. Optional search matches brand name (partial). Filter is_active is applied client-side when stored in meta_data.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","description":"e.g. value or -value"},"search":{"type":"string"},"per_page":{"type":"number"},"is_active":{"type":"boolean"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"list_cart_price_rules","fixed":{"name":"list_cart_price_rules","description":"[rulehub] List cart-level price rules. RuleHub GET /cart-price-rules.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"list_cart_validation_rules","fixed":{"name":"list_cart_validation_rules","description":"[rulehub] List cart validation rules (checkout constraints). RuleHub GET /cart-validation-rules.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"list_carts","fixed":{"name":"list_carts","description":"List carts (open/abandoned carts for operator queries). Filter by customer_id. Use with list_orders (sort=-id) for recent purchases vs open carts.","inputSchema":{"type":"object","properties":{"page":{"type":"number","description":"Page number (default 1)"},"per_page":{"type":"number","description":"Results per page (default 50)"},"customer_id":{"type":"number","description":"Filter by customer ID (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"list_categories","fixed":{"name":"list_categories","description":"List all B2Bware product categories.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"language":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":59,"tokensAfter":59},{"name":"list_companies","fixed":{"name":"list_companies","description":"[customer] List B2B companies from CustomerHub (/companies). No separate CompanyHub. Use search_companies for multi-field lookup. Custom fields via set_company_attributes (AttributesHub company group).","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"email":{"type":"string","description":"Filter by email (partial match)"},"per_page":{"type":"number"},"vat_number":{"type":"string","description":"Filter by VAT (partial match)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"list_company_customers","fixed":{"name":"list_company_customers","description":"[customer] List customers linked to a company (company_id on customer records).","inputSchema":{"type":"object","required":["company_id"],"properties":{"company_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"list_countries","fixed":{"name":"list_countries","description":"[settings] List all countries with name, iso2, and iso3 codes. GET /api/v1/apps/settings-hub/countries.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"list_coupons","fixed":{"name":"list_coupons","description":"[rulehub] List promotion coupons. RuleHub GET /coupons.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"list_currencies","fixed":{"name":"list_currencies","description":"[settings] List all currencies (live rates from openexchangerates.org with fallback). GET /api/v1/apps/settings-hub/currencies.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"list_customer_addresses","fixed":{"name":"list_customer_addresses","description":"List all shipping and billing addresses for a customer.","inputSchema":{"type":"object","required":["customer_id"],"properties":{"customer_id":{"type":"string","description":"Customer ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"list_customers","fixed":{"name":"list_customers","description":"List all B2Bware customers with pagination, sorting and filtering. Valid sort fields: id, -id, _created_at, -_created_at, email, first_name.","inputSchema":{"type":"object","properties":{"page":{"type":"number","description":"Page number (default 1)"},"sort":{"type":"string","description":"Sort field, e.g. \"-_created_at\" for newest first"},"email":{"type":"string","description":"Filter by email (partial match)"},"per_page":{"type":"number","description":"Results per page (default 20)"},"customer_number":{"type":"string","description":"Filter by customer number (partial match)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"list_dashboard_widgets","fixed":{"name":"list_dashboard_widgets","description":"[dashboard] List all widgets the current installation may render on the dashboard. GET /api/v1/apps/dashboard-hub/available-widgets. Read-only.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"list_event_delivery_logs","fixed":{"name":"list_event_delivery_logs","description":"[eventhub] List webhook delivery attempts (audit log). EventHub GET /event-delivery-logs.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"list_event_subscriptions","fixed":{"name":"list_event_subscriptions","description":"[eventhub] List webhook subscriptions with pagination. EventHub GET /event-subscriptions.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"list_flow_runs","fixed":{"name":"list_flow_runs","description":"[automation] List flow execution runs (paginated). GET /flow-runs. Filter by flow_id or status when needed.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"status":{"type":"string","description":"Filter by run status"},"flow_id":{"type":"string","description":"Filter runs for a specific flow"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":116,"tokensAfter":116},{"name":"list_license_keys","fixed":{"name":"list_license_keys","description":"[license] List license keys from LicenseHub (paginated, filterable). Statuses: available, assigned, activated, expired, revoked. Include usageLogs,pool,product,order.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","description":"e.g. -expiration_date"},"status":{"enum":["available","assigned","activated","expired","revoked"],"type":"string"},"include":{"type":"string","description":"e.g. usageLogs,pool,product,order"},"per_page":{"type":"number"},"product_id":{"type":"number"},"license_key":{"type":"string","description":"Partial match filter"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":179,"tokensAfter":179},{"name":"list_locales","fixed":{"name":"list_locales","description":"[settings] List all available locales from SettingsHub (e.g. en_US, de_DE). GET /api/v1/apps/settings-hub/locales.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"list_media","fixed":{"name":"list_media","description":"[media] List media records from MediaHub. Filter by mediable_type, mediable_id, media_type, is_primary.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","description":"e.g. sort_order"},"include":{"type":"string","description":"e.g. mediable"},"per_page":{"type":"number"},"is_primary":{"type":"boolean"},"media_type":{"enum":["image","video","document","audio"],"type":"string"},"mediable_id":{"type":"number"},"mediable_type":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"list_notification_types","fixed":{"name":"list_notification_types","description":"[notification] List notification types (templates, channels, slugs) from GET /types.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"list_notifications","fixed":{"name":"list_notifications","description":"[notification] List notifications from NotificationHub (paginated, filterable). Filter by status, priority, notifiable_type/id. Include notificationType,attempts,creator.","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string","description":"e.g. -_created_at"},"status":{"type":"string","description":"pending | sent | failed | partial | read"},"include":{"type":"string","description":"e.g. notificationType,attempts,creator"},"per_page":{"type":"number"},"notifiable_id":{"type":"number"},"notifiable_type":{"type":"string","description":"e.g. Customers, Users"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"list_orders","fixed":{"name":"list_orders","description":"List B2Bware orders with optional filters, sorting, and pagination. Valid statuses: draft, pending, processing, completed, canceled, invoiced, shipped, paid, refunded, partially_refunded, pending_payment. Valid sort fields: id, -id, _created_at, -_created_at, total_price, -total_price, status, customer_id. Use sort='-id' or sort='-_created_at' to get the NEWEST order first. Date format: YYYY-MM-DD.","inputSchema":{"type":"object","properties":{"page":{"type":"number","description":"Page number (default: 1)"},"sort":{"type":"string","description":"Sort field, e.g. \"-_created_at\" for newest first"},"status":{"type":"string","description":"Filter by status: draft, pending, processing, completed, canceled, invoiced, shipped, paid, refunded, partially_refunded, pending_payment"},"date_to":{"type":"string","description":"Filter orders created on or before this date (YYYY-MM-DD)"},"per_page":{"type":"number","description":"Results per page (default: 25)"},"date_from":{"type":"string","description":"Filter orders created on or after this date (YYYY-MM-DD)"},"max_price":{"type":"number","description":"Filter orders with total_price <= this value"},"min_price":{"type":"number","description":"Filter orders with total_price >= this value"},"customer_id":{"type":"number","description":"Filter by customer ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":378,"tokensAfter":378},{"name":"list_product_variations","fixed":{"name":"list_product_variations","description":"[catalog] List child variations and variation attributes for a configurable parent product.","inputSchema":{"type":"object","required":["product_id"],"properties":{"language":{"type":"string"},"product_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"list_products","fixed":{"name":"list_products","description":"List B2Bware products with optional filters and pagination. Use this for full catalogue browsing — supports 23.000+ products via pagination. To browse products of a specific category, use search_products with the category name as query. Products of type 'configurable' are parent containers without prices and cannot be added to cart. Only 'simple' products are orderable. Use exclude_configurable=true to filter out non-orderable parent products.","inputSchema":{"type":"object","properties":{"page":{"type":"number","description":"Page number (default 1)"},"sort":{"type":"string","description":"Sort field. Prefix with - for descending, e.g. \"-_created_at\""},"include":{"type":"string","description":"Comma-separated includes: mainMedia, price, finalPrice, specialPrice, translation, categories, brand"},"brand_id":{"type":"number","description":"Filter by brand (attribute_value id from list_brands)"},"language":{"type":"string","description":"Content language, e.g. \"de\""},"per_page":{"type":"number","description":"Results per page (default 12)"},"brand_ids":{"type":"array","items":{"type":"number"},"description":"Filter by multiple brand ids"},"category_id":{"type":"number","description":"Filter by exact category ID only (no descendants)."},"product_type":{"type":"string","description":"Filter by product type, e.g. \"simple\" or \"configurable\""},"attribute_filters":{"type":"array","items":{"type":"object","properties":{"value":{},"value_in":{"type":"array"},"value_max":{"type":"number"},"value_min":{"type":"number"},"attribute_id":{"type":"number"},"attribute_code":{"type":"string"}}},"description":"Advanced attribute filters (maps to filter[attribute] on ProductHub)"},"anchor_category_id":{"type":"number","description":"Filter by category and all its descendant categories (category tree). Use category ID."},"exclude_configurable":{"type":"boolean","description":"If true, exclude configurable parent products (default false)"},"exclude_child_products":{"type":"boolean","description":"If true, exclude child variation products (show only standalone and parent products)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":596,"tokensAfter":596},{"name":"list_roles","fixed":{"name":"list_roles","description":"[b2b] List customer roles (for link_customer_to_company role_id).","inputSchema":{"type":"object","properties":{"per_page":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"list_settings_config","fixed":{"name":"list_settings_config","description":"[settings] List platform configuration entries (paginated). GET /api/v1/apps/settings-hub/config. Filter by config_code (partial match).","inputSchema":{"type":"object","properties":{"page":{"type":"number"},"sort":{"type":"string"},"per_page":{"type":"number"},"config_code":{"type":"string","description":"Filter by config key (partial match)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"list_shipping_methods","fixed":{"name":"list_shipping_methods","description":"List all available shipping methods. Call this before checkout to retrieve valid method IDs required for the checkout call.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"preview_checkout","fixed":{"name":"preview_checkout","description":"Preview checkout for a cart: returns calculated totals, shipping, and tax without completing the order. Use before calling checkout to show the customer the final amounts.","inputSchema":{"type":"object","required":["cart_id"],"properties":{"cart_id":{"type":"string","description":"Cart ID (from upsert_cart or get_cart)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"remove_cart_item","fixed":{"name":"remove_cart_item","description":"Remove a single item from a cart by cart-item ID.","inputSchema":{"type":"object","required":["item_id"],"properties":{"item_id":{"type":"string","description":"Cart item ID (from cart_items array)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"remove_company_attribute","fixed":{"name":"remove_company_attribute","description":"[attributes] Remove one attribute from a company.","inputSchema":{"type":"object","required":["company_id","attribute_id"],"properties":{"company_id":{"type":"string"},"attribute_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":71,"tokensAfter":71},{"name":"remove_customer_attribute","fixed":{"name":"remove_customer_attribute","description":"[attributes] Remove one attribute from a customer.","inputSchema":{"type":"object","required":["customer_id","attribute_id"],"properties":{"customer_id":{"type":"string"},"attribute_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"remove_entity_attribute","fixed":{"name":"remove_entity_attribute","description":"[attributes] Remove one attribute from an entity by attribute_id.","inputSchema":{"type":"object","required":["entity_scope","entity_id","attribute_id"],"properties":{"entity_id":{"type":"string"},"attribute_id":{"type":"number"},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"remove_order_attribute","fixed":{"name":"remove_order_attribute","description":"[attributes] Remove one attribute from an order.","inputSchema":{"type":"object","required":["order_id","attribute_id"],"properties":{"order_id":{"type":"string"},"attribute_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"remove_product_attribute","fixed":{"name":"remove_product_attribute","description":"[attributes] Alias: remove_entity_attribute for products.","inputSchema":{"type":"object","required":["product_id","attribute_id"],"properties":{"product_id":{"type":"string"},"attribute_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":73,"tokensAfter":73},{"name":"search_companies","fixed":{"name":"search_companies","description":"[customer] Search companies by name, email, VAT number, or company_number (partial match, deduplicated). CustomerHub /companies endpoint.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"per_page":{"type":"number","description":"Max results per field (default 20)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"search_customers","fixed":{"name":"search_customers","description":"Search customers by name, email or customer number (partial match). Searches across email, first_name, last_name and customer_number simultaneously. For listing all customers use list_customers.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search term (min 2 characters recommended; empty string lists all)"},"per_page":{"type":"number","description":"Max results per field (default 20)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"search_products","fixed":{"name":"search_products","description":"Search B2Bware products by name, SKU, EAN/GTIN, or category name. Returns a merged, deduplicated list (max ~100 results). For full catalogue browsing or large result sets use list_products instead. Products of type 'configurable' are parent containers without prices and cannot be added to cart. Only 'simple' products are orderable. Use exclude_configurable=true to filter out non-orderable parent products.","inputSchema":{"type":"object","required":["query"],"properties":{"page":{"type":"number","description":"Page number (default 1)"},"query":{"type":"string","description":"Search term (partial match supported)"},"include":{"type":"string","description":"Comma-separated includes; add brand for brand block on each product"},"brand_id":{"type":"number"},"language":{"type":"string","description":"Content language code, e.g. \"de\" (optional)"},"per_page":{"type":"number","description":"Results per page (default 12, max 50)"},"brand_ids":{"type":"array","items":{"type":"number"}},"exclude_configurable":{"type":"boolean","description":"If true, exclude configurable parent products (default false)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":321,"tokensAfter":321},{"name":"send_notification","fixed":{"name":"send_notification","description":"[notification] Dispatch a created notification via POST /notifications/{id}/send.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"set_company_attributes","fixed":{"name":"set_company_attributes","description":"[attributes] Assign AttributesHub fields on a CustomerHub company (entity_scope=company, group id 5).","inputSchema":{"type":"object","required":["company_id","attributes"],"properties":{"merge":{"type":"boolean"},"attributes":{"type":"array","items":{"type":"object","properties":{"value":{},"attribute_id":{"type":"number"},"attribute_value_id":{"type":"number"},"attribute_value_ids":{"type":"array","items":{"type":"number"}}}}},"company_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":143,"tokensAfter":143},{"name":"set_customer_attributes","fixed":{"name":"set_customer_attributes","description":"[attributes] Assign attributes on a customer (Customer Attributes group).","inputSchema":{"type":"object","required":["customer_id","attributes"],"properties":{"merge":{"type":"boolean"},"attributes":{"type":"array","items":{"type":"object","properties":{"value":{},"attribute_id":{"type":"number"},"attribute_value_id":{"type":"number"},"attribute_value_ids":{"type":"array","items":{"type":"number"}}}}},"customer_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":136,"tokensAfter":136},{"name":"set_entity_attributes","fixed":{"name":"set_entity_attributes","description":"[attributes] Assign attributes on any entity: product, category, order, customer, or company. For select/swatch use attribute_value_id (value is resolved automatically) or attribute_id + value. merge=true keeps other attributes on the entity.","inputSchema":{"type":"object","required":["entity_scope","entity_id","attributes"],"properties":{"merge":{"type":"boolean","description":"Default false (replace listed attributes only)"},"entity_id":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","properties":{"value":{},"attribute_id":{"type":"number"},"attribute_value_id":{"type":"number"},"attribute_value_ids":{"type":"array","items":{"type":"number"}}}}},"entity_scope":{"enum":["product","category","order","customer","company"],"type":"string","description":"Attribute group scope: product, category, order, customer, company. Maps to AttributesHub group types (e.g. brands = product group)."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":270,"tokensAfter":270},{"name":"set_order_attributes","fixed":{"name":"set_order_attributes","description":"[attributes] Assign attributes on an order (Order Attributes group).","inputSchema":{"type":"object","required":["order_id","attributes"],"properties":{"merge":{"type":"boolean"},"order_id":{"type":"string"},"attributes":{"type":"array","items":{"type":"object","properties":{"value":{},"attribute_id":{"type":"number"},"attribute_value_id":{"type":"number"},"attribute_value_ids":{"type":"array","items":{"type":"number"}}}}}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132},{"name":"set_primary_media","fixed":{"name":"set_primary_media","description":"[media] Set a media record as primary for its parent via POST /media/{id}/primary.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"set_product_attributes","fixed":{"name":"set_product_attributes","description":"[attributes] Alias: set_entity_attributes with entity_scope=product.","inputSchema":{"type":"object","required":["product_id","attributes"],"properties":{"merge":{"type":"boolean"},"attributes":{"type":"array","items":{"type":"object","properties":{"value":{},"attribute_id":{"type":"number"},"attribute_value_id":{"type":"number"},"attribute_value_ids":{"type":"array","items":{"type":"number"}}}}},"product_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"update_attribute","fixed":{"name":"update_attribute","description":"[attributes] Update an attribute definition by id. All storefront/admin flags from create are supported.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"position":{"type":"number"},"is_required":{"type":"boolean","description":"Maps to API required"},"show_in_cart":{"type":"boolean","description":"Display under line items in storefront cart (product group)"},"default_value":{"description":"Default value when entity has no assignment","type":"string"},"is_filterable":{"type":"boolean","description":"Storefront layered navigation — maps to used_for_filtering"},"is_searchable":{"type":"boolean","description":"Filterable with results — maps to filterable_with_results"},"use_in_search":{"type":"boolean","description":"Include in product keyword search (product group, searchable types only)"},"display_options":{"type":"object","description":"AttributesHub display_options JSON"},"use_for_sorting":{"type":"boolean","description":"Admin/list sort by attribute_code — triggers background backfill"},"use_in_checkout":{"type":"boolean","description":"Expose on storefront checkout (order group only)"},"validation_rules":{"type":"object","description":"Stored in meta_data.validation on the attribute"},"use_in_notifications":{"type":"boolean","description":"Expose as NotificationHub email template variable"},"use_for_admin_filtering":{"type":"boolean","description":"Admin grid filter by attribute_code — shares backfill with use_for_sorting"},"visible_on_product_page":{"type":"boolean","description":"Show on product detail page (product group)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: default_value. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":459,"tokensAfter":463},{"name":"update_attribute_group","fixed":{"name":"update_attribute_group","description":"[attributes] Update an attribute group.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"update_attribute_value","fixed":{"name":"update_attribute_value","description":"[attributes] Update an attribute value by id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"value":{"type":"string"},"position":{"type":"number"},"swatch_value":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"update_billing_address","fixed":{"name":"update_billing_address","description":"[b2b] Update a customer billing address by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"company":{"type":"string"},"country":{"type":"string","description":"ISO-2 or full country name"},"last_name":{"type":"string"},"first_name":{"type":"string"},"is_default":{"type":"boolean"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"update_brand","fixed":{"name":"update_brand","description":"[catalog] Update a brand by attribute_value id (brand id from create_brand / list_brands).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Brand id (attribute_value id)"},"name":{"type":"string"},"slug":{"type":"string"},"website":{"type":"string"},"logo_url":{"type":"string"},"position":{"type":"number"},"is_active":{"type":"boolean"},"description":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"update_cart_item","fixed":{"name":"update_cart_item","description":"Update quantity or price on an existing cart line via PATCH /cart-items/{id}.","inputSchema":{"type":"object","required":["item_id"],"properties":{"price":{"type":"number"},"item_id":{"type":"string","description":"Cart item ID"},"quantity":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"update_category","fixed":{"name":"update_category","description":"[catalog] Update a category by ID (partial fields).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Category ID"},"name":{"type":"string"},"slug":{"type":"string"},"position":{"type":"number"},"image_url":{"type":"string"},"is_active":{"type":"boolean"},"parent_id":{"type":"number"},"description":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"update_company","fixed":{"name":"update_company","description":"[customer] Update a company by ID (partial fields). CustomerHub PUT /companies/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"notes":{"type":"string"},"phone":{"type":"string"},"country":{"type":"string"},"website":{"type":"string"},"vat_number":{"type":"string"},"credit_limit":{"type":"number"},"payment_terms":{"type":"string"},"address_line_1":{"type":"string"},"company_number":{"type":"string"},"customer_group_id":{"type":"number"},"registration_number":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":186,"tokensAfter":186},{"name":"update_coupon","fixed":{"name":"update_coupon","description":"[rulehub] Update a coupon by ID. RuleHub PUT /coupons/{id}.","inputSchema":{"type":"object","required":["id","body"],"properties":{"id":{"type":"string"},"body":{"type":"object","description":"Partial coupon payload passthrough"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"update_customer","fixed":{"name":"update_customer","description":"Update an existing customer account (name, phone, status, company_id, role_id, etc.).","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Customer ID"},"phone":{"type":"string"},"status":{"type":"string","description":"Customer status, e.g. \"active\" or \"inactive\""},"role_id":{"type":"number"},"last_name":{"type":"string"},"company_id":{"type":"number"},"first_name":{"type":"string"},"email_verified":{"type":"boolean"},"customer_group_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"update_event_subscription","fixed":{"name":"update_event_subscription","description":"[eventhub] Update a webhook subscription by ID. EventHub PUT /event-subscriptions/{id}.","inputSchema":{"type":"object","required":["id","body"],"properties":{"id":{"type":"string"},"body":{"type":"object","description":"Partial subscription payload passthrough"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"update_order","fixed":{"name":"update_order","description":"[orders-admin] Update order fields (status, addresses, methods, order_date, external_reference). Does not replace line items — use update_order_line_items for that.","inputSchema":{"type":"object","required":["order_id"],"properties":{"status":{"type":"string"},"order_id":{"type":"string"},"order_date":{"type":"string","description":"ISO-8601 → _created_at"},"order_number":{"type":"string"},"billing_method_id":{"type":"number"},"billing_address_id":{"type":"number"},"external_reference":{"type":"string"},"shipping_method_id":{"type":"number"},"shipping_address_id":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"update_order_line_items","fixed":{"name":"update_order_line_items","description":"[orders-admin] Replace or update line items on an existing order via PUT /orders/{id}. Same line_items shape as create_order.","inputSchema":{"type":"object","required":["order_id","line_items"],"properties":{"order_id":{"type":"string"},"line_items":{"type":"array","items":{"type":"object","required":["quantity"],"properties":{"name":{"type":"string","description":"Required if product_id omitted"},"price":{"type":"number","description":"Net unit price; fetched from catalog if omitted with product_id"},"quantity":{"type":"number"},"product_id":{"type":"number","description":"ProductHub product ID (name/price auto-filled if omitted)"},"tax_class_id":{"type":"number"}}},"minItems":1}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":207},{"name":"update_order_status","fixed":{"name":"update_order_status","description":"Update the status of an existing order. Valid statuses: draft, pending, processing, completed, canceled, invoiced, shipped, paid, refunded, partially_refunded, pending_payment.","inputSchema":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","description":"Order ID"},"status":{"type":"string","description":"New status: draft, pending, processing, completed, canceled, invoiced, shipped, paid, refunded, partially_refunded, pending_payment"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"update_product","fixed":{"name":"update_product","description":"[catalog] Update a product by ID (partial fields). Supports price, stock, categories, media URLs.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"sku":{"type":"string"},"name":{"type":"string"},"brand":{"type":"string"},"price":{"type":"number"},"stock":{"type":"number"},"status":{"type":"string","description":"draft | private | public"},"weight":{"type":"number"},"brand_id":{"type":"number","description":"Set to null to remove brand link"},"category_ids":{"type":"array","items":{"type":"number"}},"main_image_url":{"type":"string"},"main_image_file":{"type":"string","description":"Base64 file content for CDN upload (ProductHub media[].file)"},"main_image_fetch_url":{"type":"string","description":"Remote URL for server-side CDN ingest (maps to media[].file)"},"main_image_file_name":{"type":"string","description":"Original filename for CDN path"},"additional_image_urls":{"type":"array","items":{"type":"string"},"description":"Gallery URLs (same passthrough semantics as main_image_url)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":301,"tokensAfter":301},{"name":"update_shipping_address","fixed":{"name":"update_shipping_address","description":"[b2b] Update a customer shipping address by ID.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"zip":{"type":"string"},"city":{"type":"string"},"name":{"type":"string"},"company":{"type":"string"},"country":{"type":"string","description":"ISO-2 or full country name"},"last_name":{"type":"string"},"first_name":{"type":"string"},"is_default":{"type":"boolean"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"upload_media","fixed":{"name":"upload_media","description":"[media] Upload or attach media via POST /media. Provide file (base64) for CDN ingest or media_url for URL reference. mediable_type examples: Products, Companies.","inputSchema":{"type":"object","required":["mediable_type","mediable_id","media_type"],"properties":{"file":{"type":"string","description":"Base64 file content for CDN upload"},"alt_text":{"type":"string"},"file_name":{"type":"string","description":"Original filename when using file (base64)"},"media_url":{"type":"string","description":"External URL (stored as-is if not ingested)"},"is_primary":{"type":"boolean"},"media_type":{"enum":["image","video","document","audio"],"type":"string"},"sort_order":{"type":"number"},"mediable_id":{"type":"number"},"mediable_type":{"type":"string","description":"Polymorphic parent type e.g. Products"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235},{"name":"upsert_cart","fixed":{"name":"upsert_cart","description":"Create or replace cart contents via PATCH /carts. Prefer add_cart_item for adding single lines (PATCH may accumulate quantities). Pass a stable session_uuid to update an existing cart. Returns the cart with its ID for checkout or admin review. Optionally pass 'price' per line item to override the catalogue price.","inputSchema":{"type":"object","required":["session_uuid","cart_items"],"properties":{"cart_items":{"type":"array","items":{"type":"object","required":["product_id","quantity"],"properties":{"price":{"type":"number","description":"Optional custom line-item price. If omitted, catalogue pricing is used."},"quantity":{"type":"number"},"product_id":{"type":"number"}}},"description":"Line items to add to the cart"},"customer_id":{"type":"number","description":"B2Bware customer ID (optional for guest carts)"},"session_uuid":{"type":"string","description":"Stable session identifier (e.g. a UUID)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":265,"tokensAfter":265},{"name":"upsert_product","fixed":{"name":"upsert_product","description":"[catalog] Create or update a product by SKU (idempotent). Prefer for imports and MCP retries. Same fields as create_product.","inputSchema":{"type":"object","required":["sku","name","price"],"properties":{"sku":{"type":"string"},"name":{"type":"string"},"brand":{"type":"string"},"price":{"type":"number"},"stock":{"type":"number"},"action":{"enum":["createOrUpdate","onlyCreate","onlyUpdate"],"type":"string"},"weight":{"type":"number"},"brand_id":{"type":"number"},"language":{"type":"string"},"tier_prices":{"type":"array","items":{"type":"object"}},"category_ids":{"type":"array","items":{"type":"number"}},"main_image_url":{"type":"string"},"idempotency_key":{"type":"string","description":"Optional. Replays the same result within 24h without creating duplicates."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"validate_license_key","fixed":{"name":"validate_license_key","description":"[license] Validate a license key via POST /license-keys/{id}/validate.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"domain":{"type":"string"},"ip_address":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74}],"toolsChanged":147,"tokensSaved":0,"todo":[{"tool":"activate_license_key","params":["id","domain","ip_address","assigned_to"]},{"tool":"add_cart_item","params":["quantity","product_id","customer_id"]},{"tool":"attach_customer_to_company","params":["role_id","role_code","company_id","customer_id","is_primary_contact"]},{"tool":"bulk_create_attribute_values","params":["values"]},{"tool":"bulk_create_attributes","params":["attributes"]},{"tool":"bulk_create_brands","params":["brands"]},{"tool":"bulk_create_companies","params":["companies"]},{"tool":"bulk_create_customers","params":["customers"]},{"tool":"bulk_create_orders","params":["orders"]},{"tool":"bulk_create_products","params":["products"]},{"tool":"bulk_update_stock","params":["stock"]},{"tool":"bulk_upsert_prices","params":["prices"]},{"tool":"cancel_order","params":["reason","order_id"]},{"tool":"checkout","params":["comment"]},{"tool":"create_attribute","params":["type","label","position"]},{"tool":"create_attribute_group","params":["name"]},{"tool":"create_attribute_value","params":["label","value","position","attribute_id"]},{"tool":"create_billing_address","params":["zip","city","company","last_name","first_name","customer_id","address_line_1"]},{"tool":"create_brand","params":["name","website","position","description"]},{"tool":"create_category","params":["description","image_file_name"]},{"tool":"create_company","params":["zip","city","name","email","notes","phone","country","website","vat_number","credit_limit","payment_terms","address_line_1","company_number","customer_group_id","registration_number"]},{"tool":"create_company_address","params":["zip","city","name","type","company","last_name","company_id","first_name","is_default","address_line_1","address_line_2"]},{"tool":"create_customer","params":["email","phone","role_id","last_name","first_name","customer_group_id"]},{"tool":"create_customer_full","params":["email","phone","role_id","last_name","company_id","first_name","billing_address","shipping_address","customer_group_id"]},{"tool":"create_notification","params":["title","message","channels","notifiable_id","notification_type_id"]},{"tool":"create_order","params":["line_items","customer_id","order_number","billing_method_id","billing_address_id","shipping_method_id","shipping_address_id"]},{"tool":"create_order_comment","params":["comment","order_id"]},{"tool":"create_product","params":["sku","name","language","description","tier_prices","category_ids","product_type","tax_class_id","short_description"]},{"tool":"create_product_tier_price","params":["product_id","quantity_min","customer_group_id"]},{"tool":"create_shipping_address","params":["zip","city","company","last_name","first_name","customer_id","address_line_1"]},{"tool":"delete_attribute","params":["id"]},{"tool":"delete_attribute_group","params":["id"]},{"tool":"delete_attribute_value","params":["id"]},{"tool":"delete_billing_address","params":["id"]},{"tool":"delete_brand","params":["id"]},{"tool":"delete_company","params":["id"]},{"tool":"delete_customer","params":["id"]},{"tool":"delete_order","params":["order_id"]},{"tool":"delete_product","params":["id"]},{"tool":"delete_shipping_address","params":["id"]},{"tool":"detach_customer_from_company","params":["customer_id"]},{"tool":"generate_license_keys","params":["product_id"]},{"tool":"get_attribute","params":["id"]},{"tool":"get_attribute_group","params":["id"]},{"tool":"get_attribute_value","params":["id"]},{"tool":"get_automation_flow","params":["id"]},{"tool":"get_brand","params":["id"]},{"tool":"get_cart_price_rule","params":["id"]},{"tool":"get_category","params":["language"]},{"tool":"get_company","params":["id"]},{"tool":"get_company_attributes","params":["company_id"]},{"tool":"get_coupon","params":["id"]},{"tool":"get_customer_attributes","params":["customer_id"]},{"tool":"get_entity_attributes","params":["entity_id"]},{"tool":"get_event_delivery_log","params":["id"]},{"tool":"get_event_subscription","params":["id"]},{"tool":"get_flow_run","params":["id"]},{"tool":"get_license_key","params":["id"]},{"tool":"get_media","params":["id"]},{"tool":"get_notification","params":["id"]},{"tool":"get_order_attributes","params":["order_id"]},{"tool":"get_product_attributes","params":["product_id"]},{"tool":"get_settings_config","params":["id"]},{"tool":"link_customer_to_company","params":["role_id","role_code","company_id","customer_id"]},{"tool":"list_attribute_groups","params":["page","per_page"]},{"tool":"list_attribute_values","params":["page","per_page","attribute_id"]},{"tool":"list_attributes","params":["page","include","group_id","per_page"]},{"tool":"list_automation_flows","params":["page","sort","per_page"]},{"tool":"list_brands","params":["page","search","per_page","is_active"]},{"tool":"list_cart_price_rules","params":["page","sort","per_page"]},{"tool":"list_cart_validation_rules","params":["page","sort","per_page"]},{"tool":"list_categories","params":["page","language","per_page"]},{"tool":"list_companies","params":["page","sort","per_page"]},{"tool":"list_company_customers","params":["company_id"]},{"tool":"list_coupons","params":["page","sort","per_page"]},{"tool":"list_event_delivery_logs","params":["page","sort","per_page"]},{"tool":"list_event_subscriptions","params":["page","sort","per_page"]},{"tool":"list_flow_runs","params":["page","sort","per_page"]},{"tool":"list_license_keys","params":["page","status","per_page","product_id"]},{"tool":"list_media","params":["page","per_page","is_primary","media_type","mediable_id","mediable_type"]},{"tool":"list_notification_types","params":["page","sort","per_page"]},{"tool":"list_notifications","params":["page","per_page","notifiable_id"]},{"tool":"list_product_variations","params":["language","product_id"]},{"tool":"list_roles","params":["per_page"]},{"tool":"list_settings_config","params":["page","sort","per_page"]},{"tool":"login","params":["email","password"]},{"tool":"pause_event_subscription","params":["id"]},{"tool":"register","params":["email","phone","password","last_name","first_name"]},{"tool":"remove_company_attribute","params":["company_id","attribute_id"]},{"tool":"remove_customer_attribute","params":["customer_id","attribute_id"]},{"tool":"remove_entity_attribute","params":["entity_id","attribute_id"]},{"tool":"remove_order_attribute","params":["order_id","attribute_id"]},{"tool":"remove_product_attribute","params":["product_id","attribute_id"]},{"tool":"resume_event_subscription","params":["id"]},{"tool":"resync_sortable_attribute","params":["attribute_id"]},{"tool":"search_companies","params":["query"]},{"tool":"search_products","params":["brand_id","brand_ids"]},{"tool":"send_notification","params":["id"]},{"tool":"set_company_attributes","params":["merge","attributes","company_id"]},{"tool":"set_customer_attributes","params":["merge","attributes","customer_id"]},{"tool":"set_entity_attributes","params":["entity_id","attributes"]},{"tool":"set_order_attributes","params":["merge","order_id","attributes"]},{"tool":"set_primary_media","params":["id"]},{"tool":"set_product_attributes","params":["merge","attributes","product_id"]},{"tool":"test_event_subscription","params":["id"]},{"tool":"unlink_customer_from_company","params":["customer_id"]},{"tool":"update_attribute","params":["id","label","position"]},{"tool":"update_attribute_group","params":["id","name","position"]},{"tool":"update_attribute_value","params":["id","label","value","position","swatch_value"]},{"tool":"update_billing_address","params":["id","zip","city","name","company","last_name","first_name","is_default","address_line_1","address_line_2"]},{"tool":"update_brand","params":["name","slug","website","logo_url","position","is_active","description"]},{"tool":"update_cart_item","params":["price","quantity"]},{"tool":"update_category","params":["name","slug","position","image_url","is_active","parent_id","description"]},{"tool":"update_company","params":["id","zip","city","name","email","notes","phone","country","website","vat_number","credit_limit","payment_terms","address_line_1","company_number","customer_group_id","registration_number"]},{"tool":"update_coupon","params":["id"]},{"tool":"update_customer","params":["phone","role_id","last_name","company_id","first_name","email_verified","customer_group_id"]},{"tool":"update_event_subscription","params":["id"]},{"tool":"update_order","params":["status","order_id","order_number","billing_method_id","billing_address_id","external_reference","shipping_method_id","shipping_address_id"]},{"tool":"update_order_line_items","params":["order_id","line_items"]},{"tool":"update_product","params":["id","sku","name","brand","price","stock","weight","category_ids","main_image_url"]},{"tool":"update_shipping_address","params":["id","zip","city","name","company","last_name","first_name","is_default","address_line_1","address_line_2"]},{"tool":"upload_media","params":["alt_text","is_primary","media_type","sort_order","mediable_id"]},{"tool":"upsert_product","params":["sku","name","brand","price","stock","action","weight","brand_id","language","tier_prices","category_ids","main_image_url"]},{"tool":"validate_license_key","params":["id","domain","ip_address"]}],"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."}