diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index 43fe54fdfb7..ac593476cc2 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -298,6 +298,7 @@ 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 ) @@ -322,6 +323,7 @@ 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), diff --git a/litellm/types/mcp_server/mcp_server_manager.py b/litellm/types/mcp_server/mcp_server_manager.py index ed391f0af68..18df7a6ef21 100644 --- a/litellm/types/mcp_server/mcp_server_manager.py +++ b/litellm/types/mcp_server/mcp_server_manager.py @@ -47,6 +47,7 @@ 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