|
|
@ -2778,11 +2778,10 @@ class Agent:
|
|
|
|
def mcp_execution_flow(self, payload: dict) -> str | None:
|
|
|
|
def mcp_execution_flow(self, payload: dict) -> str | None:
|
|
|
|
"""Forward the tool-call dict to every MCP server in self.mcp_servers"""
|
|
|
|
"""Forward the tool-call dict to every MCP server in self.mcp_servers"""
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
# Create a new event loop to run the async function
|
|
|
|
# Use asyncio.run which handles creating and closing the event loop
|
|
|
|
loop = asyncio.new_event_loop()
|
|
|
|
result = asyncio.run(batch_mcp_flow(self.mcp_servers, [payload]))
|
|
|
|
asyncio.set_event_loop(loop)
|
|
|
|
if not result:
|
|
|
|
result = loop.run_until_complete(batch_mcp_flow(self.mcp_servers, [payload]))
|
|
|
|
return "No result returned from MCP server"
|
|
|
|
loop.close()
|
|
|
|
|
|
|
|
return any_to_str(result)
|
|
|
|
return any_to_str(result)
|
|
|
|
except Exception as err:
|
|
|
|
except Exception as err:
|
|
|
|
logger.error(f"MCP flow failed: {err}")
|
|
|
|
logger.error(f"MCP flow failed: {err}")
|
|
|
|