fix: MCP Tool mode issue (#7944)
* refactor to ensure proper initiallisations * [autofix.ci] apply automated fixes * fix lint * add comment on lint issue --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
fbcb3ddf35
commit
ee706073db
2 changed files with 18 additions and 17 deletions
|
|
@ -501,6 +501,7 @@ class MCPToolsComponent(Component):
|
||||||
func=create_tool_func(tool.name, args_schema, client.session),
|
func=create_tool_func(tool.name, args_schema, client.session),
|
||||||
coroutine=create_tool_coroutine(tool.name, args_schema, client.session),
|
coroutine=create_tool_coroutine(tool.name, args_schema, client.session),
|
||||||
tags=[tool.name],
|
tags=[tool.name],
|
||||||
|
metadata={},
|
||||||
)
|
)
|
||||||
tool_list.append(tool_obj)
|
tool_list.append(tool_obj)
|
||||||
self._tool_cache[tool.name] = tool_obj
|
self._tool_cache[tool.name] = tool_obj
|
||||||
|
|
@ -528,4 +529,3 @@ class MCPToolsComponent(Component):
|
||||||
msg = "SSE URL is not set"
|
msg = "SSE URL is not set"
|
||||||
raise ValueError(msg)
|
raise ValueError(msg)
|
||||||
return await self.update_tools()
|
return await self.update_tools()
|
||||||
# return self.tools
|
|
||||||
|
|
|
||||||
|
|
@ -1140,7 +1140,7 @@ class Component(CustomComponent):
|
||||||
list[Tool]: Filtered list of tools.
|
list[Tool]: Filtered list of tools.
|
||||||
"""
|
"""
|
||||||
# Convert metadata to a list of dicts if it's a DataFrame
|
# Convert metadata to a list of dicts if it's a DataFrame
|
||||||
metadata_dict = None
|
metadata_dict = None # Initialize as None to avoid lint issues with empty dict
|
||||||
if isinstance(metadata, pd.DataFrame):
|
if isinstance(metadata, pd.DataFrame):
|
||||||
metadata_dict = metadata.to_dict(orient="records")
|
metadata_dict = metadata.to_dict(orient="records")
|
||||||
|
|
||||||
|
|
@ -1163,24 +1163,25 @@ class Component(CustomComponent):
|
||||||
tool_status = {item["name"]: item.get("status", True) for item in metadata_dict}
|
tool_status = {item["name"]: item.get("status", True) for item in metadata_dict}
|
||||||
return [tool for tool in tools if tool_status.get(tool.name, True)]
|
return [tool for tool in tools if tool_status.get(tool.name, True)]
|
||||||
|
|
||||||
|
def _build_tool_data(self, tool: Tool) -> dict:
|
||||||
|
if tool.metadata is None:
|
||||||
|
tool.metadata = {}
|
||||||
|
return {
|
||||||
|
"name": tool.name,
|
||||||
|
"description": tool.description,
|
||||||
|
"tags": tool.tags if hasattr(tool, "tags") and tool.tags else [tool.name],
|
||||||
|
"status": True, # Initialize all tools with status True
|
||||||
|
"display_name": tool.metadata.get("display_name", tool.name),
|
||||||
|
"display_description": tool.metadata.get("display_description", tool.description),
|
||||||
|
"readonly": tool.metadata.get("readonly", False),
|
||||||
|
"args": tool.args,
|
||||||
|
# "args_schema": tool.args_schema,
|
||||||
|
}
|
||||||
|
|
||||||
async def _build_tools_metadata_input(self):
|
async def _build_tools_metadata_input(self):
|
||||||
tools = await self._get_tools()
|
tools = await self._get_tools()
|
||||||
# Always use the latest tool data
|
# Always use the latest tool data
|
||||||
|
tool_data = [self._build_tool_data(tool) for tool in tools]
|
||||||
tool_data = [
|
|
||||||
{
|
|
||||||
"name": tool.name,
|
|
||||||
"description": tool.description,
|
|
||||||
"tags": tool.tags if hasattr(tool, "tags") and tool.tags else [tool.name],
|
|
||||||
"status": True, # Initialize all tools with status True
|
|
||||||
"display_name": tool.metadata.get("display_name", tool.name),
|
|
||||||
"display_description": tool.metadata.get("display_description", tool.description),
|
|
||||||
"readonly": tool.metadata.get("readonly", False),
|
|
||||||
"args": tool.args,
|
|
||||||
# "args_schema": tool.args_schema,
|
|
||||||
}
|
|
||||||
for tool in tools
|
|
||||||
]
|
|
||||||
# print(tool_data)
|
# print(tool_data)
|
||||||
if hasattr(self, TOOLS_METADATA_INPUT_NAME):
|
if hasattr(self, TOOLS_METADATA_INPUT_NAME):
|
||||||
old_tags = self._extract_tools_tags(self.tools_metadata)
|
old_tags = self._extract_tools_tags(self.tools_metadata)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue