diff --git a/libs/arcade-core/arcade_core/catalog.py b/libs/arcade-core/arcade_core/catalog.py index 7852000e..a29e6220 100644 --- a/libs/arcade-core/arcade_core/catalog.py +++ b/libs/arcade-core/arcade_core/catalog.py @@ -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() diff --git a/libs/arcade-core/pyproject.toml b/libs/arcade-core/pyproject.toml index cd89a593..e9e60fa2 100644 --- a/libs/arcade-core/pyproject.toml +++ b/libs/arcade-core/pyproject.toml @@ -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"} diff --git a/libs/arcade-mcp-server/arcade_mcp_server/mcp_app.py b/libs/arcade-mcp-server/arcade_mcp_server/mcp_app.py index 549a7f87..12ec53a2 100644 --- a/libs/arcade-mcp-server/arcade_mcp_server/mcp_app.py +++ b/libs/arcade-mcp-server/arcade_mcp_server/mcp_app.py @@ -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__}")