{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "McpElicitationArrayType": {
      "enum": [
        "array"
      ],
      "type": "string"
    },
    "McpElicitationBooleanSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationBooleanType"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "McpElicitationBooleanType": {
      "enum": [
        "boolean"
      ],
      "type": "string"
    },
    "McpElicitationConstOption": {
      "additionalProperties": false,
      "properties": {
        "const": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "const",
        "title"
      ],
      "type": "object"
    },
    "McpElicitationEnumSchema": {
      "anyOf": [
        {
          "$ref": "#/definitions/McpElicitationSingleSelectEnumSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationMultiSelectEnumSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationLegacyTitledEnumSchema"
        }
      ]
    },
    "McpElicitationLegacyTitledEnumSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "enum": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enumNames": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationStringType"
        }
      },
      "required": [
        "enum",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationMultiSelectEnumSchema": {
      "anyOf": [
        {
          "$ref": "#/definitions/McpElicitationUntitledMultiSelectEnumSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationTitledMultiSelectEnumSchema"
        }
      ]
    },
    "McpElicitationNumberSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "format": "double",
          "type": [
            "number",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "maximum": {
          "format": "double",
          "type": [
            "number",
            "null"
          ]
        },
        "minimum": {
          "format": "double",
          "type": [
            "number",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationNumberType"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "McpElicitationNumberType": {
      "enum": [
        "number",
        "integer"
      ],
      "type": "string"
    },
    "McpElicitationObjectType": {
      "enum": [
        "object"
      ],
      "type": "string"
    },
    "McpElicitationPrimitiveSchema": {
      "anyOf": [
        {
          "$ref": "#/definitions/McpElicitationEnumSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationStringSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationNumberSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationBooleanSchema"
        }
      ]
    },
    "McpElicitationSchema": {
      "additionalProperties": false,
      "description": "Typed form schema for MCP `elicitation/create` requests.\n\nThis matches the `requestedSchema` shape from the MCP 2025-11-25 `ElicitRequestFormParams` schema.",
      "properties": {
        "$schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "properties": {
          "additionalProperties": {
            "$ref": "#/definitions/McpElicitationPrimitiveSchema"
          },
          "type": "object"
        },
        "required": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationObjectType"
        }
      },
      "required": [
        "properties",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationSingleSelectEnumSchema": {
      "anyOf": [
        {
          "$ref": "#/definitions/McpElicitationUntitledSingleSelectEnumSchema"
        },
        {
          "$ref": "#/definitions/McpElicitationTitledSingleSelectEnumSchema"
        }
      ]
    },
    "McpElicitationStringFormat": {
      "enum": [
        "email",
        "uri",
        "date",
        "date-time"
      ],
      "type": "string"
    },
    "McpElicitationStringSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "anyOf": [
            {
              "$ref": "#/definitions/McpElicitationStringFormat"
            },
            {
              "type": "null"
            }
          ]
        },
        "maxLength": {
          "format": "uint32",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "minLength": {
          "format": "uint32",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationStringType"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "McpElicitationStringType": {
      "enum": [
        "string"
      ],
      "type": "string"
    },
    "McpElicitationTitledEnumItems": {
      "additionalProperties": false,
      "properties": {
        "anyOf": {
          "items": {
            "$ref": "#/definitions/McpElicitationConstOption"
          },
          "type": "array"
        }
      },
      "required": [
        "anyOf"
      ],
      "type": "object"
    },
    "McpElicitationTitledMultiSelectEnumSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "items": {
          "$ref": "#/definitions/McpElicitationTitledEnumItems"
        },
        "maxItems": {
          "format": "uint64",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "minItems": {
          "format": "uint64",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationArrayType"
        }
      },
      "required": [
        "items",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationTitledSingleSelectEnumSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "oneOf": {
          "items": {
            "$ref": "#/definitions/McpElicitationConstOption"
          },
          "type": "array"
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationStringType"
        }
      },
      "required": [
        "oneOf",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationUntitledEnumItems": {
      "additionalProperties": false,
      "properties": {
        "enum": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "type": {
          "$ref": "#/definitions/McpElicitationStringType"
        }
      },
      "required": [
        "enum",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationUntitledMultiSelectEnumSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "items": {
          "$ref": "#/definitions/McpElicitationUntitledEnumItems"
        },
        "maxItems": {
          "format": "uint64",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "minItems": {
          "format": "uint64",
          "minimum": 0.0,
          "type": [
            "integer",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationArrayType"
        }
      },
      "required": [
        "items",
        "type"
      ],
      "type": "object"
    },
    "McpElicitationUntitledSingleSelectEnumSchema": {
      "additionalProperties": false,
      "properties": {
        "default": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "enum": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "type": {
          "$ref": "#/definitions/McpElicitationStringType"
        }
      },
      "required": [
        "enum",
        "type"
      ],
      "type": "object"
    }
  },
  "oneOf": [
    {
      "properties": {
        "_meta": true,
        "message": {
          "type": "string"
        },
        "mode": {
          "enum": [
            "form"
          ],
          "type": "string"
        },
        "requestedSchema": {
          "$ref": "#/definitions/McpElicitationSchema"
        }
      },
      "required": [
        "message",
        "mode",
        "requestedSchema"
      ],
      "type": "object"
    },
    {
      "properties": {
        "_meta": true,
        "elicitationId": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "mode": {
          "enum": [
            "url"
          ],
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "elicitationId",
        "message",
        "mode",
        "url"
      ],
      "type": "object"
    }
  ],
  "properties": {
    "serverName": {
      "type": "string"
    },
    "threadId": {
      "type": "string"
    },
    "turnId": {
      "description": "Active Codex turn when this elicitation was observed, if app-server could correlate one.\n\nThis is nullable because MCP models elicitation as a standalone server-to-client request identified by the MCP server request id. It may be triggered during a turn, but turn context is app-server correlation rather than part of the protocol identity of the elicitation itself.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "serverName",
    "threadId"
  ],
  "title": "McpServerElicitationRequestParams",
  "type": "object"
}