[Feature Request]: Add support for MCP Elicitation

Resolved 💬 93 comments Opened Jul 1, 2025 by jzumwalt Closed Apr 25, 2026
💡 Likely answer: A maintainer (claude[bot], contributor) responded on this thread — see the highlighted reply below.

https://modelcontextprotocol.io/specification/draft/client/elicitation
https://modelcontextprotocol.io/specification/2025-06-18#features

For those who are unaware (obviously not @anthropics) Elicitation allows MCP servers to request additional information from users during interactions - similar to how CLI tools sometimes prompt for missing config values. This would help with several common scenarios:

  • Dynamic configuration - MCP servers could request project paths, settings or other nice-to-haves when needed instead of requiring everything upfront in config files.
  • Interactive workflows - When Claude Code is working on a task and an MCP server needs clarification (e.g., "which database to connect to" or "what naming convention to use"), it could ask directly instead of failing.
  • Controlled data sharing - The elicitation protocol includes accept/decline/cancel responses, giving users explicit control over what information they share with MCP servers.

The feature is already in the draft spec and hopefully this gets included soon - huge unlock!

View original on GitHub ↗

93 Comments

jsulopzs · 1 year ago

+1

zach-lm · 12 months ago

+1

AkatQuas · 12 months ago

https://code.visualstudio.com/updates/v1_102#_support-for-elicitations

vscode already supports elicitation at v1.102 in the June 2025.

Now, go get it, Claude, be brave.

hotwa · 11 months ago

Is finish in latest version?

hotwa · 11 months ago

I use latest fastmcp,with claude code. it seems not support User Elicitation

nileshsimaria · 11 months ago

Much needed for both Claude Code and Claude Desktop. I have implemented one tool that uses elicitation and it works well with VSCode not with Claude Desktop. Here is my tool.

https://github.com/Juniper/junos-mcp-server/blob/main/jmcp.py#L371

vfarcic · 11 months ago

+1

FrancisBourre · 11 months ago

+1

alew3 · 11 months ago

+1

qlmmlp · 10 months ago

+1

je2ryw · 10 months ago

+1

zeel-04 · 10 months ago

+1

rgrenholm · 10 months ago

+1

chughtapan · 10 months ago

+1

alwin-augustin · 10 months ago

+1

tommey · 10 months ago

+1

artamcool · 10 months ago

+1

borbelyr-byborg · 10 months ago

+1

GuilhermeBaldo · 10 months ago

+1

JayFarei · 10 months ago

+1

jchenatcpacket · 10 months ago

+1

oskarsvard-resly · 10 months ago

+1

proggreg · 10 months ago

+1

luancvt · 10 months ago

+1

sachinarora707 · 10 months ago

+1 Please add sampling and elicitation to claude-code and claude desktop.

sverrep · 10 months ago

+1

Stefan-Nitu · 9 months ago

+1

gbikhazi20 · 9 months ago

+1

Dastfox · 9 months ago

+1

delmarad · 9 months ago

+1

tarasyarema · 9 months ago

+1

janbam · 9 months ago

+2

tgmclaughlin · 9 months ago

+1

jbnitorum · 9 months ago

+1

JairoQuispe · 9 months ago

+1

tonymaynard97 · 9 months ago

+1

vi88i · 9 months ago

+1 and compleition support as well :)

DennisDyallo · 9 months ago

I'd love it if I could get this to work. New person here, found myself needing this within a couple of hours of testing MCP and Claude

musmanrafiq1 · 9 months ago

+

DavidsonErickson · 9 months ago

+1

gabrielbryk · 9 months ago

+1

DdangJin · 8 months ago

+1

porydchik · 8 months ago

+1

SorosWen · 8 months ago

+1

sagar-agrawal-prismforce · 8 months ago

+1

htelsiz · 8 months ago

+1

Giustino98 · 8 months ago

+1

enesgules · 8 months ago

+1
This probably is something claude code can do with a few prompts no?

SamBoyd · 7 months ago

+1

dsimpli · 7 months ago

Adding my voice +1.

hocokahu · 7 months ago

+1

akshay-okahu · 7 months ago

+1

