feat: adding tool annotation used by MCP

This commit is contained in:
Lance Galletti 2025-06-23 10:56:08 -04:00
parent 51b179e1c5
commit 7123e9723c
9 changed files with 168 additions and 0 deletions

View file

@ -800,6 +800,7 @@ class ChatAgent(ShieldRunnerMixin):
)
for param in tool_def.parameters
},
annotations=tool_def.annotations,
)
for toolgroup_name_with_maybe_tool_name in agent_config_toolgroups:
toolgroup_name, input_tool_name = self._parse_toolgroup_name(toolgroup_name_with_maybe_tool_name)
@ -843,6 +844,7 @@ class ChatAgent(ShieldRunnerMixin):
)
for param in tool_def.parameters
},
annotations=tool_def.annotations,
)
tool_name_to_args[tool_def.identifier] = toolgroup_to_args.get(toolgroup_name, {})

View file

@ -671,6 +671,7 @@ class OpenAIResponsesImpl:
},
"required": [p.name for p in t.parameters if p.required],
},
annotations=t.annotations,
)
)
else:

View file

@ -57,6 +57,7 @@ async def list_mcp_tools(endpoint: str, headers: dict[str, str]) -> ListToolDefs
description=param_schema.get("description", ""),
)
)
annotations = getattr(tool, "annotations", None)
tools.append(
ToolDef(
name=tool.name,
@ -65,6 +66,7 @@ async def list_mcp_tools(endpoint: str, headers: dict[str, str]) -> ListToolDefs
metadata={
"endpoint": endpoint,
},
annotations=annotations,
)
)
return ListToolDefsResponse(data=tools)