Skip to main content
Glama

check_onboarding_performed

Verify project onboarding completion before starting work to ensure proper setup and avoid redundant configuration steps.

Instructions

Checks whether project onboarding was already performed. You should always call this tool before beginning to actually work on the project/after activating a project.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The CheckOnboardingPerformedTool class provides the core handler logic for the 'check_onboarding_performed' tool. It checks if onboarding has been performed by querying available memories via ListMemoriesTool.
    class CheckOnboardingPerformedTool(Tool): """ Checks whether project onboarding was already performed. """ def apply(self) -> str: """ Checks whether project onboarding was already performed. You should always call this tool before beginning to actually work on the project/after activating a project. """ from .memory_tools import ListMemoriesTool list_memories_tool = self.agent.get_tool(ListMemoriesTool) memories = json.loads(list_memories_tool.apply()) if len(memories) == 0: return ( "Onboarding not performed yet (no memories available). " + "You should perform onboarding by calling the `onboarding` tool before proceeding with the task." ) else: return f"""The onboarding was already performed, below is the list of available memories. Do not read them immediately, just remember that they exist and that you can read them later, if it is necessary for the current task. Some memories may be based on previous conversations, others may be general for the current project. You should be able to tell which one you need based on the name of the memory. {memories}"""
  • The get_name_from_cls method in the Tool base class derives the MCP tool name 'check_onboarding_performed' from the class name CheckOnboardingPerformedTool.
    def get_name_from_cls(cls) -> str: name = cls.__name__ if name.endswith("Tool"): name = name[:-4] # convert to snake_case name = "".join(["_" + c.lower() if c.isupper() else c for c in name]).lstrip("_") return name def get_name(self) -> str: return self.get_name_from_cls()
  • ToolRegistry automatically discovers and registers all Tool subclasses in serena.tools packages, including CheckOnboardingPerformedTool as 'check_onboarding_performed'.
    for cls in iter_subclasses(Tool): if not any(cls.__module__.startswith(pkg) for pkg in tool_packages): continue is_optional = issubclass(cls, ToolMarkerOptional) name = cls.get_name_from_cls() if name in self._tool_dict: raise ValueError(f"Duplicate tool name found: {name}. Tool classes must have unique names.") self._tool_dict[name] = RegisteredTool(tool_class=cls, is_optional=is_optional, tool_name=name)
  • Import of workflow_tools makes CheckOnboardingPerformedTool available for auto-discovery by ToolRegistry.
    from .workflow_tools import *

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oraios/serena'

If you have feedback or need assistance with the MCP directory API, please join our Discord server