kya_verify_card
Verify KYA identity cards by checking structure, completeness, and digital signatures to ensure authenticity and compliance.
Instructions
Verify a KYA identity card — check structure, completeness, and signature.
Args: agent_id: Look up a card created in this session by agent_id. card_json: Or pass raw card JSON to verify an external card.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| card_json | No |
Implementation Reference
- src/agent_safety_mcp/server.py:463-507 (handler)The kya_verify_card tool handler which verifies the KYA identity card structure, completeness, and signature.
def kya_verify_card(agent_id: str = "", card_json: str = "") -> dict: """Verify a KYA identity card — check structure, completeness, and signature. Args: agent_id: Look up a card created in this session by agent_id. card_json: Or pass raw card JSON to verify an external card. """ if card_json: try: card = json.loads(card_json) except json.JSONDecodeError: return {"error": "Invalid JSON"} elif agent_id and agent_id in _kya_cards: card = _kya_cards[agent_id] else: return {"error": "Provide agent_id (from this session) or card_json"} # Write card to temp file for validate() card_path = _card_to_file(card) try: validation = validate(card_path) finally: os.unlink(card_path) score = compute_completeness_score(card) result = { "valid": validation.get("valid", False), "errors": validation.get("errors", []), "completeness_score": score, "agent_id": card.get("agent_id", "unknown"), "has_signature": "_signature" in card or "signature" in card, } if ("_signature" in card or "signature" in card) and _kya_key_name: from kya.signer import KEY_DIR pub_path = str(KEY_DIR / f"{_kya_key_name}.pub") if os.path.exists(pub_path): try: verified = verify_card(card, pub_path) result["signature_verified"] = verified.get("valid", False) except Exception: result["signature_verified"] = False return result - src/agent_safety_mcp/server.py:462-462 (registration)The registration of the kya_verify_card tool using the @mcp.tool decorator.
@mcp.tool()