{
  "$schema": "https://webmcp.org",
  "name": "AZ2",
  "description": "UK affiliate marketplace — search products, browse merchants, brands, categories, vouchers, and live platform statistics.",
  "version": "1.0.0",
  "origin_trial_token": "Amo8akLrl/PLxLgL7duAmzI0IVUPBLZ2Ezm1dYIdH0GB6ho3EKK3pkWiQN4YVdIqkFS9EqcYiOf5RuEhwZ1qxA4AAABceyJvcmlnaW4iOiJodHRwczovL2F6Mi5jby51azo0NDMiLCJmZWF0dXJlIjoiV2ViTUNQIiwiZXhwaXJ5IjoxNzk0ODczNjAwLCJpc1N1YmRvbWFpbiI6dHJ1ZX0=",
  "auth": {
    "type": "bearer",
    "description": "Use an AZ2 MCP API key with mcp:read scope. Create one at /account/profile/api. Browser AIE tokens are not required for MCP clients."
  },
  "privacy": {
    "raw_affiliate_links_exposed": false,
    "personal_account_data_exposed": false,
    "tools_are_read_only": true
  },
  "docs_url": "/docs/mcp",
  "tools": [
    {
      "name": "search_catalog",
      "description": "Search products across the AZ2 marketplace. Multi-word queries return results matching all terms.",
      "auth": "required",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "minLength": 1, "maxLength": 120, "description": "Free-text search term." }
        },
        "required": ["query"],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "query": { "type": "string" },
          "count": { "type": "integer" },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "productid": { "type": "integer" },
                "name": { "type": "string" },
                "price": { "type": "string" },
                "currency": { "type": "string" },
                "original_price": { "type": ["string", "null"] },
                "was_price": { "type": ["string", "null"] },
                "merchant": { "type": "string" },
                "merchant_slug": { "type": "string" },
                "category": { "type": "string" },
                "brand": { "type": ["string", "null"] },
                "summary": { "type": ["string", "null"] },
                "in_stock": { "type": ["boolean", "null"] },
                "tracking_duration": { "type": ["integer", "null"] },
                "image": { "type": ["object", "null"], "properties": { "src": { "type": "string" }, "alt": { "type": "string" } } },
                "url": { "type": "string" },
                "outlink_url": { "type": "string" }
              },
              "required": ["productid", "name", "price", "merchant", "url", "outlink_url"],
              "additionalProperties": false
            }
          }
        },
        "required": ["query", "count", "results"],
        "additionalProperties": false
      }
    },
    {
      "name": "get_platform_stats",
      "description": "Live platform statistics for today.",
      "auth": "required",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "outputSchema": {
        "type": "object",
        "properties": {
          "date": { "type": "string" },
          "page_views": { "type": "integer" },
          "human_like_visits_pct": { "type": "integer" },
          "valid_outlinks": { "type": "integer" }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_brands",
      "description": "Full list of brand names available on AZ2.",
      "auth": "required",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "outputSchema": {
        "type": "object",
        "properties": {
          "brands": { "type": "array", "items": { "type": "string" } }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_categories",
      "description": "Full list of merchant categories with product, merchant, and brand counts.",
      "auth": "required",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": { "type": "string" },
                "slug": { "type": "string" },
                "product_count": { "type": "integer" },
                "merchant_count": { "type": "integer" },
                "brand_count": { "type": "integer" },
                "url": { "type": "string" },
                "image": { "type": "object", "properties": { "src": { "type": "string" }, "srcset": { "type": "array" }, "alt": { "type": "string" } } }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_merchants",
      "description": "Live merchants with product counts, cashback rates, logos, and tracking duration.",
      "auth": "required",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "outputSchema": {
        "type": "object",
        "properties": {
          "merchants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": { "type": "integer" },
                "name": { "type": "string" },
                "slug": { "type": "string" },
                "product_count": { "type": "integer" },
                "has_products": { "type": "boolean" },
                "tracking_duration": { "type": ["integer", "null"] },
                "url": { "type": "string" },
                "outlink_url": { "type": "string" },
                "cashback_rate_pct": { "type": "number" },
                "logo": { "type": ["object", "null"] }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_merchant",
      "description": "Full merchant profile by slug: details, cashback, logos, creatives, and recent products.",
      "auth": "required",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": { "type": "string", "description": "Merchant URL slug (e.g. artme)." }
        },
        "required": ["slug"],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": { "type": "integer" },
          "name": { "type": "string" },
          "slug": { "type": "string" },
          "category": { "type": "string" },
          "product_count": { "type": "integer" },
          "has_products": { "type": "boolean" },
          "tracking_duration": { "type": ["integer", "null"] },
          "cashback_rate_pct": { "type": "number" },
          "commission_rate_pct": { "type": "number" },
          "average_basket": { "type": ["string", "null"] },
          "approval_rate": { "type": ["string", "null"] },
          "merchant_last_updated": { "type": ["string", "null"] },
          "url": { "type": "string" },
          "outlink_url": { "type": "string" },
          "logo": { "type": ["object", "null"] },
          "logos": { "type": "array", "items": { "type": "string" } },
          "creatives": { "type": "array" },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "productid": { "type": "integer" },
                "name": { "type": "string" },
                "price": { "type": "string" },
                "url": { "type": "string" },
                "outlink_url": { "type": "string" }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_product",
      "description": "Full product details by ProductID including price, description, images, stock, delivery, and outlink.",
      "auth": "required",
      "inputSchema": {
        "type": "object",
        "properties": {
          "productid": { "type": "integer", "description": "AZ2 ProductID (numeric)." }
        },
        "required": ["productid"],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "productid": { "type": "integer" },
          "merchantid": { "type": "integer" },
          "merchant_name": { "type": "string" },
          "name": { "type": "string" },
          "description": { "type": "string" },
          "summary": { "type": "string" },
          "price": { "type": "string" },
          "currency": { "type": "string" },
          "original_price": { "type": ["string", "null"] },
          "was_price": { "type": ["string", "null"] },
          "brand": { "type": ["string", "null"] },
          "ean": { "type": ["string", "null"] },
          "in_stock": { "type": ["integer", "null"] },
          "delivery_time": { "type": ["string", "null"] },
          "delivery_cost": { "type": ["string", "null"] },
          "stock_quantity": { "type": ["integer", "null"] },
          "category": { "type": "string" },
          "has_image": { "type": "boolean" },
          "outlink_window_days": { "type": ["integer", "null"] },
          "url": { "type": "string" },
          "outlink_url": { "type": "string" },
          "images": { "type": "object" },
          "image": { "type": ["object", "null"] }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_product_variations",
      "description": "Returns colour/size/option variations for a product family by ProductID.",
      "auth": "required",
      "inputSchema": {
        "type": "object",
        "properties": {
          "productid": { "type": "integer", "description": "AZ2 ProductID to find variations for." }
        },
        "required": ["productid"],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "productid": { "type": "integer" },
          "family_name": { "type": "string" },
          "available_colours": { "type": "array", "items": { "type": "string" } },
          "available_sizes": { "type": "array", "items": { "type": "string" } },
          "variant_count": { "type": "integer" },
          "variants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "productid": { "type": "integer" },
                "colour": { "type": "string" },
                "size": { "type": "string" },
                "price": { "type": "string" },
                "in_stock": { "type": ["boolean", "null"] },
                "image": { "type": ["object", "null"] },
                "url": { "type": "string" },
                "outlink_url": { "type": "string" }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "search_vouchers",
      "description": "Search active voucher codes by merchant name.",
      "auth": "required",
      "inputSchema": {
        "type": "object",
        "properties": {
          "merchant": { "type": "string", "description": "Merchant name or partial name." }
        },
        "required": ["merchant"],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "vouchers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "voucherid": { "type": "integer" },
                "merchant_name": { "type": "string" },
                "code": { "type": "string" },
                "description": { "type": "string" },
                "expiry_date": { "type": ["string", "null"] },
                "outlink_url": { "type": "string" }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "check_my_ip",
      "description": "Returns the IP address and address family (ipv4/ipv6) of the requesting client.",
      "auth": "required",
      "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string" },
          "family": { "type": "string" }
        },
        "additionalProperties": false
      }
    }
  ]
}
