```diff
--- test_files/365-original.txt	2025-03-07 19:06:50
+++ test_files/365-modified.txt	2025-03-07 19:06:50
@@ -9,10 +9,12 @@
 
 from pydantic import BaseModel, Field
 
+from composio.exceptions import NotFoundError
 from composio.tools.base.abs import (
     Action,
     ActionRequest,
     ActionResponse,
+    InvalidClassDefinition,
     Tool,
     ToolBuilder,
 )
@@ -78,11 +80,19 @@
         )
         ToolBuilder.setup_children(
             obj=cls,  # type: ignore
+            no_auth=True,
         )
+
         if autoload:
             t.cast(t.Type["Tool"], cls).register()  # type: ignore
 
+        if not hasattr(cls, "logo"):
+            raise InvalidClassDefinition(f"Please provide logo URL for {name}")
 
+        if "local" not in cls.tags:  # type: ignore
+            cls.tags.append("local")  # type: ignore
+
+
 class LocalToolMixin(Tool):
     @classmethod
     @abstractmethod
@@ -148,7 +158,7 @@
         """
         actcls = self._actions.get(action)
         if actcls is None:
-            raise ValueError(f"No action found with name `{action}`")
+            raise NotFoundError(f"No action found with name `{action}`")
 
         try:
             metadata = metadata or {}
@@ -168,23 +178,25 @@
                 metadata=metadata,
             )
             return {
-                **response.model_dump(),
-                "successfull": True,
+                "data": response.model_dump(),
                 "error": None,
+                "successful": True,
             }
         except ExecutionFailed as e:
             self.logger.error(f"Error executing `{action}`: {e}")
             return {
-                "successfull": False,
+                "data": None,
                 "error": e.message,
+                "successful": False,
                 **e.extra,
             }
         except Exception as e:
             self.logger.error(f"Error executing `{action}`: {e}")
-            self.logger.debug(traceback.format_exc())
+            self.logger.error(traceback.format_exc())
             return {
-                "successfull": False,
+                "data": None,
                 "error": str(e),
+                "successful": False,
             }
 
 
@@ -194,6 +206,9 @@
     gid = "local"
     """Group ID for this tool."""
 
+    tags: t.List[str] = ["local"]
+    """Tags for this app."""
+
     @classmethod
     @abstractmethod
     def actions(cls) -> t.List[t.Type[LocalAction]]:
```
