Skip to main content
Glama
proofgate-runtime

proofgate-runtime

by gamai-io

verify_claims

Verifies claims against evidence and returns confirmed, refuted, or unverified status with a SHA-256 report hash for tamper-evident auditing.

Instructions

Fail-closed claim verification: confirmed/refuted/unverified + SHA-256 report hash.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "claims": "<claims>"
    },
    "name": "verify_claims"
  }
}

Input Schema

NameRequiredDescriptionDefault
claimsYes
reported_hashNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden. It does disclose two genuinely useful traits beyond the schema: fail-closed semantics and that a SHA-256 report hash is produced. But it says nothing about whether verification is local or networked, whether the call is read-only, what causes fail-closed triggering, or how many claims can be processed at once — large gaps for a security-oriented tool.

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

Conciseness3/5

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

The single line is front-loaded and wastes no words, which is good. But the brevity is under-specification rather than economy: the colon-spliced clause compresses three unrelated facts (behavior, verdict set, hash output) into a fragment that leaves critical operational detail out.

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

Completeness2/5

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

With no annotations, no output schema, 0% parameter descriptions, and an unconstrained nested claims object, this tool needs a substantially richer description than one line. The verdict vocabulary and fail-closed note are helpful seeds but nowhere near sufficient for an agent to construct a valid claims payload or interpret the returned hash.

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

Parameters2/5

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

Schema description coverage is 0% and the claims array items are untyped objects with no declared properties, so the schema explains nothing. The description should compensate by describing the shape of a claim (assertion text? source? expected value?) and the role of reported_hash, but it does neither; the hash name implies output, yet it appears as an input, which is unresolved.

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

Purpose3/5

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

The phrase 'claim verification' gives a verb and a resource, and the verdict triple (confirmed/refuted/unverified) tells the agent what class of result to expect. However, it never distinguishes itself from the sibling verify_receipt, which sounds like an adjacent verification operation, and 'fail-closed' is not unpacked. An agent can guess the purpose but not its boundary against the other verify tool.

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

Usage Guidelines2/5

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

There is no when-to-use statement, no precondition, and no named alternative despite verify_receipt, make_receipt, and check_injection sitting in the same family. The only implicit cue is that this handles 'claims' rather than 'receipts', which the agent must infer from the name alone.

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