MCP Elicitation: Interactive Structured Input Dialogs for MCP Servers

Claude Code

Claude Code v2.1.76 introduces MCP elicitation support, enabling MCP servers to request structured input from users mid-task via interactive dialogs with form fields or browser URLs. The feature implements the MCP specification elicitation/create protocol, presenting JSON-schema-driven forms directly inside Claude Code when a server needs validated user input during tool execution. Two new hook events β€” Elicitation and ElicitationResult β€” allow automation pipelines to intercept and programmatically respond to elicitation requests without showing the dialog at all, making the feature equally useful for both interactive and headless workflows.


MCP Elicitation Brings Structured Mid-Task Input to Claude Code

Claude Code v2.1.76 ships MCP elicitation support β€” a long-requested capability that lets MCP servers formally request structured input from the user during an active task, rather than relying on free-form conversational prompts. The implementation follows the MCP specification elicitation/create request type and adds two new hook events for programmatic interception.

How MCP Elicitation Works

When an MCP server needs information from the user mid-task, it sends an elicitation/create request containing a message and a JSON schema that describes the required input. Claude Code parses the schema and renders a native interactive dialog β€” form fields for string inputs, checkboxes for booleans, dropdowns for enum values β€” directly in the terminal UI. Once the user completes the form, the validated response is returned to the server.

This is a fundamentally different interaction pattern from the existing model: instead of the AI guessing what the user might mean or asking open-ended follow-up questions, the MCP server defines the exact structure of the information it needs, and the user fills in validated fields. The result is more reliable data flow between tools and servers, with fewer round-trips caused by ambiguous or malformed inputs.

The Elicitation and ElicitationResult Hooks

For automated and headless workflows, v2.1.76 adds two new hook events:

  • Elicitation β€” fires when an MCP server sends an elicitation request. A hook registered for this event can inspect the request and respond programmatically, bypassing the interactive dialog entirely.
  • ElicitationResult β€” fires after an elicitation response is ready (whether from user input or a hook), allowing downstream processing or logging of what was collected.

These hooks make elicitation composable with the broader Claude Code hook system, enabling CI/CD pipelines, automated agents, and scripted workflows to supply structured inputs without any human interaction.

Why This Matters for MCP Server Authors

Before elicitation, MCP servers that needed configuration, credentials, or user decisions mid-task had two imperfect options: encode the request in a tool response and hope the model would relay it clearly, or fail and ask the user to restart with the required information pre-supplied. Elicitation provides a first-class mechanism for structured, validated input collection that integrates directly into the task flow without breaking context.

For end users, the change means MCP-powered tools can surface clean, purpose-built input forms rather than conversational detours when they need specific information β€” a significantly better experience for tools that require precise values like API keys, configuration flags, or structured parameters.