Skip to content

Commit 2651e02

Browse files
authored
Merge pull request modelcontextprotocol#780 from modelcontextprotocol/davidsp/fix-role-order
davidsp/fix role order
2 parents 500fde3 + 30b8ce6 commit 2651e02

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

docs/specification/draft/basic/authorization.mdx

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,37 +39,37 @@ while maintaining simplicity:
3939

4040
## Authorization Flow
4141

42+
### Roles
43+
44+
A protected _MCP server_ acts as an [OAuth 2.1 resource server](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
45+
capable of accepting and responding to protected resource requests using access tokens.
46+
47+
An _MCP client_ acts as an [OAuth 2.1 client](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
48+
making protected resource requests on behalf of a resource owner.
49+
50+
The _authorization server_ is responsible for interacting with the user (if necessary) and issuing access tokens for use at the MCP server.
51+
The implementation details of the authorization server are beyond the scope of this specification. It may be hosted with the
52+
resource server or a separate entity. The [Authorization Server Discovery section](#authorization-server-discovery)
53+
specifies how an MCP server indicates the location of its corresponding authorization server to a client.
54+
4255
### Overview
4356

44-
1. MCP authorization servers **MUST** implement OAuth 2.1 with appropriate security
57+
1. Authorization servers **MUST** implement OAuth 2.1 with appropriate security
4558
measures for both confidential and public clients.
4659

47-
1. MCP authorization servers and MCP clients **SHOULD** support the OAuth 2.0 Dynamic Client Registration
60+
1. Authorization servers and MCP clients **SHOULD** support the OAuth 2.0 Dynamic Client Registration
4861
Protocol ([RFC7591](https://datatracker.ietf.org/doc/html/rfc7591)).
4962

5063
1. MCP servers **MUST** implement OAuth 2.0 Protected Resource Metadata ([RFC9728](https://datatracker.ietf.org/doc/html/rfc9728)).
5164
MCP clients **MUST** use OAuth 2.0 Protected Resource Metadata for authorization server discovery.
5265

53-
1. MCP authorization servers **MUST** provide at least one of the following discovery mechanisms:
66+
1. Authorization servers **MUST** provide _at least one_ of the following discovery mechanisms:
5467

5568
- OAuth 2.0 Authorization Server Metadata ([RFC8414](https://datatracker.ietf.org/doc/html/rfc8414))
5669
- [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0-final.html)
5770

5871
MCP clients **MUST** support both discovery mechanisms to obtain the information required to interact with the authorization server.
5972

60-
### Roles
61-
62-
A protected MCP server acts as an [OAuth 2.1 resource server](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
63-
capable of accepting and responding to protected resource requests using access tokens.
64-
65-
An MCP client acts as an [OAuth 2.1 client](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
66-
making protected resource requests on behalf of a resource owner.
67-
68-
The authorization server is responsible for interacting with the user (if necessary) and issuing access tokens for use at the MCP server.
69-
The implementation details of the authorization server are beyond the scope of this specification. It may be hosted with the
70-
resource server or a separate entity. The [Authorization Server Discovery section](#authorization-server-discovery)
71-
specifies how an MCP server indicates the location of its corresponding authorization server to a client.
72-
7373
### Authorization Server Discovery
7474

7575
This section describes the mechanisms by which MCP servers advertise their associated
@@ -142,7 +142,7 @@ for MCP because:
142142
- It enables seamless connection to new MCP servers and their authorization servers.
143143
- Authorization servers can implement their own registration policies.
144144

145-
Any MCP authorization servers that _do not_ support Dynamic Client Registration need to provide
145+
Any authorization servers that _do not_ support Dynamic Client Registration need to provide
146146
alternative ways to obtain a client ID (and, if applicable, client credentials). For one of
147147
these authorization servers, MCP clients will have to either:
148148

@@ -277,7 +277,7 @@ response.
277277

278278
MCP clients **MUST NOT** send tokens to the MCP server other than ones issued by the MCP server's authorization server.
279279

280-
MCP authorization servers **MUST** only accept tokens that are valid for use with their
280+
Authorization servers **MUST** only accept tokens that are valid for use with their
281281
own resources.
282282

283283
MCP servers **MUST NOT** accept or transit any other tokens.
@@ -304,8 +304,8 @@ requests that appear legitimate to resource servers.
304304
Clients and servers **MUST** implement secure token storage and follow OAuth best practices,
305305
as outlined in [OAuth 2.1, Section 7.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.1).
306306

307-
MCP authorization servers SHOULD issue short-lived access tokens to reduce the impact of leaked tokens.
308-
For public clients, MCP authorization servers **MUST** rotate refresh tokens as described in [OAuth 2.1 Section 4.3.1 "Refresh Token Grant"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-4.3.1).
307+
Authorization servers **SHOULD** issue short-lived access tokens to reduce the impact of leaked tokens.
308+
For public clients, authorization servers **MUST** rotate refresh tokens as described in [OAuth 2.1 Section 4.3.1 "Refresh Token Grant"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-4.3.1).
309309

310310
### Communication Security
311311

0 commit comments

Comments
 (0)