Skip to main content
Glama

trust_identity

Idempotent

Mark a Signal contact's identity key as trusted so messaging works again after their safety number changes; pass the verified safety number to trust only that key.

Instructions

Mark a contact's identity key as trusted so sending to them works again after their safety number changed (e.g. they reinstalled Signal). number (required, E.164). safety_number (optional): the safety number or fingerprint you verified in person or by call, as shown by list_identities; only that key is trusted and it becomes TRUSTED_VERIFIED. Without safety_number ALL known keys for the number are trusted unverified — this unblocks delivery but skips verification, so prefer passing it. Changes local trust only; the contact is not notified. Fails if the number or safety number does not match. Returns status 'trusted' and number.

Input Schema

NameRequiredDescriptionDefault
numberYesPhone number (E.164) whose identity key to trust
safety_numberNoSafety number or fingerprint you verified (from list_identities); omit to trust all known keys unverified

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.43.0
    • changedInput schema / properties / number / description
      Previous value: -"Phone number to trust"New value: +"Phone number (E.164) whose identity key to trust"
    • changedInput schema / properties / safety_number / description
      Previous value: -"Verified safety number (leave blank to trust all known keys)"New value: +"Safety number or fingerprint you verified (from list_identities); omit to trust all known keys unverified"
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses that trust is local-only, the contact is not notified, the call fails on mismatch, and it returns status 'trusted' plus the number. It also explains the state difference between the verified and unverified paths (TRUSTED_VERIFIED vs unverified), which annotations cannot convey.

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?

Dense and front-loaded: purpose and trigger first, then parameter semantics, then side effects and return. Every sentence carries information, though it is a single long paragraph that could be broken up for faster scanning.

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

Completeness5/5

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

For a 2-parameter mutation with no output schema, it covers prerequisites (verification via list_identities), failure modes, side effects, and return values. Nothing an agent needs to call it correctly is missing.

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

Parameters5/5

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

Schema coverage is already 100%, yet the description adds real meaning: E.164 format, that safety_number scopes trust to only that key and yields TRUSTED_VERIFIED, and that omitting it trusts ALL known keys unverified. That consequence-of-omission detail is not derivable from the schema.

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

Purpose5/5

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

States a precise verb+resource ('Mark a contact's identity key as trusted') and the exact condition that motivates it (safety number changed, e.g. reinstall). It is clearly distinguishable from sibling tools like list_identities, which it names as the source of the safety number.

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

Usage Guidelines5/5

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

Explicitly says when to use it (to restore sending after a safety number change), when to prefer the verified path ('prefer passing it'), and what the fallback does. It also names the upstream tool (list_identities) the agent should consult first.

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