Record Class McpSchema.ElicitFormRequest

java.lang.Object
java.lang.Record
io.modelcontextprotocol.spec.McpSchema.ElicitFormRequest
Record Components:
message - The message to present to the user
requestedSchema - A restricted subset of JSON Schema. Only top-level properties are allowed, without nesting. Per SEP-1613, the dialect defaults to JSON Schema 2020-12 (McpSchema.JSON_SCHEMA_DIALECT_2020_12) when no explicit $schema entry is present. To declare a different dialect, include a "$schema" key in the map. For type-safety in the schemas, use one of the supported schema types.
meta - See specification for notes on _meta usage

Note: message and requestedSchema are required by the MCP specification. Deserialization accepts missing values and substitutes defaults to avoid breaking existing integrations that may omit these fields.

All Implemented Interfaces:
McpSchema.ElicitRequest, McpSchema.Meta, McpSchema.Request
Enclosing class:
McpSchema

public static record McpSchema.ElicitFormRequest(String message, Map<String,Object> requestedSchema, Map<String,Object> meta) extends Record implements McpSchema.ElicitRequest
A request from the server to elicit additional information from the user via the client, using form mode.

The requested schema is flexible, but for standard schemas, consider using one the following types:

These can be used with a JSON mapper:
 var mapper = McpJsonDefaults.getMapper();
 TypeRef<Map<String, Object>> mapType = new TypeRef<>() { };
 var first = UntitledSingleSelectEnumSchema.builder()
           .enumValues("option1", "option2", "option3")
           .build();
 var second = BooleanSchema
           .builder()
           .title("Say yes")
           .description("By selecting this, you say yes to the thing")
           .build();
 Map<String, Object> requestedSchema = Map.of(
     "type", "object",
     "properties", Map.of(
         "first-thing", mapper.convertValue(first, mapType),
         "second-thing", mapper.convertValue(second, mapType)),
     "required", List.of("first-thing", "second-thing"));
 
  • Field Details

  • Constructor Details

    • ElicitFormRequest

      public ElicitFormRequest(String message, Map<String,Object> requestedSchema, Map<String,Object> meta)
      Creates an instance of a ElicitFormRequest record class.
      Parameters:
      message - the value for the message record component
      requestedSchema - the value for the requestedSchema record component
      meta - the value for the meta record component
  • Method Details

    • mode

      public String mode()
      Specified by:
      mode in interface McpSchema.ElicitRequest
    • builder

      public static McpSchema.ElicitFormRequest.Builder builder(String message, Map<String,Object> requestedSchema)
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • message

      public String message()
      Returns the value of the message record component.
      Specified by:
      message in interface McpSchema.ElicitRequest
      Returns:
      the value of the message record component
    • requestedSchema

      public Map<String,Object> requestedSchema()
      Returns the value of the requestedSchema record component.
      Returns:
      the value of the requestedSchema record component
    • meta

      public Map<String,Object> meta()
      Returns the value of the meta record component.
      Specified by:
      meta in interface McpSchema.ElicitRequest
      Specified by:
      meta in interface McpSchema.Meta
      Returns:
      the value of the meta record component
      See Also: