Skip to main content
Glama

verify_answer_receipt

FREE. Verify an answer receipt (kind answer_receipt) with the Ed25519 public key only. Pass the receipt object or its canonical JSON, signature_value when the signature is not inside the receipt, and public_key_pem to verify offline. If public_key_pem is omitted, the tool may GET signature.public_key (/certified/public-key) and read public_key_pem. Never send a private key. A valid signature shows this service issued that exact receipt. It does not turn the receipt into a series certified extract (GET /v1/certified/{country}/{series} at $0.25, not an MCP tool) and it is not legal advice. Same key and canonical-JSON rule as /certified/public-key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
receiptYesAnswer receipt object (signature may be nested) or the canonical JSON of that object. A canonical JSON string of the signed body (signature omitted) is accepted when signature_value is also passed.
public_key_pemNoSPKI public key PEM from GET /certified/public-key (field public_key_pem). Required for offline verify. A private key PEM is refused.
public_key_urlNoOptional GET /certified/public-key URL used only when public_key_pem is omitted. Ignored when the PEM is present.
signature_valueNoBase64 Ed25519 signature. Required when the receipt object or JSON string does not already include signature.value. Overrides a nested signature when both are sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations available, the description carries the full behavioral burden, and it delivers. It discloses cost ('FREE'), network behavior ('may GET signature.public_key'), a security constraint ('Never send a private key'), a semantic guarantee ('A valid signature shows this service issued that exact receipt'), and a limitation (does not produce a certified extract). This is far beyond what a bare schema would convey.

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?

The description is front-loaded with 'FREE' and the core verb, then branches into usage details. It is longer than the high-calibration example but every sentence earns its place. The only mild bloat is the parenthetical '($0.25, not an MCP tool)' and the aside about legal advice, which could be trimmed without losing essential meaning.

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?

For a tool with no output schema and no annotations, the description is remarkably complete. It covers purpose, parameter relationships, offline/online modes, security, cost, and non-goals. The only minor omission is the exact return type (e.g., boolean or object), but the phrase 'A valid signature shows...' effectively defines the success result. The description leaves no critical gap for an agent to call the tool correctly.

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

Parameters5/5

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

Even though the schema already documents all four parameters at 100% coverage, the description adds conditional logic that the schema lacks: when signature_value is needed (receipt lacks a nested signature), when public_key_pem is required (offline verification), how public_key_url is used (only when public_key_pem is omitted), and the override rule for signature_value. It also clarifies the canonical-JSON rule and prohibits private-key PEMs—meaningful semantics beyond the raw JSON schema.

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 an imperative verb and a specific resource: 'Verify an answer receipt (kind answer_receipt) with the Ed25519 public key only.' It immediately distinguishes this from the other tools, which deal with wages, taxes, holidays, and series snapshots, and it scopes the operation to verification rather than issuance or extraction.

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?

The description gives explicit when-to-use guidance: it explains the offline path, the optional online fetch, and the exact conditions for passing signature_value. It also names what this tool is not for (turning a receipt into a certified extract at $0.25) and warns against private keys. No alternative MCP tool is needed—this is a dedicated verifier—and the exclusion prevents misuse.

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