Skip to main content
elicitation/create is a server → client request introduced in MCP spec 2025-11-25. It lets a tool pause mid-execution to ask the user a structured question — “which Stripe customer did you mean?”, “confirm before deleting?” — and receive a typed response back. GetMCP implements the handler shape; wiring an actual tool to elicit user input is something you author against the API.

Wire-level Shape

The server emits:
The client renders a UI from requestedSchema, collects the answer, and responds:
string
One of accept (user provided answers), decline (user said no), cancel (user closed the prompt).
object
Present only when action === "accept". Matches the requestedSchema.

Schema Constraints

requestedSchema is a simplified JSON Schema — clients are required to handle:
  • type: "object" at the root
  • Primitive properties of type string, number, boolean, or string with enum
  • required array
  • description strings (rendered as form labels and help text)
Avoid nested objects, arrays, oneOf / allOf — clients are not required to render them and may decline the request.

Capability Negotiation

elicitation/create only works when the client declared the elicitation capability during initialize:
If the capability is absent, the call returns immediately with action: "decline". Always handle the decline case — fall back to a sensible default or fail the tool gracefully.

When to Use It

Good fits:
  • Disambiguation — multiple matches; ask the user which one
  • Confirmation — destructive operations should always confirm
  • Missing required context — “what date range did you mean?”
Bad fits:
  • Authentication credentials — never elicit passwords or API keys; use the server’s auth config
  • Data the model could provide — if the AI can answer, let it; don’t bounce to the user for things it should figure out

Caveats

  • Elicitation blocks the tool call until the user responds. Time out gracefully — most clients give the user 60 seconds.
  • The user can decline at any point. Always have a fallback path.
  • GetMCP’s built-in tools don’t elicit — this is wiring for tools you author yourself.

Elicitation is one of the newer MCP additions — older clients (pre-2025-11-25 spec) won’t advertise the capability. Always negotiate via initialize first; never assume.