2424from mcp .server .auth .middleware .auth_context import AuthContextMiddleware
2525from mcp .server .auth .middleware .bearer_auth import BearerAuthBackend , RequireAuthMiddleware
2626from mcp .server .auth .provider import OAuthAuthorizationServerProvider , ProviderTokenVerifier , TokenVerifier
27- from mcp .server .auth .routes import (
28- build_resource_metadata_url ,
29- create_auth_routes ,
30- create_protected_resource_routes ,
31- )
3227from mcp .server .auth .settings import AuthSettings
3328from mcp .server .elicitation import ElicitationResult , ElicitSchemaModelT , UrlElicitationResult , elicit_with_validation
3429from mcp .server .elicitation import elicit_url as _elicit_url
@@ -815,6 +810,8 @@ async def handle_sse(scope: Scope, receive: Receive, send: Send): # pragma: no
815810
816811 # Add auth endpoints if auth server provider is configured
817812 if self ._auth_server_provider :
813+ from mcp .server .auth .routes import create_auth_routes
814+
818815 routes .extend (
819816 create_auth_routes (
820817 provider = self ._auth_server_provider ,
@@ -830,6 +827,8 @@ async def handle_sse(scope: Scope, receive: Receive, send: Send): # pragma: no
830827 # Determine resource metadata URL
831828 resource_metadata_url = None
832829 if self .settings .auth and self .settings .auth .resource_server_url :
830+ from mcp .server .auth .routes import build_resource_metadata_url
831+
833832 # Build compliant metadata URL for WWW-Authenticate header
834833 resource_metadata_url = build_resource_metadata_url (self .settings .auth .resource_server_url )
835834
@@ -869,6 +868,8 @@ async def sse_endpoint(request: Request) -> Response:
869868 )
870869 # Add protected resource metadata endpoint if configured as RS
871870 if self .settings .auth and self .settings .auth .resource_server_url : # pragma: no cover
871+ from mcp .server .auth .routes import create_protected_resource_routes
872+
872873 routes .extend (
873874 create_protected_resource_routes (
874875 resource_url = self .settings .auth .resource_server_url ,
@@ -885,6 +886,7 @@ async def sse_endpoint(request: Request) -> Response:
885886
886887 def streamable_http_app (self ) -> Starlette :
887888 """Return an instance of the StreamableHTTP server app."""
889+ from starlette .middleware import Middleware
888890
889891 # Create session manager on first call (lazy initialization)
890892 if self ._session_manager is None : # pragma: no branch
@@ -921,6 +923,8 @@ def streamable_http_app(self) -> Starlette:
921923
922924 # Add auth endpoints if auth server provider is configured
923925 if self ._auth_server_provider :
926+ from mcp .server .auth .routes import create_auth_routes
927+
924928 routes .extend (
925929 create_auth_routes (
926930 provider = self ._auth_server_provider ,
@@ -936,6 +940,8 @@ def streamable_http_app(self) -> Starlette:
936940 # Determine resource metadata URL
937941 resource_metadata_url = None
938942 if self .settings .auth and self .settings .auth .resource_server_url :
943+ from mcp .server .auth .routes import build_resource_metadata_url
944+
939945 # Build compliant metadata URL for WWW-Authenticate header
940946 resource_metadata_url = build_resource_metadata_url (self .settings .auth .resource_server_url )
941947
@@ -956,6 +962,8 @@ def streamable_http_app(self) -> Starlette:
956962
957963 # Add protected resource metadata endpoint if configured as RS
958964 if self .settings .auth and self .settings .auth .resource_server_url : # pragma: no cover
965+ from mcp .server .auth .routes import create_protected_resource_routes
966+
959967 routes .extend (
960968 create_protected_resource_routes (
961969 resource_url = self .settings .auth .resource_server_url ,
0 commit comments