fix(mcp): correct async flow and server port configuration for MCP integration

pull/819/head
Pavan Kumar 3 months ago committed by ascender1729
parent fc91b1159b
commit 0ca3f03922

@ -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})

@ -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}"
Loading…
Cancel
Save