Skip to main content
Glama

Conformance Desk

check_conformance
Read-onlyIdempotent

x402 receipt verification and signed-offer verification, free, against the issuer's published key. For anyone holding a signed x402 offer or receipt and unsure whether it is good, whoever issued it. Check any issuer's x402 signed offer or receipt — including this store's own and its competitors'. Send the compact JWS (three base64url segments separated by dots); the desk checks structure, signature against the issuer's did:web key, and liveness, and returns a verdict with every check named. Supply public_key_hex for a fully offline check (no network request is made in your name unless you leave the key off). NOT for artifact ids this store issued — that is verify_artifact. An evidence instrument: the verdict is written to be handed to the human behind you. The method is MIT-licensed and identical to the published verifier, so a verdict that matters should be reproduced offline rather than trusted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoOptional. The artifact kind; detected from the artifact when absent.
artifactYesThe signed offer or receipt as a compact JWS: header.payload.signature, base64url.
public_key_hexNoOptional ed25519 public key, hex. Supplying it makes the check fully offline.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesThe artifact kind, or null when it could not be detected.
liveNoSeparate from conformance: an expired offer can conform and not be payable. Null for receipts.
verdictYesThe desk's finding on the artifact.
key_resolutionNoHow the issuer's key was obtained, or why it was not.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed9 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Optional: offer | receipt. Detected from the artifact when absent."New value: +"Optional. The artifact kind; detected from the artifact when absent."
    • addedInput schema / properties / kind / enum
      Added value: +[
      +  "offer",
      +  "receipt"
      +]
    • changedOutput schema / properties / key_resolution / description
      Previous value: -"offline | did:web | not_attempted | budget_exhausted."New value: +"How the issuer's key was obtained, or why it was not."
    • addedOutput schema / properties / key_resolution / enum
      Added value: +[
      +  "offline",
      +  "did:web",
      +  "not_attempted",
      +  "budget_exhausted"
      +]
    • changedOutput schema / properties / kind / description
      Previous value: -"offer | receipt, or null when undetectable."New value: +"The artifact kind, or null when it could not be detected."
    • addedOutput schema / properties / kind / enum
      Added value: +[
      +  "offer",
      +  "receipt",
      +  null
      +]
    • changedOutput schema / properties / kind / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / verdict / description
      Previous value: -"conforms | does_not_conform | could_not_check."New value: +"The desk's finding on the artifact."
    • addedOutput schema / properties / verdict / enum
      Added value: +[
      +  "conforms",
      +  "does_not_conform",
      +  "could_not_check"
      +]
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, but the description adds meaningful behavior beyond that: it checks structure, signature against did:web key, and liveness; returns a verdict naming each check; makes no network request when public_key_hex is supplied; and cautions that verdicts should be reproduced offline before being relied upon. No contradiction with annotations.

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 longer than average but front-loaded with the main purpose and immediately states scope and exclusions. Some sentences, such as the MIT-licensing note and evidence-instrument framing, are contextually useful but slightly beyond core invocation guidance, so it does not earn full marks for tightness.

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?

Given the input schema, annotations, and output schema, the description is complete: it covers all three parameters, explains offline vs online behavior, names the sibling exclusion, and sets expectations about the verdict output. Nothing an agent needs to decide whether and how to call this tool is missing.

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 practical meaning beyond the schema: it specifies the artifact format as a compact JWS with three base64url segments, explains that public_key_hex enables a fully offline check, and clarifies that kind is auto-detected when absent. This goes beyond the raw property descriptions.

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 uses a specific verb and resource: it verifies x402 signed offers or receipts against the issuer's published key. It also clearly distinguishes itself from verify_artifact, which handles this store's artifact ids, so an agent can select the correct tool without opening another schema.

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 context: anyone holding a signed x402 offer or receipt and unsure whether it is good, from any issuer. It also states an explicit exclusion and alternative: 'NOT for artifact ids this store issued — that is verify_artifact.' Offline vs online usage is also spelled out via the optional public_key_hex parameter.

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.