@@ -123,16 +123,10 @@ async def _consume_messages(self):
123123 message = await self ._message_queue .get ()
124124 try :
125125 if self .write_stream :
126- if isinstance (message , dict ):
127- json_message = types .JSONRPCMessage .model_validate (message )
128- elif isinstance (message , str ):
129- json_message = types .JSONRPCMessage .model_validate_json (
130- message
131- )
132126 logger .info (
133- f"Session { self .session_id } - processing queued message: { json_message } ..."
127+ f"Session { self .session_id } - processing queued message: { message } ..."
134128 )
135- await self .write_stream .send (json_message )
129+ await self .write_stream .send (message )
136130 logger .info (
137131 f"Session { self .session_id } - message sent to local server"
138132 )
@@ -153,7 +147,7 @@ async def _consume_messages(self):
153147 except asyncio .QueueEmpty :
154148 break
155149
156- async def send_message (self , message : str ) -> None :
150+ async def send_message (self , message : types . JSONRPCMessage ) -> None :
157151 """Queue a message to be sent to the server."""
158152 if not self .running :
159153 logger .warning (
@@ -176,8 +170,14 @@ async def get_messages(self) -> None:
176170 messages = response .json ()
177171 logger .info (f"Get messages from UiPath MCP Server: { messages } " )
178172 for message in messages :
173+ if isinstance (message , dict ):
174+ json_message = types .JSONRPCMessage .model_validate (message )
175+ elif isinstance (message , str ):
176+ json_message = types .JSONRPCMessage .model_validate_json (
177+ message
178+ )
179179 logger .info (f"Forwarding message to local MCP Server: { message } " )
180- await self .send_message (message )
180+ await self .send_message (json_message )
181181
182182 async def cleanup (self ) -> None :
183183 """Clean up resources and stop the server."""
0 commit comments