33"""
44
55from contextlib import asynccontextmanager
6- from typing import AsyncGenerator , Tuple
6+ from typing import AsyncGenerator
77
88import anyio
99from anyio .streams .memory import MemoryObjectReceiveStream , MemoryObjectSendStream
1212from mcp_python .server import Server
1313from mcp_python .types import JSONRPCMessage
1414
15+ MessageStream = tuple [
16+ MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
17+ MemoryObjectSendStream [JSONRPCMessage ]
18+ ]
1519
1620@asynccontextmanager
17- async def create_client_server_memory_streams () -> (
18- AsyncGenerator [
19- Tuple [
20- Tuple [
21- MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
22- MemoryObjectSendStream [JSONRPCMessage ],
23- ],
24- Tuple [
25- MemoryObjectReceiveStream [JSONRPCMessage | Exception ],
26- MemoryObjectSendStream [JSONRPCMessage ],
27- ],
28- ],
29- None ,
30- ]
31- ):
21+ async def create_client_server_memory_streams () -> AsyncGenerator [
22+ tuple [MessageStream , MessageStream ],
23+ None
24+ ]:
3225 """
3326 Creates a pair of bidirectional memory streams for client-server communication.
3427
@@ -44,7 +37,6 @@ async def create_client_server_memory_streams() -> (
4437 JSONRPCMessage | Exception
4538 ](1 )
4639
47- # Return streams grouped by client/server
4840 client_streams = (server_to_client_receive , client_to_server_send )
4941 server_streams = (client_to_server_receive , server_to_client_send )
5042
@@ -66,10 +58,8 @@ async def create_connected_server_and_client_session(
6658 client_streams ,
6759 server_streams ,
6860 ):
69- # Unpack the streams
7061 client_read , client_write = client_streams
7162 server_read , server_write = server_streams
72- print ("stream-1" )
7363
7464 # Create a cancel scope for the server task
7565 async with anyio .create_task_group () as tg :
@@ -80,8 +70,6 @@ async def create_connected_server_and_client_session(
8070 server .create_initialization_options (),
8171 )
8272
83- print ("stream2" )
84-
8573 try :
8674 # Client session could be created here using client_read and
8775 # client_write This would allow testing the server with a client
0 commit comments