Skip to content

Replace requestUserInteraction with requestUserInput#204

Open
bwalderman wants to merge 1 commit into
mainfrom
request-user-input
Open

Replace requestUserInteraction with requestUserInput#204
bwalderman wants to merge 1 commit into
mainfrom
request-user-input

Conversation

@bwalderman

@bwalderman bwalderman commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Update the spec to reflect the latest design proposal for elicitation described in #165

This replaces requestUserInteraction on ModelContextClient with a new requestUserInput method which supports three elicitation modes:

  • interactive: In-page UI flow for local browsing (replaces the previous proposed requestUserInteraction behavior)
  • form: Structured data collection via JSON Schema, works for both local and remote browsing scenarios
  • url: Out-of-band URL navigation for sensitive flows (auth, payment), works for both local and remote browsing scenarios

The form and URL modes are aligned with MCP Elicitation (https://modelcontextprotocol.io/specification/draft/client/elicitation).


Preview | Diff

Replace the requestUserInteraction method on ModelContextClient with
requestUserInput, which supports three elicitation modes:

- interactive: In-page UI flow for local browsing (replaces the
  previous requestUserInteraction behavior)
- form: Structured data collection via JSON Schema, works for both
  local and remote browsing scenarios
- url: Out-of-band URL navigation for sensitive flows (auth, payment),
  works for both local and remote browsing scenarios

The form and URL modes are aligned with MCP Elicitation
(https://modelcontextprotocol.io/specification/draft/client/elicitation).

New IDL types: UserInputOptions, UserInputResult, UserInputMode,
UserInputAction, UserInputCallback.

Resolves #165

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Update names

Cleanup

Remove examples
@bwalderman bwalderman requested a review from domfarolino June 9, 2026 19:06
@bwalderman

Copy link
Copy Markdown
Collaborator Author

Algorithm steps are still TODO. I'll fill these in with a follow-up PR. This PR is just to get the interfaces in.

@bwalderman

Copy link
Copy Markdown
Collaborator Author

CI / Build failure appears to be a bug in the latest bikeshed. Opened a PR to fix: speced/bikeshed#3309

@domfarolino

Copy link
Copy Markdown
Collaborator

We're planning on discussing #165 more in tomorrow's call anyways, but I will say that from talking about this a bit internally, we're more interested in supporting the mode: 'interactive' version for a number of reasons, compared to the others, so I might prefer we pursue only that approach initially.

Algorithm steps are still TODO. I'll fill these in with a follow-up PR. This PR is just to get the interfaces in.

Also I think we should avoid filling the spec with incomplete interfaces and empty algorithms. There can be subordinate algorithms to a larger feature that have big TODOs in them in a draft spec of course, but in general I think we should stray away from adding stubs to the spec and filling them out later. This is the same reason that getTools() and executeTool() don't exist as empty methods yet before their actual meat gets filled out—makes sense to just do them all at once.

@beaufortfrancois

Copy link
Copy Markdown
Contributor

Shall we remove the ModelContextClient Interface from the spec for now then until we've identified the proper replacement?

@domfarolino

Copy link
Copy Markdown
Collaborator

Yeah I think that's reasonable: #205

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants