@@ -50,25 +50,32 @@ while maintaining simplicity:
5050 Server Metadata ([ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) ). Servers
5151 that do not support Authorization Server Metadata ** MUST** follow the default URI
5252 schema.
53-
54- OAuth specifies different flows or grant types, which in essence, are different ways of obtaining an access token.
55- Each of these targets different use cases and scenarios.
5653
57- MCP servers ** SHOULD ** support the OAuth grant types that better align with the intended audience. For instance:
54+ ### 2.1.1 OAuth Grant Types
5855
59- 1 . Authorization Code: Useful when the client is acting on behalf of a (human) end user.
60- * For instance, an agent calls an MCP tool implemented by a SaaS system.
61- 2 . System to system: The client is another application (not a human)
62- * For instance, an agent calls a secure MCP tool to check inventory at a specific store. No need to impersonate the end user.
56+ OAuth specifies different flows or grant types, which are different ways of obtaining an
57+ access token. Each of these targets different use cases and scenarios.
6358
59+ MCP servers ** SHOULD** support the OAuth grant types that best align with the intended
60+ audience. For instance:
6461
65- ### 2.2 Example: OAuth 2.1 flow for the Authorization Code Grant Type (User to system)
62+ 1 . Authorization Code: useful when the client is acting on behalf of a (human) end user.
63+ - For instance, an agent calls an MCP tool implemented by a SaaS system.
64+ 2 . Client Credentials: the client is another application (not a human)
65+ - For instance, an agent calls a secure MCP tool to check inventory at a specific
66+ store. No need to impersonate the end user.
6667
67- ** NOTE** : For simplicity’s sake, the following examples will assume the MCP server to also function as the authorization server. However,
68- in real implementations the authorization server may be deployed as its own distinct service.
68+ ### 2.2 Example: authorization code grant
6969
70- A human user completes the OAuth flow through a web browser, obtaining an access token that identifies them personally and allows the
71- client to act on their behalf.
70+ This demonstrates the OAuth 2.1 flow for the authorization code grant type, used for user
71+ auth.
72+
73+ ** NOTE** : The following example assumes the MCP server is also functioning as the
74+ authorization server. However, the authorization server may be deployed as its own
75+ distinct service.
76+
77+ A human user completes the OAuth flow through a web browser, obtaining an access token
78+ that identifies them personally and allows the client to act on their behalf.
7279
7380When authorization is required and not yet proven by the client, servers ** MUST** respond
7481with _ HTTP 401 Unauthorized_ .
@@ -99,7 +106,7 @@ sequenceDiagram
99106 Note over C,M: Begin standard MCP message exchange
100107```
101108
102- ### 2.2 Server Metadata Discovery
109+ ### 2.3 Server Metadata Discovery
103110
104111For server capability discovery:
105112
0 commit comments