Skip to main content
Glama

get_organ

Retrieve multi-agent workflow templates for complex tasks requiring collaborative reasoning and multi-perspective analysis.

Instructions

Returns an organ template for multi-agent orchestration (Layer 4).

Organs combine programs and cells into cohesive workflows for complex tasks
requiring multi-perspective analysis or collaborative reasoning.

Args:
    name: Identifier of the organ ('debate_council' for multi-perspective debate).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNodebate_council

Implementation Reference

  • MCP tool registration decorator for get_organ tool.
    @mcp.tool()
  • Handler function for the 'get_organ' MCP tool. Validates input using OrganInput and delegates to get_organ_template.
    @mcp.tool()
    def get_organ(name: str = "debate_council") -> str:
        """
        Returns an organ template for multi-agent orchestration (Layer 4).
    
        Organs combine programs and cells into cohesive workflows for complex tasks
        requiring multi-perspective analysis or collaborative reasoning.
    
        Args:
            name: Identifier of the organ ('debate_council' for multi-perspective debate).
        """
        try:
            model = OrganInput(name=name)
        except ValidationError as e:
            return f"Input Validation Error: {e}"
    
        return get_organ_template(model.name)
  • Pydantic schema used for input validation in get_organ handler.
    class OrganInput(BaseModel):
        name: str = Field("debate_council", min_length=1, description="Organ name.")
  • Core helper function that implements the logic to retrieve specific organ templates based on normalized organ_name.
    def get_organ_template(organ_name: str) -> str:
        """Return an organ template for orchestrating multi-agent workflows.
    
        Args:
            organ_name: Identifier for the organ (e.g., "debate_council").
    
        Returns:
            Template string for the requested organ, or error message if not found.
        """
        normalized_name = (
            organ_name.lower().replace("organ.", "").replace("_", "").replace("-", "")
        )
    
        # Match debate_council variants
        if normalized_name in ["debatecouncil", "debate", "multiperspective"]:
            return ORGAN_DEBATE_COUNCIL
    
        # Match research_synthesis variants
        if normalized_name in ["researchsynthesis", "research", "scoutarchitectscribe"]:
            return ORGAN_RESEARCH_SYNTHESIS
    
        # Match tool_master variants
        if normalized_name in ["toolmaster", "tool", "master", "meta"]:
            return ORGAN_TOOL_MASTER
    
        # Return helpful error for unknown organs
        available = ["debate_council", "research_synthesis", "tool_master"]
        return (
            f"// Organ '{organ_name}' not found.\\n"
            f"// Available organs: {', '.join(available)}\\n"
            f"// Returning debate_council as example:\\n\\n" + ORGAN_DEBATE_COUNCIL
        )

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/4rgon4ut/sutra'

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