Handle SSE Disconnects Properly (#612)

This commit is contained in:
Akash D
2025-05-02 09:32:46 -07:00
committed by GitHub
parent 5d8eaf77be
commit 83968b5b2f
7 changed files with 38 additions and 11 deletions

View File

@@ -90,6 +90,7 @@ def main(port: int, transport: str) -> int:
if transport == "sse":
from mcp.server.sse import SseServerTransport
from starlette.applications import Starlette
from starlette.responses import Response
from starlette.routing import Mount, Route
sse = SseServerTransport("/messages/")
@@ -101,6 +102,7 @@ def main(port: int, transport: str) -> int:
await app.run(
streams[0], streams[1], app.create_initialization_options()
)
return Response()
starlette_app = Starlette(
debug=True,

View File

@@ -46,6 +46,7 @@ def main(port: int, transport: str) -> int:
if transport == "sse":
from mcp.server.sse import SseServerTransport
from starlette.applications import Starlette
from starlette.responses import Response
from starlette.routing import Mount, Route
sse = SseServerTransport("/messages/")
@@ -57,11 +58,12 @@ def main(port: int, transport: str) -> int:
await app.run(
streams[0], streams[1], app.create_initialization_options()
)
return Response()
starlette_app = Starlette(
debug=True,
routes=[
Route("/sse", endpoint=handle_sse),
Route("/sse", endpoint=handle_sse, methods=["GET"]),
Mount("/messages/", app=sse.handle_post_message),
],
)

View File

@@ -60,6 +60,7 @@ def main(port: int, transport: str) -> int:
if transport == "sse":
from mcp.server.sse import SseServerTransport
from starlette.applications import Starlette
from starlette.responses import Response
from starlette.routing import Mount, Route
sse = SseServerTransport("/messages/")
@@ -71,11 +72,12 @@ def main(port: int, transport: str) -> int:
await app.run(
streams[0], streams[1], app.create_initialization_options()
)
return Response()
starlette_app = Starlette(
debug=True,
routes=[
Route("/sse", endpoint=handle_sse),
Route("/sse", endpoint=handle_sse, methods=["GET"]),
Mount("/messages/", app=sse.handle_post_message),
],
)