Skip to main content
Glama

guard_verify

Destructive

Run a command and record its exit code and output digest as verifiable evidence in a ledger, so you can prove a check actually passed rather than trusting untrusted exit codes or masked failures.

Instructions

Run a command and RECORD the outcome as evidence (id, exit, digest) in verify_runs.jsonl. shell=True is by design: the command runs verbatim with the caller's own privileges — this is an evidence ledger, not a sandbox. Never raises on nonzero exit; failures are recorded and the text says why and how to re-run. Exit 0 from a pipeline or a failure mask (|| true) is labelled UNTRUSTED and is not proof. stdin is closed so a command cannot read the MCP protocol. timeout_s is clamped to [1, 900].

Input Schema

NameRequiredDescriptionDefault
commandYes
timeout_sNo

Output Schema

NameRequiredDescriptionDefault
resultYes

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?

Goes well beyond the annotations: discloses shell=True verbatim execution with the caller's privileges, that nonzero exits never raise, that masked success (`|| true`) is labelled UNTRUSTED, and that stdin is closed to protect the MCP protocol. The destructive/openWorld hints are reinforced rather than contradicted; the only gap is what gets recorded when the timeout fires.

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?

Five dense sentences, front-loaded with the primary action and artifact, then safety caveats. No filler and no restatement of the tool name.

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 shape need not be spelled out, and the description still previews the recorded tuple and the failure text. Near-complete for a destructive, open-world execution tool; the timeout path is the one behavior left undescribed.

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?

Schema coverage is 0%, so the description carries the burden and largely does: `command` is explained as running verbatim under a shell with the caller's privileges and closed stdin, and `timeout_s` is bounded to [1, 900] with a stated default of 180 in the schema. Missing is the consequence of hitting the timeout (kill semantics, recorded exit value).

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 (run a command) plus the side effect and artifact (records id, exit, digest into verify_runs.jsonl), which is a distinct role from the read-side siblings like guard_evidence and guard_status. An agent can tell this is the execute-and-attest tool 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 Guidelines3/5

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

Usage is implied rather than stated: the 'evidence ledger, not a sandbox' framing tells the agent this is for commands whose outcome must be attested, but no sibling is named and there is no explicit when-not-to-use (e.g. use guard_preflight before, guard_evidence to read back).

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