Skip to main content
Glama

Check a registration

check_registration
Idempotent

Check a registration's status by its content hash: pending, awaiting seal, or sealed, with receipt path when sealed.

Instructions

One status check for a registration, by its content hash: pending (not yet sequenced; retry after the given seconds), awaiting_seal (sequenced, entry id known, receipt not yet sealed — sealing takes minutes, and never happens until delegate_sealing has run for the log), or sealed (the receipt is saved and its path returned). Any other answer from canopy is reported as a problem with its reason. canopy answers a statement it never received exactly like a pending one, so after ten minutes of pending this says so. Does not sleep; pace the retries yourself.

Input Schema

NameRequiredDescriptionDefault
contentHashYesthe content hash register_statement returned (64 lowercase hex)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.4/5.0
Behavior5/5

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

Despite annotations being present, the description adds substantial behavior the annotations cannot convey: the three status states and their timing (sealing takes minutes), the prerequisite dependency on delegate_sealing, the quirk that a never-received statement is answered like a pending one, the ten-minute escalation, and the explicit non-sleeping retry contract. The only unreconciled point is that readOnlyHint=false is not explained for what is nominally a status check.

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?

Purpose is front-loaded, followed by the state definitions and then the caveats, and each sentence carries real information (state semantics, sealing timing, the never-received quirk, retry pacing). It is dense as a single paragraph, but nothing is wasted.

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?

With no output schema, the description carries the full return-value burden and does so: it enumerates every expected answer, describes what each means, and covers the unexpected-answer path and the false-pending staleness case. Combined with the retry-pacing guidance, an agent has everything needed to call and interpret it.

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% and the single parameter already documents both its origin ('the content hash register_statement returned') and its format (64 lowercase hex). The description's 'by its content hash' restates that provenance without adding syntax or format detail, so the baseline of 3 applies.

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 specific verb and resource ('One status check for a registration, by its content hash') and then defines the exact result space (pending / awaiting_seal / sealed / problem). This lets an agent distinguish it from siblings like register_statement and verify_registration without opening any schema.

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?

Gives clear operating context: it is a single poll ('Does not sleep; pace the retries yourself'), it names the prerequisite that must run before sealing can occur ('never happens until delegate_sealing has run for the log'), and it sets a ten-minute escalation heuristic. It never names an alternative tool or an explicit when-not-to-use case, so it stops short of a 5.

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