Skip to content

Commit 1e8be10

Browse files
qiankunliqiankunli
andauthored
fix: make list tool concurrent (#175)
Co-authored-by: qiankunli <qiankunli@qq.com>
1 parent 60b9813 commit 1e8be10

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

langchain_mcp_adapters/client.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from contextlib import asynccontextmanager
23
from types import TracebackType
34
from typing import Any, AsyncIterator
@@ -128,8 +129,12 @@ async def get_tools(self, *, server_name: str | None = None) -> list[BaseTool]:
128129
return await load_mcp_tools(None, connection=self.connections[server_name])
129130

130131
all_tools: list[BaseTool] = []
132+
load_mcp_tool_tasks = []
131133
for connection in self.connections.values():
132-
tools = await load_mcp_tools(None, connection=connection)
134+
load_mcp_tool_task = asyncio.create_task(load_mcp_tools(None, connection=connection))
135+
load_mcp_tool_tasks.append(load_mcp_tool_task)
136+
tools_list = await asyncio.gather(*load_mcp_tool_tasks)
137+
for tools in tools_list:
133138
all_tools.extend(tools)
134139
return all_tools
135140

0 commit comments

Comments
 (0)