[FEATURE] Auto-expand enum option lists in MCP elicitation form dialogs

Status Open
Reported on v2.1.223
Maintainer reply None cached
Activity 0 comments · opened Aug 13, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

MCP servers can interview the user via form-mode elicitation (elicitation/create). Enum and multi-select fields render as collapsed accordions: the option list stays invisible until the user presses (or types a matching character) on the focused field, and navigating to another field collapses it again.

For elicitation-driven interview flows — a server asking the user to pick one of N options per dialog — this hides the answers behind a hard-to-discover keypress. A first-time user sees only Layout: *not set* with no visible choices; the → expand hint sits in the footer and is routinely missed. The built-in AskUserQuestion tool shows its option list immediately, but an MCP server cannot get that behavior even for a form containing a single enum field: no schema property affects initial expansion.

Observed on Claude Code 2.1.223 (macOS terminal, MCP stdio server using form-mode elicitation).

Proposed Solution

Auto-expand the option list when the focused field is an enum/multi-select — at minimum when it is the form's only field, where a collapsed accordion saves no space and there is no field-list navigation to conflict with.

A conservative version: expand the accordion automatically on focus whenever the expanded options still fit the available rows, keeping current behavior for large forms.

Alternative Solutions

  • A server-controlled schema hint (e.g. an extension key meaning "render expanded") would also work, but the elicitation requestedSchema subset is deliberately frozen in the MCP spec, so a client-side heuristic seems more realistic.
  • Server-side workarounds tried: one question per elicitation dialog (helps focus, options still hidden), enumNames carrying label + description (renders nicely, but only after manual expansion). Neither removes the extra keypress.

View original on GitHub ↗