[fix] 默认使用@拼接符号,可以配置拼接符

This commit is contained in:
weizjajj
2025-12-15 10:52:28 +08:00
parent 08f4d95266
commit c9b7b84fa7

View File

@@ -25,7 +25,8 @@ class MCPToolkit(Toolkit):
server_name: str = ''
always_refresh: bool = False
connection_kwargs: Optional[dict] = None
# 拼接字符
separator: Optional[str] = '@'
def get_mcp_server_connect_args(self) -> dict:
if self.transport == "sse":
@@ -64,14 +65,14 @@ class MCPToolkit(Toolkit):
def tool_names(self) -> list:
if self.always_refresh:
self._refresh_tool_info()
return [f'{self.name}__{tool_name}' for tool_name in self.include]
return [f'{self.name}{self.separator}{tool_name}' for tool_name in self.include]
@property
def tool_descriptions(self) -> list:
if self.always_refresh:
self._refresh_tool_info()
tools = [ToolManager().get_instance_obj(f'{self.name}@{tool_name}', new_instance=False) for tool_name in self.include]
tools = [ToolManager().get_instance_obj(f'{self.name}{self.separator}{tool_name}', new_instance=False) for
tool_name in self.include]
tool_descriptions = [f'tool name:{tool.name}\ntool description:{tool.description}\n' for tool in tools]
return tool_descriptions
@@ -79,10 +80,9 @@ class MCPToolkit(Toolkit):
def func_call_list(self) -> list:
raise NotImplementedError
async def get_all_tools(self):
async with MCPTempClient(
self.get_mcp_server_connect_args()
self.get_mcp_server_connect_args()
) as client:
tools_list = await client.session.list_tools()
tools = tools_list.tools
@@ -92,7 +92,7 @@ class MCPToolkit(Toolkit):
for tool in tools:
if tool.name not in self.include:
continue
tool_name = f'{self.name}__{tool.name}'
tool_name = f'{self.name}{self.separator}{tool.name}'
tool_instance = MCPTool(
name=tool_name,
description=f'{tool.description}\n{str(tool.inputSchema)}',
@@ -115,5 +115,3 @@ class MCPToolkit(Toolkit):
coro = self.get_all_tools()
run_async_from_sync(coro, 60)
return self