isc-tleavitt · 7 months ago

+1

andreweskeclarke · 6 months ago

+1

andreasoie · 6 months ago

+1

thomasgeulen · 6 months ago

+1

JayAjmera0 · 6 months ago

+1. its been 6 months since this was released. I think its high time we receive this feature

kaa7 · 6 months ago

+1

mattpodwysocki · 6 months ago

Real-world use case: Secure token handling in Mapbox MCP servers

We've implemented MCP elicitation in the Mapbox ecosystem and it's proving invaluable for secure credential handling. Wanted to share our experience as a concrete example of why this feature matters:

Use Case: The Mapbox MCP DevKit Server uses elicitation to request preview tokens without exposing them in chat history. When users want to preview map styles, they can:

  1. Provide an existing token
  2. Create a new token with URL restrictions
  3. Auto-create a basic preview token

Without elicitation, these tokens end up in conversation history, creating security risks when users share conversations or export chat logs.

Implementation Status:

  • PR #57 - Full elicitation implementation with capability checks
  • PR #98 - Related work on the main Mapbox MCP server

Current Experience:

  • Works great in: MCP Inspector, Cursor, VS Code (Copilot)
  • Fallback needed in: Claude Desktop, Claude Code (not yet supported)

The capability check pattern works well for graceful degradation, but native support across all Claude clients would significantly improve the user experience. Public tokens appearing in chat history is a common concern we've heard from users, especially when collaborating or sharing conversations.

Happy to provide more details about the implementation or use cases if helpful!

Devansh2308 · 6 months ago

+1

eberle1080 · 6 months ago

+1

LeeSaferite · 5 months ago

How has this been here for almost 7 months without a single peep from the Anthropic team? With the latest spec having expanded elicitations to support "URL Elicitations" for out-of-band auth workflows (among other uses) it seems even more important. Claude Code can clearly generate user inputs with the CLI, it does it all the time.

jakemac53 · 5 months ago

I would like this feature so that the Dart/Flutter MCP servers can prompt the user before installing extra tools like ripgrep. For now I will just return an error telling the user/agent to install ripgrep, but I don't want to install it myself without user consent.

I don't want to add a whole extra tool just for installing it either, because I can't enforce that the user actually consents in that case, the agent would just consent for them more likely than not.

pascalvos · 5 months ago

+1

HaythemJ · 5 months ago

+1

mistercarlosamador · 5 months ago

+1

bgintzairspace · 5 months ago

+1

MVrachev · 5 months ago

+1

embesozzi · 4 months ago

Is there any update on support for this feature? Is a roadmap available?

MCP elicitation is crucial for enabling Just-in-Time (JIT) authorization and out-of-band authN/authZ.

ex0b1t · 4 months ago

+1

te-chan · 4 months ago

+1

esmairi · 4 months ago

+1

pablozamudio · 4 months ago

Any roadmap available on when MCP Elicitation will be supported?

juanlarrambebere · 4 months ago

+1, would be very useful for us.

ms-aishwarya · 4 months ago

+1
Hey Claude Team, any plans of supporting elicitation in Claude Desktop?

Carrasco-R · 4 months ago

+1

Codejock2025 · 4 months ago

+1 — this would solve a real pain point for stateful MCP servers.
I'm building an MCP server that maintains persistent session state (recording mode, active tenant, configuration flags). Today there's no reliable way to surface that state to the user on session start, resume, or after /clear and /compact.
The only workaround is embedding "you MUST call this tool" in static instructions and hoping the LLM complies. After compaction drops context, it often doesn't. notifications/message would be the natural fit, but #3174 was closed as not planned.
Elicitation would give server developers a real mechanism to push critical state info to the user without depending on LLM compliance. This isn't just a nice-to-have — for any MCP server that needs the user to know what mode they're in before they start working, it's a reliability gap.
Would love to see this land.

mdetournay · 4 months ago

+1

trillhause · 4 months ago

+1

LeeSaferite · 4 months ago

It's shameful that there's been zero feedback on this ticket. It's a feature in a spec created and driven by Anthropic, yet it's not even supported in the Anthropic Coding Agent?!

embesozzi · 4 months ago

+1
Just to add a new case to consider: MCP elicitation can be helpful in a Just-In-Time (JIT) authorization scenario.

Recently, we implemented Human-in-the-Loop interactions through MCP elicitation with API-native authentication flows based on OAuth 2.0 first-party applications.

With this approach, for critical operations the MCP server can request a JIT authorization step. The flow works roughly as follows:
a) The user asks Claude to perform a critical action (e.g., execute tool X over MCP X).
b) The MCP server detects that stronger authentication is required and uses MCP elicitation to request human-in-the-loop input from the user, following the authentication steps provided by the Identity Provider (IdP).
c) The user completes the authentication step (e.g., authenticator app, OTP, passkeys, etc.).
d) The IdP issues a new token with elevated privileges → the action succeeds.

The goal: secure, interactive authorization for AI agents without breaking developer workflows, backed by cryptographic proof and human-in-the-loop verification when it matters most.

coygeek · 4 months ago

Anthropic just dropped v2.1.76 with:

  • Added MCP elicitation support — MCP servers can now request structured input mid-task via an interactive dialog (form fields or browser URL)
  • Added new Elicitation and ElicitationResult hooks to intercept and override responses before they're sent back
Carrasco-R · 4 months ago

Looks like this saga can end

mancej · 4 months ago

I'm having trouble getting elicitation to work against my own local MCP server in v2.1.77 (Claude seems convinced it's still not). Can anyone confirm this is _actually_ working now?

embesozzi · 4 months ago

Yes, it’s working fine. Here’s a demo of MCP Elicitation for Just-In-Time (JIT) Authorization using Claude Code for critical tools.

claude --version
2.1.77 (Claude Code)

https://github.com/user-attachments/assets/62a708ef-91ef-4201-984b-6396ccf55853

mancej · 4 months ago

Interesting, I have it working fine in Cursor, and in integration tests, but not in Claude code. Must be something on my end -- Ty for sharing!

m13v · 4 months ago

this would solve a real pain point. right now when our MCP server needs user input (like picking which window to automate), we have to hack around it with tool descriptions that tell Claude to ask the user. native elicitation would let the server request the info directly. would be especially useful for first-run setup flows where the server needs config values that aren't in env vars yet.

m13v · 4 months ago

our MCP server where elicitation would solve real problems: https://github.com/mediar-ai/mcp-server-macos-use/blob/main/Sources/MCPServer/main.swift - currently hacks around the lack of user input by putting instructions in tool descriptions.

shz0209 · 3 months ago

@mancej you need to add "tengu_mcp_elicitation": true in your .claude.json file

yurukusa · 3 months ago

While MCP Elicitation (server-initiated prompts) requires protocol support, a PostToolUse hook can simulate it by detecting when an MCP tool needs more info:

INPUT=$(cat)
TOOL=$(echo "$INPUT" | jq -r '.tool_name // empty')
OUTPUT=$(echo "$INPUT" | jq -r '.tool_output // empty')
if echo "$TOOL" | grep -q '__' && echo "$OUTPUT" | grep -qiE '(missing required|please provide|authentication needed|select one of|which .* do you want)'; then
    echo "[MCP Elicitation] Server needs input: $(echo "$OUTPUT" | head -c 200)" >&2
fi
exit 0

For proactive MCP configuration checks:

SETTINGS="$HOME/.claude/settings.json"
[ -f "$SETTINGS" ] || exit 0
jq -r '.mcpServers // {} | to_entries[] | .key' "$SETTINGS" 2>/dev/null | while read server; do
    ENV=$(jq -r ".mcpServers.\"$server\".env // {}" "$SETTINGS" 2>/dev/null)
    if echo "$ENV" | grep -qE '(YOUR_|TODO|CHANGEME|xxx)'; then
        echo "⚠️ MCP server '$server' has placeholder config values" >&2
    fi
done
exit 0
mohit-gupta-glean · 2 months ago

Elicitation still does not work in Claude Desktop. I am able to use it in Claude Code.

claude[bot] contributor · 2 months ago

This issue was fixed as of version 2.1.76.

github-actions[bot] · 2 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.