Skip to main content
Glama

verify_log

Re-walks the log's hash chain to detect accidental edits and report the first mismatched line; returns chain_ok false when the log does not exist.

Instructions

Re-walk the log's hash chain and report the first line that does not fit, if any.

This catches accidental and naive edits. The hashes are not keyed, so a rewrite that recomputes every later hash, or a cut-off tail, is caught only by comparing head_sha256 with a copy kept elsewhere. A log that does not exist yet reports chain_ok false.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
linesYes
reasonYes
chain_okYes
head_sha256Yessha256 of the last line's bytes (without its newline; not its own sha256 field). The chain catches accidental and naive edits; a rewrite that recomputes every hash, or a cut-off tail, is caught only by comparing against a head hash kept elsewhere
first_bad_seqYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the detection model, its key limitation (unkeyed hashes; recomputed chains and truncated tails evade it), and an edge case (nonexistent log returns chain_ok false). It omits side-effect/read-only and cost/performance characteristics, which keeps it just short of 5.

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?

Three sentences, front-loaded with the core action, followed by the value proposition and the adversarial-limitation caveat. Every sentence earns its place, though the limitation sentence is dense and could be split or tightened.

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?

An output schema exists, so return-value documentation is not required, yet the description still usefully explains the chain_ok=false edge case. Combined with a zero-parameter schema, the definition is essentially complete; only security/side-effect framing is left implicit.

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?

The tool takes zero parameters, so the baseline is 4. There is no parameter syntax for the description to clarify, and it correctly adds no redundant parameter discussion.

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 specific verb and resource: 'Re-walk the log's hash chain and report the first line that does not fit.' It also states the exact output of interest (first failing line, if any), so an agent knows both the action and the result shape without opening the 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?

It implicitly defines the use case ('catches accidental and naive edits') and, importantly, states the condition under which the tool is NOT sufficient (rewrites that recompute later hashes or cut tails are only caught by comparing head_sha256 with an external copy). No sibling among check_quote/search_literature/etc. competes for this job, so explicit alternative routing isn't needed, but it stops short of saying when in a workflow to call it.

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