Skip to content

Commit 5f4404d

Browse files
committed
Revert to original language with tweaks
1 parent 03671e5 commit 5f4404d

File tree

4 files changed

+21
-46
lines changed

4 files changed

+21
-46
lines changed

docs/specification/draft/client/elicitation.mdx

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -336,18 +336,12 @@ URL mode elicitation enables servers to direct users to external URLs for out-of
336336

337337
URL mode elicitation requests **MUST** specify `mode: "url"`, a `message`, and include these additional parameters:
338338

339-
| Name | Type | Default | Description |
340-
| ---------------------- | ------- | ------- | ------------------------------------------------------------------------------------------ |
341-
| `url` | string | - | The URL that the user should navigate to. |
342-
| `elicitationId` | string | - | A unique identifier for the elicitation. |
343-
| `notifiesOnCompletion` | boolean | false | Whether the server commits to sending a `notifications/elicitation/complete` notification. |
339+
| Name | Type | Description |
340+
| --------------- | ------ | ----------------------------------------- |
341+
| `url` | string | The URL that the user should navigate to. |
342+
| `elicitationId` | string | A unique identifier for the elicitation. |
344343

345-
The `url` parameter **MUST** contain a valid URL. The `message` parameter **MUST NOT** contain a URL.
346-
347-
The `notifiesOnCompletion` parameter indicates whether the server commits to sending a `notifications/elicitation/complete` notification:
348-
349-
- When `notifiesOnCompletion` is `true`: The server **MUST** send the notification once it determines the out-of-band interaction has completed (whether successfully or not).
350-
- When `notifiesOnCompletion` is `false` or absent: Servers **SHOULD NOT** send the notification, and clients **MUST NOT** rely on receiving it.
344+
The `url` parameter **MUST** contain a valid URL.
351345

352346
#### Example: Request Sensitive Data
353347

@@ -365,8 +359,7 @@ The same request could direct the user into an OAuth authorization flow, or a pa
365359
"mode": "url",
366360
"elicitationId": "550e8400-e29b-41d4-a716-446655440000",
367361
"url": "https://mcp.example.com/ui/set_api_key",
368-
"message": "Please provide your API key to continue.",
369-
"notifiesOnCompletion": true
362+
"message": "Please provide your API key to continue."
370363
}
371364
}
372365
```
@@ -389,32 +382,24 @@ of band and the client is not aware of the outcome until and unless the server s
389382

390383
### Completion Notifications for URL Mode Elicitation
391384

392-
Servers can send a `notifications/elicitation/complete` notification when an
385+
<Note>
386+
**Experimental**: This mechanism to notify clients of completed out-of-band
387+
interactions could change or be removed in upcoming releases.
388+
</Note>
389+
390+
Servers **MAY** send a `notifications/elicitation/complete` notification when an
393391
out-of-band interaction started by URL mode elicitation is completed. This allows clients to react programmatically if appropriate.
394392

395393
Servers sending notifications:
396394

397395
- **MUST** only send the notification to the client that initiated the elicitation request.
398396
- **MUST** include the `elicitationId` established in the original `elicitation/create` request.
399397

400-
Clients receiving notifications:
398+
Clients:
401399

402400
- **MUST** ignore notifications referencing unknown or already-completed IDs.
403-
404-
The `notifiesOnCompletion` parameter in the `elicitation/create` request indicates whether the server commits to sending a `notifications/elicitation/complete` notification,
405-
and whether the client can expect to receive it.
406-
407-
When a server includes `notifiesOnCompletion: true` in an `elicitation/create` request:
408-
409-
- The server **MUST** send a `notifications/elicitation/complete` notification once it determines the out-of-band interaction has completed (whether successfully or not).
410-
- Clients **MAY** wait for this notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction.
411-
- Clients **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.
412-
413-
When a server includes `notifiesOnCompletion: false` in an `elicitation/create` request:
414-
415-
- The server **SHOULD NOT** send a `notifications/elicitation/complete` notification.
416-
- Clients **MUST NOT** rely on receiving a notification.
417-
- Clients **SHOULD** provide a manual way for the user to continue the interaction.
401+
- **MAY** wait for this notification to automatically retry requests that received a [URLElicitationRequiredError](#error-handling), update the user interface, or otherwise continue an interaction.
402+
- **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.
418403

419404
#### Example
420405

@@ -451,8 +436,7 @@ Any elicitations returned in the error **MUST** be URL mode elicitations and hav
451436
"mode": "url",
452437
"elicitationId": "550e8400-e29b-41d4-a716-446655440000",
453438
"url": "https://mcp.example.com/connect?elicitationId=550e8400-e29b-41d4-a716-446655440000",
454-
"message": "Authorization is required to access your Example Co files.",
455-
"notifiesOnCompletion": true
439+
"message": "Authorization is required to access your Example Co files."
456440
}
457441
]
458442
}
@@ -502,7 +486,7 @@ sequenceDiagram
502486
503487
Note over User,UserAgent: User interaction
504488
UserAgent-->>Server: Interaction complete
505-
Server-->>Client: notifications/elicitation/complete (if `notifiesOnCompletion: true`)
489+
Server-->>Client: notifications/elicitation/complete (optional)
506490
507491
Note over Server: Continue processing with new information
508492
```
@@ -531,7 +515,7 @@ sequenceDiagram
531515
Note over User,UserAgent: User interaction
532516
533517
UserAgent-->>Server: Interaction complete
534-
Server-->>Client: notifications/elicitation/complete (if `notifiesOnCompletion: true`)
518+
Server-->>Client: notifications/elicitation/complete (optional)
535519
536520
Client->>Server: Retry tools/call (optional)
537521
```
@@ -673,7 +657,7 @@ sequenceDiagram
673657
Client->>Server: tools/call
674658
Note over Server: Needs 3rd-party authorization for user
675659
Note over Server: Store state (bind the elicitation request to the user)
676-
Server->>Client: URLElicitationRequiredError<br> (mode: "url", url: "https://mcp.example.com/connect?...", notifiesOnCompletion: true)
660+
Server->>Client: URLElicitationRequiredError<br> (mode: "url", url: "https://mcp.example.com/connect?...")
677661
Note over Client: Client notes the tools/call request can be retried later
678662
Client->>User: Present consent to open URL
679663
User->>Client: Provide consent

0 commit comments

Comments
 (0)