@@ -63,12 +63,9 @@ specifies how an MCP server indicates the location of its corresponding authoriz
63
63
1 . MCP servers ** MUST** implement OAuth 2.0 Protected Resource Metadata ([ RFC9728] ( https://datatracker.ietf.org/doc/html/rfc9728 ) ).
64
64
MCP clients ** MUST** use OAuth 2.0 Protected Resource Metadata for authorization server discovery.
65
65
66
- 1 . Authorization servers ** MUST** provide _ at least one_ of the following discovery mechanisms:
67
-
68
- - OAuth 2.0 Authorization Server Metadata ([ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) )
69
- - [ OpenID Connect Discovery 1.0] ( https://openid.net/specs/openid-connect-discovery-1_0-final.html )
70
-
71
- MCP clients ** MUST** support both discovery mechanisms to obtain the information required to interact with the authorization server.
66
+ 1 . MCP authorization servers ** MUST** provide OAuth 2.0 Authorization
67
+ Server Metadata ([ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) ).
68
+ MCP clients ** MUST** use the OAuth 2.0 Authorization Server Metadata.
72
69
73
70
### Authorization Server Discovery
74
71
@@ -94,6 +91,11 @@ as described in [RFC9728 Section 5.1 "WWW-Authenticate Response"](https://datatr
94
91
95
92
MCP clients ** MUST** be able to parse ` WWW-Authenticate ` headers and respond appropriately to ` HTTP 401 Unauthorized ` responses from the MCP server.
96
93
94
+ #### Server Metadata Discovery
95
+
96
+ MCP clients ** MUST** follow the OAuth 2.0 Authorization Server Metadata [ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 )
97
+ specification to obtain the information required to interact with the authorization server.
98
+
97
99
#### Sequence Diagram
98
100
99
101
The following diagram outlines an example flow:
@@ -112,11 +114,7 @@ sequenceDiagram
112
114
M-->>C: Resource metadata with authorization server URL
113
115
Note over C: Validate RS metadata,<br />build AS metadata URL
114
116
115
- alt OAuth 2.0 Authorization Server Metadata
116
- C->>A: GET /.well-known/oauth-authorization-server
117
- else OpenID Connect Discovery
118
- C->>A: GET /.well-known/openid-configuration
119
- end
117
+ C->>A: GET /.well-known/oauth-authorization-server
120
118
A-->>C: Authorization server metadata
121
119
122
120
Note over C,A: OAuth 2.1 authorization flow happens here
@@ -172,11 +170,7 @@ sequenceDiagram
172
170
173
171
Note over C: Parse metadata and extract authorization server(s)<br/>Client determines AS to use
174
172
175
- alt OAuth 2.0 Authorization Server Metadata
176
- C->>A: GET /.well-known/oauth-authorization-server
177
- else OpenID Connect Discovery
178
- C->>A: GET /.well-known/openid-configuration
179
- end
173
+ C->>A: GET /.well-known/oauth-authorization-server
180
174
A->>C: Authorization server metadata response
181
175
182
176
alt Dynamic client registration
0 commit comments