docs/python-sdk/fastmcp-server-elicitation.mdx
fastmcp.server.elicitationparse_elicit_response_type <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L132" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>parse_elicit_response_type(response_type: Any, response_title: str | None = None, response_description: str | None = None) -> ElicitConfig
Parse response_type into schema and handling configuration.
Supports multiple syntaxes:
{"low": {"title": "..."}} -> single-select titled enum[["a", "b"]] -> multi-select untitled[{"low": {...}}] -> multi-select titled["a", "b"] -> single-select untitledlist[X] type annotation: multi-select with typeThe response_title and response_description arguments customize the
label and description of the wrapped value property for the scalar/dict/list
shorthand forms. They are only valid when FastMCP is wrapping the response
type; passing them with a full BaseModel/dataclass (or None) raises
TypeError, because in those cases the user already controls field
metadata via Field(title=..., description=...).
handle_elicit_accept <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L309" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>handle_elicit_accept(config: ElicitConfig, content: Any) -> AcceptedElicitation[Any]
Handle an accepted elicitation response.
Args:
config: The elicitation configuration from parse_elicit_response_typecontent: The response content from the clientReturns:
get_elicitation_schema <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L368" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>get_elicitation_schema(response_type: type[T]) -> dict[str, Any]
Get the schema for an elicitation response.
Args:
response_type: The type of the responsevalidate_elicitation_json_schema <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L387" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>validate_elicitation_json_schema(schema: dict[str, Any]) -> None
Validate that a JSON schema follows MCP elicitation requirements.
This ensures the schema is compatible with MCP elicitation requirements:
Args:
schema: The JSON schema to validateRaises:
TypeError: If the schema doesn't meet MCP elicitation requirementsElicitationJsonSchema <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Custom JSON schema generator for MCP elicitation that always inlines enums.
MCP elicitation requires inline enum schemas without $ref/$defs references. This generator ensures enums are always generated inline for compatibility. Optionally adds enumNames for better UI display when available.
Methods:
generate_inner <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>generate_inner(self, schema: core_schema.CoreSchema) -> JsonSchemaValue
Override to prevent ref generation for enums and handle list schemas.
list_schema <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L57" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>list_schema(self, schema: core_schema.ListSchema) -> JsonSchemaValue
Generate schema for list types, detecting enum items for multi-select.
enum_schema <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L94" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue
Generate inline enum schema.
Always generates enum pattern: {"enum": [value, ...]}
Titled enums are handled separately via dict-based syntax in ctx.elicit().
AcceptedElicitation <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Result when user accepts the elicitation.
ScalarElicitationType <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L113" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>ElicitConfig <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/src/fastmcp/server/elicitation.py#L118" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Configuration for an elicitation request.
Attributes:
schema: The JSON schema to send to the clientresponse_type: The type to validate responses with (None for raw schemas)is_raw: True if schema was built directly (extract "value" from response)