|
17 | 17 | from pydantic import BaseModel, Field |
18 | 18 | from pydantic.networks import AnyUrl |
19 | 19 | from pydantic_settings import BaseSettings, SettingsConfigDict |
20 | | -from sse_starlette import EventSourceResponse |
21 | 20 | from starlette.applications import Starlette |
22 | 21 | from starlette.middleware import Middleware |
23 | 22 | from starlette.middleware.authentication import AuthenticationMiddleware |
24 | 23 | from starlette.requests import Request |
25 | 24 | from starlette.responses import Response |
26 | | -from starlette.routing import Mount, Route, request_response # type: ignore |
| 25 | +from starlette.routing import Mount, Route |
| 26 | +from starlette.types import Receive, Scope, Send |
27 | 27 |
|
28 | 28 | from mcp.server.auth.middleware.auth_context import AuthContextMiddleware |
29 | 29 | from mcp.server.auth.middleware.bearer_auth import ( |
@@ -576,20 +576,19 @@ def sse_app(self) -> Starlette: |
576 | 576 |
|
577 | 577 | sse = SseServerTransport(self.settings.message_path) |
578 | 578 |
|
579 | | - async def handle_sse(request: Request) -> EventSourceResponse: |
| 579 | + async def handle_sse(scope: Scope, receive: Receive, send: Send): |
580 | 580 | # Add client ID from auth context into request context if available |
581 | 581 |
|
582 | 582 | async with sse.connect_sse( |
583 | | - request.scope, |
584 | | - request.receive, |
585 | | - request._send, # type: ignore[reportPrivateUsage] |
| 583 | + scope, |
| 584 | + receive, |
| 585 | + send, |
586 | 586 | ) as streams: |
587 | 587 | await self._mcp_server.run( |
588 | 588 | streams[0], |
589 | 589 | streams[1], |
590 | 590 | self._mcp_server.create_initialization_options(), |
591 | 591 | ) |
592 | | - return streams[2] |
593 | 592 |
|
594 | 593 | # Create routes |
595 | 594 | routes: list[Route | Mount] = [] |
@@ -629,7 +628,7 @@ async def handle_sse(request: Request) -> EventSourceResponse: |
629 | 628 | Route( |
630 | 629 | self.settings.sse_path, |
631 | 630 | endpoint=RequireAuthMiddleware( |
632 | | - request_response(handle_sse), required_scopes |
| 631 | + handle_sse, required_scopes |
633 | 632 | ), |
634 | 633 | methods=["GET"], |
635 | 634 | ) |
|
0 commit comments