Skip to main content
Glama

promoteRelation

Promote a proposed relation to asserted by verifying a connector-ingested fact and lifting its trust quarantine so it behaves like a user-authored edge. Idempotent; re-promoting is a no-op.

Instructions

Promote a proposed relation to asserted: verify an untrusted connector-ingested fact and lift its trust quarantine. A fact extracted from an external source (Granola transcript, Claude-chats export) lands status=proposed — it surfaces in recall but is excluded from supersession until confirmed. Promoting it asserts it, so it then behaves like any user-authored edge. Idempotent: promoting an already-asserted edge is a no-op.

Input Schema

NameRequiredDescriptionDefault
nameYesResource name of the Relation to promote: relations/{uid}, as returned by recall/get/relations/neighbors.
scopeNoScope the promotion event is written into. Defaults to personal. Use the scope the relation lives in; promoting a team-scope edge requires admitted team membership, else E_PERMISSION.

Output Schema

NameRequiredDescriptionDefault
nameYesResource name of the promoted Relation.
statusYesAlways "asserted" on success — the relation now carries the authoritative trust posture.
promotedYestrue when this call flipped a proposed edge to asserted; false when the edge was already asserted (idempotent no-op, no event appended).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are empty, so the description carries the full burden and does well: it discloses idempotency (already-asserted promotion is a no-op), the trust-quarantine model, and the supersession exclusion semantics. It omits reversibility (whether retractFact can undo a promotion) and any notes on what the call returns, leaving a small but real gap for a mutation.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core action, then the rationale, then the behavioral guarantee. No sentence repeats the name or the schema, and the idempotency note is placed where an agent would look for safety information.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the trust-model context is thorough for a two-parameter mutation. The remaining gap is the absence of guidance on undoing a promotion or on what happens to dependent edges, which matters for an operation whose whole purpose is changing assertion state.

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

Parameters3/5

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

Schema description coverage is 100% — both `name` and `scope` are documented in the schema, including the E_PERMISSION case for team scope. The description adds no parameter-level detail beyond that, so the baseline 3 applies; the schema does the work here.

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?

The description opens with a precise verb+resource+state transition: 'Promote a proposed relation to asserted'. It further distinguishes the operation by explaining the source of the input (connector-ingested fact) and the resulting behavior change (behaves like a user-authored edge), so an agent knows exactly what class of operation this is versus siblings like relate or relateBatch.

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

Usage Guidelines4/5

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

It gives clear context on when this applies — facts from external sources land status=proposed, surface in recall, and are excluded from supersession until confirmed. That tells the agent when promotion is needed. It does not name an alternative tool or state when-not to use it (e.g., how to create a fresh edge instead via relate), so it stops short of explicit routing.

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