Set server version for @app.tool and MCPApp.add_tool (#672)

This commit is contained in:
Eric Gustin 2025-11-03 14:28:11 -08:00 committed by GitHub
parent 3c6f1a69af
commit 630f7b8a26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 4 deletions

View file

@ -203,9 +203,18 @@ class ToolCatalog(BaseModel):
tool_func: Callable,
toolkit_or_name: str | Toolkit,
module: ModuleType | None = None,
toolkit_version: str | None = None,
toolkit_description: str | None = None,
) -> None:
"""
Add a function to the catalog as a tool.
Args:
tool_func: The function to add to the catalog.
toolkit_or_name: The toolkit or name of the toolkit.
module: The module to add the tool from.
toolkit_version: The version of the toolkit. Overrides the version of the toolkit if provided.
toolkit_description: The description of the toolkit. Overrides the description of the toolkit if provided.
"""
input_model, output_model = create_func_models(tool_func)
@ -213,6 +222,8 @@ class ToolCatalog(BaseModel):
if isinstance(toolkit_or_name, Toolkit):
toolkit = toolkit_or_name
toolkit_name = toolkit.name
toolkit_version = toolkit_version or toolkit.version
toolkit_description = toolkit_description or toolkit.description
elif isinstance(toolkit_or_name, str):
toolkit = None
toolkit_name = toolkit_or_name
@ -223,8 +234,8 @@ class ToolCatalog(BaseModel):
definition = ToolCatalog.create_tool_definition(
tool_func,
toolkit_name,
toolkit.version if toolkit else None,
toolkit.description if toolkit else None,
toolkit_version,
toolkit_description,
)
fully_qualified_name = definition.get_fully_qualified_name()

View file

@ -1,6 +1,6 @@
[project]
name = "arcade-core"
version = "3.3.1"
version = "3.3.2"
description = "Arcade Core - Core library for Arcade platform"
readme = "README.md"
license = {text = "MIT"}

View file

@ -236,7 +236,12 @@ class MCPApp:
adapters=adapters,
)
try:
self._catalog.add_tool(func, self._toolkit_name)
self._catalog.add_tool(
func,
self._toolkit_name,
toolkit_version=self.version,
toolkit_description=self.instructions,
)
except ToolDefinitionError as e:
raise e.with_context(func.__name__) from e
logger.debug(f"Added tool: {func.__name__}")