{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "applicant": {
      "type": "object",
      "properties": {
        "zipCode": {
          "type": "string",
          "description": "5-digit US zip code"
        },
        "state": {
          "type": "string",
          "description": "2-letter US state code (e.g. TX, CA, NY). Derive this from the ZIP code yourself \u2014 do NOT ask the user for their state. Only ask for the state if you genuinely cannot determine it from the ZIP."
        }
      },
      "required": [
        "zipCode",
        "state"
      ]
    },
    "vehicles": {
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "vin": {
            "description": "17-character VIN. If provided, the chatbot decodes it to year/make/model automatically \u2014 do NOT also ask the user for year/make/model. Provide EITHER a vin OR year+make+model.",
            "type": "string"
          },
          "year": {
            "description": "Vehicle model year (e.g. 2024). Required only if no vin is provided.",
            "type": "string"
          },
          "make": {
            "description": "Vehicle make (e.g. Honda, Toyota, Ford). Required only if no vin is provided.",
            "type": "string"
          },
          "model": {
            "description": "Vehicle model (e.g. Accord, Camry, F-150). Required only if no vin is provided.",
            "type": "string"
          },
          "collisionCoverage": {
            "default": "1000",
            "description": "Collision deductible. Covers damages to your vehicle if it collides with something. Default: \"1000\". Do NOT ask the user about this unless they volunteer a preference.",
            "type": "string",
            "enum": [
              "500",
              "1000",
              "No Coverage"
            ]
          },
          "comprehensiveCoverage": {
            "default": "1000",
            "description": "Comprehensive deductible. Covers damages from theft, vandalism, animals, hail. Default: \"1000\". Do NOT ask the user about this unless they volunteer a preference.",
            "type": "string",
            "enum": [
              "500",
              "1000",
              "No Coverage"
            ]
          }
        }
      },
      "description": "Vehicles to insure (1-6)"
    },
    "drivers": {
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "dateOfBirth": {
            "type": "string",
            "description": "Driver date of birth in MM/DD/YYYY format."
          },
          "gender": {
            "type": "string",
            "enum": [
              "M",
              "F",
              "X"
            ],
            "description": "M=male, F=female, X=non-binary/other"
          },
          "maritalStatus": {
            "type": "string",
            "enum": [
              "single",
              "married",
              "domestic_partner",
              "widowed",
              "divorced",
              "separated"
            ]
          },
          "relation": {
            "description": "Relationship to primary insured. First driver defaults to \"Insured\".",
            "type": "string",
            "enum": [
              "Insured",
              "Spouse",
              "Parent",
              "Child",
              "Other"
            ]
          }
        },
        "required": [
          "dateOfBirth",
          "gender",
          "maritalStatus"
        ]
      },
      "description": "Drivers on the policy (1-6)"
    },
    "currentlyInsured": {
      "description": "Whether the driver currently has auto insurance",
      "type": "boolean"
    },
    "yearsOfContinuousCoverage": {
      "description": "Years of continuous auto insurance coverage",
      "type": "number"
    },
    "policyInfo": {
      "description": "Policy-level coverage options. Omit entirely to use silent defaults \u2014 the chatbot fills these in server-side.",
      "type": "object",
      "properties": {
        "coverageLimits": {
          "type": "object",
          "properties": {
            "bodilyInjury": {
              "default": "State Minimum",
              "description": "Bodily injury liability limit. Default: \"State Minimum\". Do NOT ask the user about this unless they volunteer a preference.",
              "type": "string",
              "enum": [
                "State Minimum",
                "10/20",
                "50/100",
                "100/300",
                "250/500"
              ]
            },
            "propertyDamage": {
              "default": "State Minimum",
              "description": "Property damage liability limit, in dollars. Default: \"State Minimum\". Do NOT ask the user about this unless they volunteer a preference.",
              "type": "string",
              "enum": [
                "50000",
                "100000",
                "250000",
                "State Minimum"
              ]
            },
            "uninsuredMotorist": {
              "default": "State Minimum",
              "description": "Uninsured motorist limit. Default: \"State Minimum\". Do NOT ask the user about this unless they volunteer a preference.",
              "type": "string",
              "enum": [
                "State Minimum",
                "10/20",
                "50/100",
                "100/300",
                "250/500"
              ]
            },
            "underinsuredMotorist": {
              "default": "State Minimum",
              "description": "Underinsured motorist limit. Default: \"State Minimum\". Do NOT ask the user about this unless they volunteer a preference.",
              "type": "string",
              "enum": [
                "State Minimum",
                "10/20",
                "50/100",
                "100/300",
                "250/500"
              ]
            }
          }
        }
      }
    },
    "platform": {
      "description": "AI platform name for tracking (claude, chatgpt, gemini, copilot).",
      "type": "string"
    },
    "xcid": {
      "description": "Stable user/session identifier (UUID v4). If you have an xcid, Mixpanel distinct_id, or partner-supplied id from the host platform, pass the SAME value on every tool call in this conversation. We use it as the MGEN partnerSuppliedIdentifier and Mixpanel distinct_id so a user is linked across reruns even though each call creates a new application. If you omit this, the chatbot will mint one and return it in the response so you can reuse it on subsequent calls.",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "applicant",
    "vehicles",
    "drivers"
  ],
  "title": "get_auto_insurance_quote input",
  "$comment": "Verbatim inputSchema of MCP tool get_auto_insurance_quote from tools/list at https://choosemylo.com/api/gateway/chatbot/mcp (probed 2026-11-03)"
}