get_principle
Retrieve detailed information about a specific principle to support decision-making and alignment checks within AI agent conversations.
Instructions
Get detailed info about a specific principle.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Implementation Reference
- brain_mcp/server/server.py:160-216 (handler)The `get_principle` function is defined as an MCP tool (decorated with @mcp.tool()) in `brain_mcp/server/server.py`. It retrieves principles using `get_principles()` and searches for a specific principle by name, returning its definition, description, formula, and applications if found.
@mcp.tool() def get_principle(name: str) -> str: """ Get detailed info about a specific principle. """ principles = get_principles() if not principles: return "No principles configured." section = principles.get("principles", principles) name_lower = name.lower() if isinstance(section, list): for p in section: if isinstance(p, dict): p_name = p.get("name", "").lower() if name_lower in p_name: output = [f"## {p.get('name', 'Unknown')}\n"] if "definition" in p: output.append(f"**Definition**: {p['definition']}\n") if "description" in p: output.append(f"**Description**: {p['description']}\n") if "formula" in p: output.append(f"**Formula**: `{p['formula']}`\n") if "applications" in p: output.append("### Applications") for app in p["applications"]: output.append(f"- {app}") return "\n".join(output) elif isinstance(section, dict): for key, principle in section.items(): if isinstance(principle, dict): p_name = principle.get("name", "").lower() if name_lower in p_name or name_lower in key.lower(): output = [f"## {principle.get('name', key)}\n"] if "definition" in principle: output.append(f"**Definition**: {principle['definition']}\n") if "core_formula" in principle: output.append(f"**Formula**: `{principle['core_formula']}`\n") if "applications" in principle: output.append("### Applications") apps = principle["applications"] if isinstance(apps, dict): for domain, app in apps.items(): output.append(f"\n**{domain}**:") if isinstance(app, dict): for k, v in app.items(): output.append(f"- {k}: {v}") else: output.append(f"- {app}") elif isinstance(apps, list): for app in apps: output.append(f"- {app}") return "\n".join(output) return f"Principle '{name}' not found."