@@ -53,8 +53,8 @@ while maintaining simplicity:
53
53
54
54
### 2.2 Basic OAuth 2.1 Authorization
55
55
56
- When authorization is required and not yet prooven by the client, servers ** MUST**
57
- respond with _ HTTP 401 Unauthorized_ .
56
+ When authorization is required and not yet proven by the client, servers ** MUST** respond
57
+ with _ HTTP 401 Unauthorized_ .
58
58
59
59
Clients initiate the
60
60
[ OAuth 2.1 IETF DRAFT] ( https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12 )
@@ -88,10 +88,9 @@ For server capability discovery:
88
88
89
89
- MCP clients _ MUST_ follow the OAuth 2.0 Authorization Server Metadata protocol defined
90
90
in [ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) .
91
- - MCP server _ SHOULD_ support follow the OAuth 2.0 Authorization Server Metadata
92
- protocol.
91
+ - MCP server _ SHOULD_ follow the OAuth 2.0 Authorization Server Metadata protocol.
93
92
- MCP servers that do not support the OAuth 2.0 Authorization Server Metadata protocol,
94
- _ MUST_ support fallback URLs..
93
+ _ MUST_ support fallback URLs.
95
94
96
95
The discovery flow is illustrated below:
97
96
@@ -111,10 +110,11 @@ sequenceDiagram
111
110
Note over C: Continue with authorization flow
112
111
```
113
112
114
- #### 2.3.1 Server Metadata Discover Headers
113
+ #### 2.3.1 Server Metadata Discovery Headers
115
114
116
115
MCP clients _ SHOULD_ include the header ` MCP-Protocol-Version: <protocol-version> ` during
117
- Server Metadata Discover to allow MCP server to respond based on MCP protocol version.
116
+ Server Metadata Discovery to allow the MCP server to respond based on the MCP protocol
117
+ version.
118
118
119
119
For example: ` MCP-Protocol-Version: 2024-11-05 `
120
120
@@ -143,10 +143,9 @@ to allow MCP clients to obtain OAuth client IDs without user interaction.
143
143
[ OAuth 2.0 Dynamic Client Registration Protocol] ( https://datatracker.ietf.org/doc/html/rfc7591 )
144
144
- MCP servers with non-localhost redirect URIs ** SHOULD** support Dynamic Client
145
145
Registration.
146
- - MCP servers with localhost redirect URIs ** OPTIONALLY** support Dynamic Client
147
- Registration.
146
+ - MCP servers with localhost redirect URIs ** MAY** support Dynamic Client Registration.
148
147
149
- Note that are not required to support Dynamic Client Registration. MCP clients that do
148
+ Note that it is not required to support Dynamic Client Registration. MCP clients that do
150
149
not support Dynamic Client Registration need to provide alternative ways to obtain a
151
150
client id (and if applicable client secret).
152
151
@@ -155,9 +154,9 @@ client id (and if applicable client secret).
155
154
When using localhost redirect URIs (http://localhost:{port} or http://127.0.0.1:{port} ),
156
155
clients:
157
156
158
- - Dynamic registration is ** OPTIONAL** (a client ID is not required)
159
- - ** MAY** proceed directly to authorization
160
- - ** MUST NOT ** require client secrets
157
+ - Dynamic registration is ** OPTIONAL** (a client ID is not required).
158
+ - ** MAY** proceed directly to authorization.
159
+ - ** SHOULD ** be considered public clients and not store any clients secrets.
161
160
162
161
This exception for localhost is explicitly supported by OAuth 2.1 for public clients and
163
162
provides a secure flow through the combination of PKCE and localhost-only redirects.
@@ -202,7 +201,7 @@ sequenceDiagram
202
201
M->>B: Redirect to callback with authorization code
203
202
B->>C: Authorization code callback
204
203
C->>M: Token Request + code_verifier
205
- M->>C: Access Token + Refresh Token
204
+ M->>C: Access Token ( + Refresh Token)
206
205
C->>M: API Requests with Access Token
207
206
```
208
207
@@ -360,7 +359,7 @@ When implementing third-party authorization, servers **MUST**:
360
359
361
360
#### 3.1 Local clients as Public OAuth 2.1 Clients
362
361
363
- We strongly recommend that local clients implement OAuth 2.1 as public client:
362
+ We strongly recommend that local clients implement OAuth 2.1 as a public client:
364
363
365
364
1 . Utilizing code challenges (PKCE) for authorization requests to prevent interception
366
365
attacks
@@ -370,8 +369,9 @@ We strongly recommend that local clients implement OAuth 2.1 as public client:
370
369
371
370
#### 3.2 Authorization Metadata Discovery
372
371
373
- We strongly recommend, that all clients implement metadata discovery. This reduces the
374
- need for users to provide endpoints either manually or fallback to the defined defaults.
372
+ We strongly recommend that all clients implement metadata discovery. This reduces the
373
+ need for users to provide endpoints manually or clients to fallback to the defined
374
+ defaults.
375
375
376
376
#### 3.3 Dynamic Client Registration
377
377
0 commit comments