Skip to content

Commit 68e25d4

Browse files
yannj-frpcarleton
andauthored
Improved supported for ProtectedResourceMetadata (#1235)
Co-authored-by: Paul Carleton <[email protected]>
1 parent 6c61058 commit 68e25d4

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/mcp/server/auth/routes.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ def create_protected_resource_routes(
190190
resource_url: AnyHttpUrl,
191191
authorization_servers: list[AnyHttpUrl],
192192
scopes_supported: list[str] | None = None,
193+
resource_name: str | None = None,
194+
resource_documentation: AnyHttpUrl | None = None,
193195
) -> list[Route]:
194196
"""
195197
Create routes for OAuth 2.0 Protected Resource Metadata (RFC 9728).
@@ -209,6 +211,8 @@ def create_protected_resource_routes(
209211
resource=resource_url,
210212
authorization_servers=authorization_servers,
211213
scopes_supported=scopes_supported,
214+
resource_name=resource_name,
215+
resource_documentation=resource_documentation,
212216
# bearer_methods_supported defaults to ["header"] in the model
213217
)
214218

src/mcp/shared/auth.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,17 @@ class ProtectedResourceMetadata(BaseModel):
139139

140140
resource: AnyHttpUrl
141141
authorization_servers: list[AnyHttpUrl] = Field(..., min_length=1)
142+
jwks_uri: AnyHttpUrl | None = None
142143
scopes_supported: list[str] | None = None
143144
bearer_methods_supported: list[str] | None = Field(default=["header"]) # MCP only supports header method
145+
resource_signing_alg_values_supported: list[str] | None = None
146+
resource_name: str | None = None
144147
resource_documentation: AnyHttpUrl | None = None
148+
resource_policy_uri: AnyHttpUrl | None = None
149+
resource_tos_uri: AnyHttpUrl | None = None
150+
# tls_client_certificate_bound_access_tokens default is False, but ommited here for clarity
151+
tls_client_certificate_bound_access_tokens: bool | None = None
152+
authorization_details_types_supported: list[str] | None = None
153+
dpop_signing_alg_values_supported: list[str] | None = None
154+
# dpop_bound_access_tokens_required default is False, but ommited here for clarity
155+
dpop_bound_access_tokens_required: bool | None = None

0 commit comments

Comments
 (0)