Elicitation lets your server ask the client to collect structured input from the user while a tool is running—confirmations, missing parameters, or a small “form”.
Basic usage
Parameters
request_elicitation(...) takes an ElicitRequestParams with:
message: str: text shown to the user
requestedSchema: dict: a restricted JSON Schema object describing the expected fields
Schema limitations (enforced by Dedalus MCP):
- top-level
type must be "object"
properties must be a non-empty object
- property
type must be one of: "string", "number", "integer", "boolean"
- nested objects/arrays are not supported
Response actions
The client returns an ElicitResult with:
action: "accept" | "decline" | "cancel"
content: optional mapping (present when action == "accept")
Example: Progressive disclosure
Collect complex information step-by-step:
Error handling
Elicitation requires an active MCP session and a client that advertises the elicitation capability. If not, request_elicitation(...) raises McpError (typically METHOD_NOT_FOUND), and timeouts raise McpError as well.
Last modified on June 30, 2026