# What is Elicitation? Also called User Input Request. Elicitation is a Model Context Protocol feature that lets a server ask the connected client to collect additional information from the user during an operation. The server sends a request describing what it needs, the client presents it and returns the user's answer or a decline. It exists so servers can pause for missing input rather than failing or guessing. The direction of the request is what makes it notable. Most protocol traffic flows from client to server, but elicitation reverses that: a server in the middle of handling a call can ask for something it lacks. The client remains in control of how the request is presented, and the user can approve, decline, or cancel. Requests describe the shape of the expected answer, typically with a schema for simple structured values, so the client can render appropriate input controls and validate what is entered before returning it. This keeps the exchange predictable rather than depending on free text that the server must then parse. The feature is optional and negotiated. A client declares during initialization whether it supports elicitation, and a server that has not seen that capability must handle the absence, usually by failing clearly or falling back to requiring the information upfront. Servers cannot assume every client can prompt a human. Trust runs in an unusual direction here, so the client is expected to make the source visible. The text of the request comes from the server, which may be third party software, and a user should never be asked for credentials or secrets through this channel. Clients typically warn on such requests and always allow declining without breaking the session. ## Key points - Server asks the client to collect user input mid-operation - Reverses the usual client to server request direction - Requests describe the expected answer shape - Optional capability negotiated at initialization - Never use it to collect credentials; declining must be possible ## In practice A user asks an assistant to file a ticket. The connected server has everything except which project the ticket belongs to, so instead of guessing it issues an elicitation request naming the field and listing three valid project options. The client shows a small prompt, the user picks one, and the answer returns to the server, which completes the call. Had the user declined, the server would report the operation as cancelled. ## Related terms - [Model Context Protocol](/en/glossary/model-context-protocol) - [MCP Server](/en/glossary/mcp-server) - [MCP Client](/en/glossary/mcp-client) - [Capability Discovery](/en/glossary/capability-discovery) - [JSON Schema](/en/glossary/json-schema) [Back to the AI Glossary](/en/glossary)