Skip to content

Commit fbe6b06

Browse files
committed
fix pyright
1 parent 9cd4572 commit fbe6b06

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/mcp/server/sse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ async def handle_sse(request):
4444
from sse_starlette import EventSourceResponse
4545
from starlette.requests import Request
4646
from starlette.responses import Response
47-
from starlette.types import Receive, Scope, Send, Message
47+
from starlette.types import Message, Receive, Scope, Send
4848

4949
import mcp.types as types
5050

@@ -139,7 +139,7 @@ async def client_close_handler(message: Message) -> None:
139139
response = EventSourceResponse(
140140
content=sse_stream_reader,
141141
data_sender_callable=sse_writer,
142-
client_close_handler_callable=client_close_handler,
142+
client_close_handler_callable=client_close_handler, # type: ignore[arg-type]
143143
)
144144
logger.debug("Starting SSE response task")
145145
tg.start_soon(response, scope, receive, send)

tests/shared/test_sse.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from pydantic import AnyUrl
1111
from starlette.applications import Starlette
1212
from starlette.requests import Request
13+
from starlette.responses import Response
1314
from starlette.routing import Mount, Route
1415

1516
from mcp.client.session import ClientSession
@@ -83,13 +84,18 @@ def make_server_app() -> Starlette:
8384
sse = SseServerTransport("/messages/")
8485
server = ServerTest()
8586

86-
async def handle_sse(request: Request) -> None:
87-
async with sse.connect_sse(
88-
request.scope, request.receive, request._send
89-
) as streams:
90-
await server.run(
91-
streams[0], streams[1], server.create_initialization_options()
92-
)
87+
async def handle_sse(request: Request) -> Response:
88+
with anyio.CancelScope() as cancel_scope:
89+
async with sse.connect_sse(
90+
request.scope,
91+
request.receive,
92+
request._send,
93+
lambda: cancel_scope.cancel(),
94+
) as streams:
95+
await server.run(
96+
streams[0], streams[1], server.create_initialization_options()
97+
)
98+
return Response(status_code=200)
9399

94100
app = Starlette(
95101
routes=[

0 commit comments

Comments
 (0)