fix(mcp): prevent auto-discovered token_url from triggering 2LO client_credentials grant.

This commit is contained in:
awais qureshi 2026-03-10 17:24:05 +05:00
parent f1ce68d38c
commit e50bfa5727
2 changed files with 8 additions and 5 deletions

View file

@ -298,9 +298,14 @@ class MCPServerManager:
resolved_authorization_url = server_config.get("authorization_url") or (
mcp_oauth_metadata.authorization_url if mcp_oauth_metadata else None
)
token_url_from_config = bool(server_config.get("token_url"))
resolved_token_url = server_config.get("token_url") or (
mcp_oauth_metadata.token_url if mcp_oauth_metadata else None
_explicit_token_url = server_config.get("token_url")
_has_pkce_creds = bool(
server_config.get("client_id") and server_config.get("client_secret")
)
resolved_token_url = _explicit_token_url or (
(mcp_oauth_metadata.token_url if mcp_oauth_metadata else None)
if not _has_pkce_creds
else None
)
resolved_registration_url = server_config.get("registration_url") or (
mcp_oauth_metadata.registration_url if mcp_oauth_metadata else None
@ -323,7 +328,6 @@ class MCPServerManager:
scopes=resolved_scopes,
authorization_url=resolved_authorization_url,
token_url=resolved_token_url,
token_url_from_config=token_url_from_config,
registration_url=resolved_registration_url,
# TODO: utility fn the default values
transport=server_config.get("transport", MCPTransport.http),

View file

@ -47,7 +47,6 @@ class MCPServer(BaseModel):
scopes: Optional[List[str]] = None
authorization_url: Optional[str] = None
token_url: Optional[str] = None
token_url_from_config: bool = False # True only when token_url was explicitly set in user config (not auto-discovered)
registration_url: Optional[str] = None
# AWS SigV4 fields
aws_access_key_id: Optional[str] = None