Skip to main content
Glama

LEGION Verify: MCP tool-list history

verify_evidence_bundle

Read-onlyIdempotent

Verify an evidence bundle OFFLINE (no network call): keyring chain from the pinned root fingerprint, record signature and integrity, signed tree head, RFC 9162 inclusion proof. If approved_tools_sha256 is given, also reports whether the signed tool list still matches the version you approved (UNAPPROVED_CHANGE if not). Bundle = {record, proof, sth, keyring} as returned by get_server_changes (max 256 KB).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bundleYes
approved_tools_sha256No

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description goes further with non-obvious behavioral facts: verification is fully offline, the bundle is capped at 256 KB, and a specific result token (UNAPPROVED_CHANGE) is emitted on mismatch. It does not describe the success/failure result shape in general, which keeps it short of a 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?

Information is front-loaded: the offline/no-network constraint and the list of checks come first, then the conditional parameter behavior, then the bundle shape. Sentences are dense but each carries distinct information. Minor packing of the UNAPPROVED_CHANGE detail mid-sentence slightly hurts scanability.

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 no output schema, the description carries the return-value burden and does mention the UNAPPROVED_CHANGE outcome and the checks performed, plus the bundle input contract. What is missing is the general result shape on success (e.g., an OK/valid token or error list), which would fully close the loop for an agent interpreting the response.

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 must compensate, and it does: it defines the bundle's expected sub-fields ({record, proof, sth, keyring}), its provenance (get_server_changes), and its size limit. It also explains the semantic effect of approved_tools_sha256 rather than just naming it. The opaque nested object is not fully documented field-by-field, so not a 5.

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 (verify) and resource (evidence bundle) and immediately qualifies the scope with 'OFFLINE (no network call)'. It enumerates exactly what is checked — keyring chain from pinned root fingerprint, record signature/integrity, signed tree head, RFC 9162 inclusion proof — so an agent knows precisely what this tool does versus its siblings.

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 ties the tool to its producer by stating the bundle is 'as returned by get_server_changes', and gives an explicit conditional for the optional parameter ('If approved_tools_sha256 is given, also reports whether...'). It does not explicitly contrast itself with verify_mcp_server or check_mcp_server, so the when-not guidance is incomplete, but the usage context is clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.