-
Notifications
You must be signed in to change notification settings - Fork 1.2k
fix: Clearer language around new feature status of URL elicitation #1825
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
26bc30c
5c56fb7
03671e5
5f4404d
d17c6d0
56e058e
1f9f641
b55f2ae
4fde1d2
3b9aa40
3028c92
73ffad7
5e2d71a
51c57f3
cf2d382
96676cc
f9acb6e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -322,8 +322,23 @@ Note that complex nested structures, arrays of objects (beyond enums), and other | |
|
|
||
| ### URL Mode Elicitation Requests | ||
|
|
||
| <Note> | ||
|
|
||
| **New feature:** URL mode elicitation is introduced in the `2025-11-25` version of the MCP specification. Its design and implementation may change in future protocol revisions. | ||
|
|
||
| </Note> | ||
|
|
||
| URL mode elicitation enables servers to direct users to external URLs for out-of-band interactions that must not pass through the MCP client. This is essential for auth flows, payment processing, and other sensitive or secure operations. | ||
|
|
||
| URL mode elicitation requests **MUST** specify `mode: "url"`, a `message`, and include these additional parameters: | ||
|
|
||
| | Name | Type | Description | | ||
| | --------------- | ------ | ----------------------------------------- | | ||
| | `url` | string | The URL that the user should navigate to. | | ||
| | `elicitationId` | string | A unique identifier for the elicitation. | | ||
|
|
||
| The `url` parameter **MUST** contain a valid URL. | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We removed the |
||
|
|
||
| <Note> | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shifted this |
||
| **Important**: URL mode elicitation is *not* for authorizing the MCP client's | ||
| access to the MCP server (that's handled by [MCP | ||
|
|
@@ -334,15 +349,6 @@ URL mode elicitation enables servers to direct users to external URLs for out-of | |
| elicitation URL the server wants them to open. | ||
| </Note> | ||
|
|
||
| URL mode elicitation requests **MUST** specify `mode: "url"` and include these additional parameters: | ||
|
|
||
| | Name | Type | Description | | ||
| | --------------- | ------ | ----------------------------------------- | | ||
| | `url` | string | The URL that the user should navigate to. | | ||
| | `elicitationId` | string | A unique identifier for the elicitation. | | ||
|
|
||
| The `url` parameter **MUST** contain a valid URL. The `message` parameter **MUST NOT** contain a URL. | ||
|
|
||
| #### Example: Request Sensitive Data | ||
|
|
||
| This example shows a URL mode elicitation request directing the user to a secure URL where they can provide sensitive information (an API key, for example). | ||
|
|
@@ -382,18 +388,19 @@ of band and the client is not aware of the outcome until and unless the server s | |
|
|
||
| ### Completion Notifications for URL Mode Elicitation | ||
|
|
||
| Servers **SHOULD** send a `notifications/elicitation/complete` notification when an | ||
| Servers **MAY** send a `notifications/elicitation/complete` notification when an | ||
| out-of-band interaction started by URL mode elicitation is completed. This allows clients to react programmatically if appropriate. | ||
|
|
||
| - The notification **MUST** only be sent to the client that initiated the elicitation request. | ||
| - The notification **MUST** include the `elicitationId` established in the original | ||
| `elicitation/create` request. | ||
| - Clients **MUST** ignore notifications referencing unknown or already-completed IDs. | ||
| - If a completion notification never arrives, clients **SHOULD** provide a manual | ||
| way for the user to continue the interaction. | ||
| Servers sending notifications: | ||
|
|
||
| - **MUST** only send the notification to the client that initiated the elicitation request. | ||
| - **MUST** include the `elicitationId` established in the original `elicitation/create` request. | ||
|
|
||
| Clients: | ||
|
|
||
| Clients **MAY** use the notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction. | ||
| However, because delivery of the notification is not guaranteed, clients must not wait indefinitely for a notification from the server. | ||
| - **MUST** ignore notifications referencing unknown or already-completed IDs. | ||
| - **MAY** wait for this notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction. | ||
| - **SHOULD** still provide manual controls that let the user retry or cancel the original request (or otherwise resume interacting with the client) if the notification never arrives. | ||
|
|
||
| #### Example | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No substantive change here, just clarifying that
message(described earlier in the document) is still a required field for this type ofelicitation/createrequest.