You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/specification/draft/basic/authorization.mdx
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -301,6 +301,5 @@ Authorization servers **SHOULD** only automatically redirect the user agent if i
301
301
302
302
Attackers can exploit MCP servers acting as intermediaries to third-party APIs, leading to confused deputy vulnerabilities. By using stolen authorization codes, they can obtain access tokens without user consent. See [Security Best Practices 2.1](/specification/draft/basic/security_best_practices) for details.
303
303
304
-
MCP proxy servers that use a static client ID for third-party services MUST require explicit
305
-
approval for each dynamically registered client before forwarding requests to the
306
-
third-party authorization server for user consent.
304
+
MCP proxy servers using static client IDs **MUST** obtain user consent for each dynamically
305
+
registered client before forwarding to third-party authorization servers (which may require additional consent).
Copy file name to clipboardExpand all lines: docs/specification/draft/basic/security_best_practices.mdx
+7-11Lines changed: 7 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,22 +21,20 @@ Attackers can exploit MCP servers proxying other resource servers, creating "[co
21
21
#### 2.1.1 Terminology
22
22
23
23
**MCP Proxy Server**
24
-
: An MCP server that acts as an intermediary between MCP clients and a protected
25
-
third-party API. The MCP proxy server provides MCP functionality while delegating
26
-
API operations to a third-party API server. The MCP proxy server acts as a single OAuth client to the third-party API server.
24
+
: An MCP server that connects MCP clients to third-party APIs, offering MCP features while delegating operations and acting as a single OAuth client to the third-party API server.
27
25
28
26
**Third-Party Authorization Server**
29
-
: The authorization server that protects access to the third-party API. This server may not
30
-
support dynamic client registration, requiring the MCP proxy server to use a single static
31
-
client ID for all requests.
27
+
: Authorization server that protects the third-party API. It may lack dynamic client registration support, requiring MCP proxy to use a static client ID for all requests.
32
28
33
29
**Third-Party API**
34
30
: The protected resource server that provides the actual API functionality. Access to this
35
31
API requires tokens issued by the third-party authorization server.
36
32
37
33
**Static Client ID**
38
34
: A fixed OAuth 2.0 client identifier used by the MCP proxy server when communicating with
39
-
the third-party authorization server, shared across all MCP clients.
35
+
the third-party authorization server. This Client ID refers to the MCP server acting as a client
36
+
to the Third-Party API. It is the same value for all MCP server to Third-Party API interactions regardless of
37
+
which MCP client initiated the request.
40
38
41
39
#### 2.1.2 Architecture and Attack Flow
42
40
@@ -100,7 +98,5 @@ attack becomes possible:
100
98
101
99
#### 2.1.4 Mitigation
102
100
103
-
MCP proxy servers that use a static client ID for third-party services MUST require explicit
104
-
approval for each dynamically registered client before forwarding requests to the
105
-
third-party authorization server for user consent. This ensures that each MCP client's
106
-
access is explicitly controlled at the proxy level.
101
+
MCP proxy servers using static client IDs **MUST** obtain user consent for each dynamically
102
+
registered client before forwarding to third-party authorization servers (which may require additional consent).
0 commit comments