You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/specification/draft/changelog.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ the previous revision, [2025-06-18](/specification/2025-06-18).
14
14
3. Enhance authorization flows with incremental scope consent via `WWW-Authenticate` ([SEP-835](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/835))
15
15
4. Provide guidance on tool names ([SEP-986](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1603))
16
16
5. Update `ElicitResult` and `EnumSchema` to use a more standards-based approach and support titled, untitled, single-select, and multi-select enums ([SEP-1330](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1330)).
17
-
6. Added support for [URL mode elicitation](/specification/draft/client/elicitation#url-elicitation-requests)([SEP-1036](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/887))
17
+
6. Added support for [URL mode elicitation](/specification/draft/client/elicitation#url-elicitation-requests)([SEP-1036](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/887))
18
18
7. Add tool calling support to sampling via `tools` and `toolChoice` parameters ([SEP-1577](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1577))
19
19
8. Add support for OAuth Client ID Metadata Documents as a recommended client registration mechanism ([SEP-991](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/991), PR [#1296](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1296))
20
20
9. Add experimental support for [tasks](/specification/draft/basic/utilities/tasks) to enable tracking durable requests with polling and deferred result retrieval ([SEP-1686](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1686)).
Copy file name to clipboardExpand all lines: docs/specification/draft/client/elicitation.mdx
+25-18Lines changed: 25 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -324,8 +324,23 @@ Note that complex nested structures, arrays of objects (beyond enums), and other
324
324
325
325
### URL Mode Elicitation Requests
326
326
327
+
<Note>
328
+
329
+
**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.
330
+
331
+
</Note>
332
+
327
333
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.
328
334
335
+
URL mode elicitation requests **MUST** specify `mode: "url"`, a `message`, and include these additional parameters:
|`url`| string | The URL that the user should navigate to. |
344
-
|`elicitationId`| string | A unique identifier for the elicitation. |
345
-
346
-
The `url` parameter **MUST** contain a valid URL. The `message` parameter **MUST NOT** contain a URL.
347
-
348
354
#### Example: Request Sensitive Data
349
355
350
356
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).
@@ -384,18 +390,19 @@ of band and the client is not aware of the outcome until and unless the server s
384
390
385
391
### Completion Notifications for URL Mode Elicitation
386
392
387
-
Servers **SHOULD** send a `notifications/elicitation/complete` notification when an
393
+
Servers **MAY** send a `notifications/elicitation/complete` notification when an
388
394
out-of-band interaction started by URL mode elicitation is completed. This allows clients to react programmatically if appropriate.
389
395
390
-
- The notification **MUST** only be sent to the client that initiated the elicitation request.
391
-
- The notification **MUST** include the `elicitationId` established in the original
392
-
`elicitation/create` request.
393
-
-Clients **MUST**ignore notifications referencing unknown or already-completed IDs.
394
-
- If a completion notification never arrives, clients **SHOULD** provide a manual
395
-
way for the user to continue the interaction.
396
+
Servers sending notifications:
397
+
398
+
-**MUST** only send the notification to the client that initiated the elicitation request.
399
+
-**MUST**include the `elicitationId` established in the original `elicitation/create` request.
400
+
401
+
Clients:
396
402
397
-
Clients **MAY** use the notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction.
398
-
However, because delivery of the notification is not guaranteed, clients must not wait indefinitely for a notification from the server.
403
+
-**MUST** ignore notifications referencing unknown or already-completed IDs.
404
+
-**MAY** wait for this notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction.
405
+
-**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.
0 commit comments