Skip to content

Commit d631c86

Browse files
authored
Elicitation: clarify clickable URL language (modelcontextprotocol#1811)
1 parent 4528444 commit d631c86

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

docs/specification/draft/client/elicitation.mdx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ For trust & safety and security:
3131

3232
- Servers **MUST NOT** use form mode elicitation to request sensitive information
3333
- Servers **MUST** use URL mode for interactions involving sensitive information, such as credentials
34-
- URLs **MUST NOT** appear in any field of an elicitation request, other than the `url` field in an URL mode request
3534

3635
MCP clients **MUST**:
3736

@@ -699,11 +698,10 @@ Clients **MUST** return standard JSON-RPC errors for common failure cases:
699698

700699
MCP servers requesting elicitation:
701700

702-
1. **MUST NOT** include URLs in any message or schema fields as part of a form mode elicitation request.
703-
1. **MUST NOT** include URLs in any message or schema fields as part of an URL mode elicitation request, except for the `url` field.
704-
1. **MUST NOT** include plain text sensitive information about the end-user, including credentials, personal identifiable information, etc., in the URL sent to the client.
705-
1. **MUST NOT** provide a URL which is pre-authenticated to access a protected resource, as the URL could be used to impersonate the user by a malicious client.
706-
1. **SHOULD** use HTTPS URLs for non-development environments.
701+
1. **MUST NOT** include sensitive information about the end-user, including credentials, personal identifiable information, etc., in the URL sent to the client in a URL elicitation request.
702+
2. **MUST NOT** provide a URL which is pre-authenticated to access a protected resource, as the URL could be used to impersonate the user by a malicious client.
703+
3. **SHOULD NOT** include URLs intended to be clickable in any field of a form mode elicitation request.
704+
4. **SHOULD** use HTTPS URLs for non-development environments.
707705

708706
These server requirements ensure that client implementations have clear rules about when to present a URL to the user, so that the client-side rules (below) can be consistently applied.
709707

@@ -718,6 +716,7 @@ When handling URL mode elicitation requests, MCP clients:
718716
For example, on iOS, [SFSafariViewController](https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller) is good, but [WkWebView](https://developer.apple.com/documentation/webkit/wkwebview) is not.
719717
5. **SHOULD** highlight the domain of the URL to mitigate subdomain spoofing.
720718
6. **SHOULD** have warnings for ambiguous/suspicious URIs (i.e., containing Punycode).
719+
7. **SHOULD NOT** render URLs as clickable in any field of an elicitation request, except for the `url` field in a URL elicitation request (with the restrictions detailed above).
721720

722721
### Identifying the User
723722

0 commit comments

Comments
 (0)