mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 14:54:24 +01:00
Handle SSE Disconnects Properly (#612)
This commit is contained in:
@@ -10,6 +10,7 @@ import uvicorn
|
||||
from pydantic import AnyUrl
|
||||
from starlette.applications import Starlette
|
||||
from starlette.requests import Request
|
||||
from starlette.responses import Response
|
||||
from starlette.routing import Mount, Route
|
||||
|
||||
from mcp.client.session import ClientSession
|
||||
@@ -83,13 +84,14 @@ def make_server_app() -> Starlette:
|
||||
sse = SseServerTransport("/messages/")
|
||||
server = ServerTest()
|
||||
|
||||
async def handle_sse(request: Request) -> None:
|
||||
async def handle_sse(request: Request) -> Response:
|
||||
async with sse.connect_sse(
|
||||
request.scope, request.receive, request._send
|
||||
) as streams:
|
||||
await server.run(
|
||||
streams[0], streams[1], server.create_initialization_options()
|
||||
)
|
||||
return Response()
|
||||
|
||||
app = Starlette(
|
||||
routes=[
|
||||
|
||||
Reference in New Issue
Block a user