diff --git a/examples/mcp_example/mock_math_server.py b/examples/mcp_example/mock_math_server.py index 4e92bcab..9de67735 100644 --- a/examples/mcp_example/mock_math_server.py +++ b/examples/mcp_example/mock_math_server.py @@ -22,5 +22,5 @@ def divide(a: int, b: int) -> float: if __name__ == "__main__": print("Starting Mock Math Server on port 8000...") - # The port parameter should be included in the transport_kwargs dictionary - mcp.run(transport="sse", transport_kwargs={"port": 8000}) + # Fix the parameters to match the FastMCP API + mcp.run(transport="sse", port=8000) diff --git a/swarms/structs/agent.py b/swarms/structs/agent.py index 18957994..cf6f921a 100644 --- a/swarms/structs/agent.py +++ b/swarms/structs/agent.py @@ -2778,11 +2778,10 @@ class Agent: def mcp_execution_flow(self, payload: dict) -> str | None: """Forward the tool-call dict to every MCP server in self.mcp_servers""" try: - # Create a new event loop to run the async function - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - result = loop.run_until_complete(batch_mcp_flow(self.mcp_servers, [payload])) - loop.close() + # Use asyncio.run which handles creating and closing the event loop + result = asyncio.run(batch_mcp_flow(self.mcp_servers, [payload])) + if not result: + return "No result returned from MCP server" return any_to_str(result) except Exception as err: logger.error(f"MCP flow failed: {err}")