@@ -46,6 +46,7 @@ async def handle_sse(request):
4646from starlette .types import Receive , Scope , Send
4747
4848import mcp .types as types
49+ from mcp .shared .message import SessionMessage
4950
5051logger = logging .getLogger (__name__ )
5152
@@ -63,9 +64,7 @@ class SseServerTransport:
6364 """
6465
6566 _endpoint : str
66- _read_stream_writers : dict [
67- UUID , MemoryObjectSendStream [types .JSONRPCMessage | Exception ]
68- ]
67+ _read_stream_writers : dict [UUID , MemoryObjectSendStream [SessionMessage | Exception ]]
6968
7069 def __init__ (self , endpoint : str ) -> None :
7170 """
@@ -85,11 +84,11 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
8584 raise ValueError ("connect_sse can only handle HTTP requests" )
8685
8786 logger .debug ("Setting up SSE connection" )
88- read_stream : MemoryObjectReceiveStream [types . JSONRPCMessage | Exception ]
89- read_stream_writer : MemoryObjectSendStream [types . JSONRPCMessage | Exception ]
87+ read_stream : MemoryObjectReceiveStream [SessionMessage | Exception ]
88+ read_stream_writer : MemoryObjectSendStream [SessionMessage | Exception ]
9089
91- write_stream : MemoryObjectSendStream [types . JSONRPCMessage ]
92- write_stream_reader : MemoryObjectReceiveStream [types . JSONRPCMessage ]
90+ write_stream : MemoryObjectSendStream [SessionMessage ]
91+ write_stream_reader : MemoryObjectReceiveStream [SessionMessage ]
9392
9493 read_stream_writer , read_stream = anyio .create_memory_object_stream (0 )
9594 write_stream , write_stream_reader = anyio .create_memory_object_stream (0 )
@@ -109,12 +108,12 @@ async def sse_writer():
109108 await sse_stream_writer .send ({"event" : "endpoint" , "data" : session_uri })
110109 logger .debug (f"Sent endpoint event: { session_uri } " )
111110
112- async for message in write_stream_reader :
113- logger .debug (f"Sending message via SSE: { message } " )
111+ async for session_message in write_stream_reader :
112+ logger .debug (f"Sending message via SSE: { session_message } " )
114113 await sse_stream_writer .send (
115114 {
116115 "event" : "message" ,
117- "data" : message .model_dump_json (
116+ "data" : session_message . message .model_dump_json (
118117 by_alias = True , exclude_none = True
119118 ),
120119 }
@@ -169,7 +168,8 @@ async def handle_post_message(
169168 await writer .send (err )
170169 return
171170
172- logger .debug (f"Sending message to writer: { message } " )
171+ session_message = SessionMessage (message )
172+ logger .debug (f"Sending session message to writer: { session_message } " )
173173 response = Response ("Accepted" , status_code = 202 )
174174 await response (scope , receive , send )
175- await writer .send (message )
175+ await writer .send (session_message )
0 commit comments