AI RundownDaily
MCP Elicitation: Requesting User Input Safely

MCP Elicitation: Requesting User Input Safely

A practical guide to requesting missing user input during MCP operations without confusing conversation, consent, or credentials.

Why it mattersFor product builders

A practical guide to requesting missing user input during MCP operations without confusing conversation, consent, or credentials.

Key Takeaway

Form mode collects non-sensitive structured values inside the client.

Core idea: elicitation gives an MCP server a structured way to pause and ask the user for missing information without pretending that model-generated guesses are user consent.

Tools often discover that required information is missing only after work begins. A booking tool needs a date; a deployment tool needs an environment; a third-party integration needs the user to complete an external authorization flow. Elicitation represents this as an explicit input-required interaction.

TL;DR

  • Form mode collects non-sensitive structured values inside the client.
  • URL mode sends the user to an external secure interaction with explicit consent.
  • Form mode must not collect passwords, API keys, or other sensitive credentials.
  • Users can accept, decline, or cancel; servers must handle every outcome.
  • Elicitation state must be bound to a verified user and client, not a forgeable identifier.

Two modes, different trust boundaries

Form mode presents a schema-driven form for ordinary inputs such as a project name, date, choice, or confirmation. The client renders the fields and validates the response; the server validates again. Defaults may improve usability but must not hide consequential choices.

URL mode directs the user to an external page for sensitive or secure interaction, including certain authorization and payment flows. The credentials and sensitive inputs must not pass through the MCP client. The client displays the full URL and target domain, obtains consent, and opens it securely without inspecting the interaction.

Servers can use only modes declared by the client. A client declaring elicitation must support at least one. This negotiation lets hosts decline interface patterns they cannot safely present.

The interaction flow

During a client request, the server returns an input-required result containing an elicitation/create request. The client identifies the requesting server, explains what is needed, and presents the form or URL. The user may accept, decline, or cancel. The client returns that action, and the server either resumes, offers a safe alternative, or ends clearly.

Never interpret no response as consent. Timeouts, closed dialogs, and failed navigation need explicit handling. An action may also become invalid while waiting, so authorization and business conditions must be rechecked when execution resumes.

A form example

A report tool learns that “last quarter” is ambiguous because the organization uses a custom fiscal calendar. It requests a form with a bounded quarter choice and an optional report label. The client shows which analytics server is asking and why. After acceptance, the server validates the choice and builds the report.

This is better than asking the model to infer a period and silently acting. It creates a typed value and a visible user decision.

A URL example

A calendar MCP server needs permission to access a third-party calendar account. It sends a URL elicitation request. The client shows the complete HTTPS URL and emphasizes the domain. After user consent, the browser opens an authorization flow between the user, the MCP server, and the third-party provider.

The third-party credential never travels through the MCP client. It is also distinct from the credential used by the client to access the MCP server. The server stores and protects its third-party tokens and securely binds completion to the correct verified user.

Security boundaries

Form mode must not request passwords, API keys, access tokens, or similarly sensitive values. URL mode must not contain personal data or credentials in the URL, and must not use a pre-authenticated URL that another person could replay. Clients must not prefetch the URL or open it automatically.

The server must not trust a user identifier supplied by the client without verification. Remote deployments should derive identity from MCP authorization credentials where possible. Stored request state needs access controls, expiry, anti-replay protection, and binding to user, client, request, and intended action.

Design a good request

A good elicitation request says who is asking, why the input is needed, how it affects the operation, and whether the action can be changed later. Keep forms minimal. Use enums and bounds where possible. Avoid manipulative language, preselected dangerous options, or a generic “continue” button that hides consequences.

Elicitation is not a replacement for ordinary conversation. Use it when structured input, explicit consent, or an out-of-band secure flow materially improves correctness.

Common mistakes

  • Asking for credentials in form mode.
  • Opening external URLs without explicit consent.
  • Hiding or shortening the destination domain.
  • Treating cancellation as acceptance.
  • Failing to recheck authorization after a long pause.
  • Mixing third-party tokens with MCP server credentials.
  • Saving state under a client-provided, unverified user ID.

My Take

Elicitation is strongest when it makes uncertainty visible. Agents should not guess values that belong to users, and servers should not disguise external authorization as a chat response. A good elicitation UI turns an implicit assumption into an explicit, reviewable decision.

Sources

  • Model Context Protocol specification (2026-07-28): Elicitation
  • Model Context Protocol security best practices: identity binding and token passthrough

Was this take useful?

Get this in your inbox. AI Rundown Daily delivers original briefings every morning — free. Subscribe →
RT
Ryan Torres

AI Business & Deals Reporter

Conversational, sharp, like a smart friend briefing you

More articles by Ryan Torres
// Strategic Intelligence Dispatch

Get smarter on the frontier of AI.

Receive our original briefings, research deconstructions, and systems analysis. Delivered every morning, completely free.

* No spam. Unsubscribe anytime.

Related Articles

Handpicked by topic relevance
Multi-Server MCP Architecture: Routing, Isolation, and Control
ai agents

Multi-Server MCP Architecture: Routing, Isolation, and Control

Aug 3 · 4 min read
MCP Sampling Explained: Model Calls Requested by Servers
ai agents

MCP Sampling Explained: Model Calls Requested by Servers

Aug 3 · 4 min read
MCP Roots and Filesystem Boundaries Explained
ai agents

MCP Roots and Filesystem Boundaries Explained

Aug 3 · 4 min read
MCP Logging and Completion Utilities
ai agents

MCP Logging and Completion Utilities

Aug 3 · 4 min read
Why MCP Exists: The Integration Problem It Solves
ai agents

Why MCP Exists: The Integration Problem It Solves

Aug 3 · 5 min read

From the Learn Hub

Plain-language explainers on this topic
📘 AI Fundamentals

What is MCP (Model Context Protocol)?

Learn Hub · intermediate
⚖️ Comparisons

What is the difference between RAG and MCP?

Learn Hub · intermediate
💼 Careers & Jobs

What skills should I learn to work with LLMs?

Learn Hub · beginner

Continue Reading

All articles →
Multi-Server MCP Architecture: Routing, Isolation, and Control
ai-agents

Multi-Server MCP Architecture: Routing, Isolation, and Control

4 min read
MCP Sampling Explained: Model Calls Requested by Servers
ai-agents

MCP Sampling Explained: Model Calls Requested by Servers

4 min read
MCP Roots and Filesystem Boundaries Explained
ai-agents

MCP Roots and Filesystem Boundaries Explained

4 min read