@@ -38,14 +38,19 @@ async def handle_sse(request):
3838from uuid import UUID , uuid4
3939
4040import anyio
41- from anyio .streams .memory import MemoryObjectReceiveStream , MemoryObjectSendStream
4241from pydantic import ValidationError
4342from sse_starlette import EventSourceResponse
4443from starlette .requests import Request
4544from starlette .responses import Response
4645from starlette .types import Receive , Scope , Send
4746
4847import mcp .types as types
48+ from mcp .server .models import (
49+ ReadStream ,
50+ ReadStreamWriter ,
51+ WriteStream ,
52+ WriteStreamReader ,
53+ )
4954
5055logger = logging .getLogger (__name__ )
5156
@@ -63,9 +68,7 @@ class SseServerTransport:
6368 """
6469
6570 _endpoint : str
66- _read_stream_writers : dict [
67- UUID , MemoryObjectSendStream [types .JSONRPCMessage | Exception ]
68- ]
71+ _read_stream_writers : dict [UUID , ReadStreamWriter ]
6972
7073 def __init__ (self , endpoint : str ) -> None :
7174 """
@@ -85,11 +88,11 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
8588 raise ValueError ("connect_sse can only handle HTTP requests" )
8689
8790 logger .debug ("Setting up SSE connection" )
88- read_stream : MemoryObjectReceiveStream [ types . JSONRPCMessage | Exception ]
89- read_stream_writer : MemoryObjectSendStream [ types . JSONRPCMessage | Exception ]
91+ read_stream : ReadStream
92+ read_stream_writer : ReadStreamWriter
9093
91- write_stream : MemoryObjectSendStream [ types . JSONRPCMessage ]
92- write_stream_reader : MemoryObjectReceiveStream [ types . JSONRPCMessage ]
94+ write_stream : WriteStream
95+ write_stream_reader : WriteStreamReader
9396
9497 read_stream_writer , read_stream = anyio .create_memory_object_stream (0 )
9598 write_stream , write_stream_reader = anyio .create_memory_object_stream (0 )
0 commit comments