Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/mcp/server/sse.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ async def handle_sse(request):
import anyio
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
from pydantic import ValidationError
from sse_starlette import EventSourceResponse
from starlette.requests import Request
from starlette.responses import Response
from starlette.types import Receive, Scope, Send
Expand Down Expand Up @@ -185,6 +184,8 @@ async def response_wrapper(scope: Scope, receive: Receive, send: Send):
In this case we close our side of the streams to signal the client that
the connection has been closed.
"""
from sse_starlette import EventSourceResponse

await EventSourceResponse(content=sse_stream_reader, data_sender_callable=sse_writer)(
scope, receive, send
)
Expand Down
7 changes: 6 additions & 1 deletion src/mcp/server/streamable_http.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import anyio
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
from pydantic import ValidationError
from sse_starlette import EventSourceResponse
from starlette.requests import Request
from starlette.responses import Response
from starlette.types import Receive, Scope, Send
Expand Down Expand Up @@ -613,6 +612,8 @@ async def sse_writer():
self._sse_stream_writers.pop(request_id, None)
await self._clean_up_memory_streams(request_id)

from sse_starlette import EventSourceResponse

# Create and start EventSourceResponse
# SSE stream mode (original behavior)
# Set up headers
Expand Down Expand Up @@ -730,6 +731,8 @@ async def standalone_sse_writer():
logger.debug("Closing standalone SSE writer")
await self._clean_up_memory_streams(GET_STREAM_KEY)

from sse_starlette import EventSourceResponse

# Create and start EventSourceResponse
response = EventSourceResponse(
content=sse_stream_reader,
Expand Down Expand Up @@ -934,6 +937,8 @@ async def send_event(event_message: EventMessage) -> None:
except Exception:
logger.exception("Error in replay sender")

from sse_starlette import EventSourceResponse

# Create and start EventSourceResponse
response = EventSourceResponse(
content=sse_stream_reader,
Expand Down
Loading