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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | debate_council |
Implementation Reference
- src/context_engineering_mcp/server.py:316-316 (registration)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 )