Skip to main content
Glama

Assay A2A, MCP & x402 Pre-Flight Verifier & Observatory

Query Historical Ledger & Pin Expected Schema Hashes

assay_get_ledger_policy
Idempotent

Retrieve historical conformance observations and manage pinned SHA-256 tools/list policy hashes in the Assay ledger for a target endpoint. When expected_tools_hash is provided, it pins that 64-hex digest as the target's baseline policy and compares it against the latest stored observation; when omitted, it returns the stored dossier and last 20 drift observations without network probing unless the target is unindexed. Idempotent; first 5 calls/IP are free. Use to audit historical drift or pin mcp-lock.json hashes; for live pre-execution gating use assay_preflight; for live re-indexing use assay_probe; for post-payment SLA receipts use assay_verify_delivery. Example: target='https://agentdiet-72343955726.us-central1.run.app/mcp'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetYesPublic HTTPS URL of the remote MCP server, A2A agent, or x402 endpoint to inspect (e.g. 'https://tandem.ac/mcp'). Private and loopback IPs are blocked.
expected_tools_hashNoOptional 64-char SHA-256 hex digest of the canonical MCP tools/list schema from mcp-lock.json. Omit to read or auto-pin the current live digest; pass a 64-hex digest to enforce zero-drift gating.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
reasonNo
statusNo
dossierNo
receiptYes
verdictYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, but the description adds genuinely new context: pinning behavior when a hash is supplied, no network probing when omitted unless the target is unindexed, and a rate limit ('first 5 calls/IP are free'). It also resolves the apparent read/write ambiguity implied by the 'get' name and readOnlyHint=false.

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?

Front-loaded with purpose, then branching behavior, then sibling routing, then an example. The closing example URL duplicates the schema's own example field, which is the only real waste in an otherwise dense, purposeful block.

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?

An output schema exists so return values need not be enumerated, yet the description still states what comes back (dossier and last 20 drift observations). Combined with the pinning semantics, rate limit, and sibling routing, an agent has everything needed to call this correctly.

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 100%, so the baseline is 3, but the description adds consequence-level meaning the schema does not: supplying expected_tools_hash pins that digest as the baseline and compares it to the latest observation, while omitting it returns the dossier plus the last 20 drift observations.

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 compound verb+resource: retrieve historical conformance observations and manage pinned SHA-256 tools/list policy hashes in the Assay ledger for a target endpoint. This is clearly distinguishable from the sibling tools named in the same description.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use here to audit historical drift or pin mcp-lock.json hashes; use assay_preflight for live pre-execution gating, assay_probe for live re-indexing, and assay_verify_delivery for post-payment SLA receipts. When-to-use and alternatives are both spelled out.

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.

Resources