@@ -38,20 +38,14 @@ async def handle_sse(request):
3838from uuid import UUID , uuid4
3939
4040import anyio
41+ from anyio .streams .memory import MemoryObjectReceiveStream , MemoryObjectSendStream
4142from pydantic import ValidationError
4243from sse_starlette import EventSourceResponse
4344from starlette .requests import Request
4445from starlette .responses import Response
4546from starlette .types import Receive , Scope , Send
4647
4748import mcp .types as types
48- from mcp .shared .session import (
49- ReadStream ,
50- ReadStreamWriter ,
51- WriteStream ,
52- WriteStreamReader ,
53- )
54- from mcp .types import MessageFrame
5549
5650logger = logging .getLogger (__name__ )
5751
@@ -69,7 +63,9 @@ class SseServerTransport:
6963 """
7064
7165 _endpoint : str
72- _read_stream_writers : dict [UUID , ReadStreamWriter ]
66+ _read_stream_writers : dict [
67+ UUID , MemoryObjectSendStream [types .JSONRPCMessage | Exception ]
68+ ]
7369
7470 def __init__ (self , endpoint : str ) -> None :
7571 """
@@ -89,11 +85,11 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
8985 raise ValueError ("connect_sse can only handle HTTP requests" )
9086
9187 logger .debug ("Setting up SSE connection" )
92- read_stream : ReadStream
93- read_stream_writer : ReadStreamWriter
88+ read_stream : MemoryObjectReceiveStream [ types . JSONRPCMessage | Exception ]
89+ read_stream_writer : MemoryObjectSendStream [ types . JSONRPCMessage | Exception ]
9490
95- write_stream : WriteStream
96- write_stream_reader : WriteStreamReader
91+ write_stream : MemoryObjectSendStream [ types . JSONRPCMessage ]
92+ write_stream_reader : MemoryObjectReceiveStream [ types . JSONRPCMessage ]
9793
9894 read_stream_writer , read_stream = anyio .create_memory_object_stream (0 )
9995 write_stream , write_stream_reader = anyio .create_memory_object_stream (0 )
@@ -176,4 +172,4 @@ async def handle_post_message(
176172 logger .debug (f"Sending message to writer: { message } " )
177173 response = Response ("Accepted" , status_code = 202 )
178174 await response (scope , receive , send )
179- await writer .send (MessageFrame ( message = message , raw = request ) )
175+ await writer .send (message )
0 commit comments