4
4
import anyio
5
5
import anyio .lowlevel
6
6
import mcp .types as types
7
+ from mcp .shared .message import SessionMessage
7
8
from aiobotocore .session import get_session
8
9
from anyio .streams .memory import MemoryObjectReceiveStream , MemoryObjectSendStream
9
10
from pydantic import BaseModel
@@ -23,11 +24,11 @@ async def lambda_function_client(lambda_function: LambdaFunctionParameters):
23
24
Client transport for Lambda functions: this will invoke a Lambda function
24
25
when requests are sent to the client.
25
26
"""
26
- read_stream : MemoryObjectReceiveStream [types . JSONRPCMessage | Exception ]
27
- read_stream_writer : MemoryObjectSendStream [types . JSONRPCMessage | Exception ]
27
+ read_stream : MemoryObjectReceiveStream [SessionMessage | Exception ]
28
+ read_stream_writer : MemoryObjectSendStream [SessionMessage | Exception ]
28
29
29
- write_stream : MemoryObjectSendStream [types . JSONRPCMessage ]
30
- write_stream_reader : MemoryObjectReceiveStream [types . JSONRPCMessage ]
30
+ write_stream : MemoryObjectSendStream [SessionMessage ]
31
+ write_stream_reader : MemoryObjectReceiveStream [SessionMessage ]
31
32
32
33
read_stream_writer , read_stream = anyio .create_memory_object_stream (0 )
33
34
write_stream , write_stream_reader = anyio .create_memory_object_stream (0 )
@@ -44,7 +45,8 @@ async def invoke_function():
44
45
"lambda" , region_name = lambda_function .region_name
45
46
) as lambda_client :
46
47
async with write_stream_reader :
47
- async for message in write_stream_reader :
48
+ async for session_message in write_stream_reader :
49
+ message = session_message .message
48
50
logging .debug (
49
51
f"MCP JSON RPC message raw: { message .__class__ .__name__ } { message } "
50
52
)
@@ -113,12 +115,15 @@ async def invoke_function():
113
115
),
114
116
)
115
117
)
116
- await read_stream_writer .send (error_message )
118
+ await read_stream_writer .send (
119
+ SessionMessage (error_message )
120
+ )
117
121
else :
118
122
await read_stream_writer .send (exc )
119
123
continue
120
124
121
- await read_stream_writer .send (response_message )
125
+ session_message = SessionMessage (response_message )
126
+ await read_stream_writer .send (session_message )
122
127
except anyio .ClosedResourceError :
123
128
await anyio .lowlevel .checkpoint ()
124
129
except Exception as exc :
0 commit comments