diff --git a/examples/mcp_example/mock_math_server.py b/examples/mcp_example/mock_math_server.py index 07803d84..4e92bcab 100644 --- a/examples/mcp_example/mock_math_server.py +++ b/examples/mcp_example/mock_math_server.py @@ -22,4 +22,5 @@ def divide(a: int, b: int) -> float: if __name__ == "__main__": print("Starting Mock Math Server on port 8000...") - mcp.run(transport="sse", port=8000) + # The port parameter should be included in the transport_kwargs dictionary + mcp.run(transport="sse", transport_kwargs={"port": 8000}) diff --git a/swarms/structs/agent.py b/swarms/structs/agent.py index be6bc9e1..18957994 100644 --- a/swarms/structs/agent.py +++ b/swarms/structs/agent.py @@ -2778,8 +2778,12 @@ 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: - result = batch_mcp_flow(self.mcp_servers, [payload]) - return any_to_str(result) + # 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() + return any_to_str(result) except Exception as err: logger.error(f"MCP flow failed: {err}") return f"[MCP-error] {err}" \ No newline at end of file