Skip to main content
Glama
LuciferForge

agent-safety-mcp

by LuciferForge

kya_create_card

Create identity cards for AI agents to document their purpose, capabilities, and ownership within safety frameworks.

Instructions

Create a KYA (Know Your Agent) identity card for an agent.

Args: agent_id: Unique ID in format "org/agent-name" (e.g. "luciferforge/research-bot"). name: Human-readable agent name. purpose: What this agent does (min 10 chars for validity). capabilities: Comma-separated list of capabilities (e.g. "text_generation,web_search"). owner_name: Owner/organization name. version: Agent version string.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agent_idYes
nameNo
purposeNo
capabilitiesNo
owner_nameNo
versionNo0.1.0

Implementation Reference

  • The actual implementation of the kya_create_card tool which creates a KYA (Know Your Agent) identity card for an agent.
    def kya_create_card(
        agent_id: str,
        name: str = "",
        purpose: str = "",
        capabilities: str = "",
        owner_name: str = "",
        version: str = "0.1.0",
    ) -> dict:
        """Create a KYA (Know Your Agent) identity card for an agent.
    
        Args:
            agent_id: Unique ID in format "org/agent-name" (e.g. "luciferforge/research-bot").
            name: Human-readable agent name.
            purpose: What this agent does (min 10 chars for validity).
            capabilities: Comma-separated list of capabilities (e.g. "text_generation,web_search").
            owner_name: Owner/organization name.
            version: Agent version string.
        """
        caps_list = [c.strip() for c in capabilities.split(",") if c.strip()] if capabilities else []
        caps_obj = {c: {"description": c, "risk_level": "low"} for c in caps_list}
    
        card = {
            "kya_version": "0.2",
            "agent_id": agent_id,
            "name": name or agent_id.split("/")[-1],
            "version": version,
            "purpose": purpose,
            "capabilities": caps_obj,
            "owner": {"name": owner_name or "unknown"},
        }
    
        _kya_cards[agent_id] = card
        score = compute_completeness_score(card)
    
        return {
            "status": "created",
            "agent_id": agent_id,
            "completeness_score": score,
            "card": card,
        }
  • Registration of the kya_create_card function as an MCP tool using the @mcp.tool decorator.
    @mcp.tool()
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It adds valuable behavioral constraints (agent_id format 'org/agent-name', purpose min 10 chars, comma-separated capabilities) but lacks mutation semantics (idempotency, overwrite behavior, return value) or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Uses an Args section efficiently to document parameters without redundancy. The structure is clear and scannable, though the docstring format slightly differs from typical prose descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema exists, the description should ideally specify what the tool returns (card ID, success boolean, full card object). Parameter coverage is complete, but the omission of return value description leaves a gap for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Excellent compensation for 0% schema description coverage. The description documents all 6 parameters with formats, examples, and constraints (e.g., 'min 10 chars for validity', 'Comma-separated list') that the schema completely omits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Create) and resource (KYA identity card) with helpful expansion of the acronym. It distinguishes from non-KYA siblings, though it could better clarify the relationship with kya_sign_card and kya_verify_card in the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus kya_sign_card or kya_verify_card, or the sequence of operations (create vs sign vs verify). Given the sibling relationships, workflow guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/LuciferForge/agent-safety-mcp'

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