Skip to main content
Glama

GENESIS ProofRelay MCP Verifier

Normalize payment proof envelope

proofrelay.normalize_payment_proof
Read-onlyIdempotent

Validate rail-agnostic payment or entitlement proof hashes and return the ProofRelay payment_context evidence profile. This does not charge, settle, custody funds, or verify external payment finality.

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": {
      "payment_proof": "<payment_proof>"
    },
    "name": "proofrelay.normalize_payment_proof"
  }
}

Input Schema

NameRequiredDescriptionDefault
payment_proofYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / payment_proof / additionalProperties
      Added value: +false
    • addedInput schema / properties / payment_proof / properties / challenge_or_session_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • addedInput schema / properties / payment_proof / properties / payment_proof_or_charge_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • changedInput schema / properties / payment_proof / properties / replay_key / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / payment_proof / properties / request_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • addedInput schema / properties / payment_proof / properties / response_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
    • addedInput schema / properties / payment_proof / properties / settlement_or_entitlement_hash / pattern
      Added value: +"^\\s*(?:sha256:)?[0-9a-fA-F]{64}\\s*$"
  2. Changed6 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "PaymentProofEnvelopeInput": {
      -    "description": "Rail-agnostic payment proof hashes for a ProofRelay evidence profile.",
      -    "properties": {
      -      "amount": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Public-safe amount label, if known.",
      -        "title": "Amount"
      -      },
      -      "challenge_or_session_hash": {
      -        "description": "SHA-256 hash of the challenge, checkout session, or quote.",
      -        "title": "Challenge Or Session Hash",
      -        "type": "string"
      -      },
      -      "currency": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Currency or unit, if known.",
      -        "title": "Currency"
      -      },
      -      "expires_at": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional ISO-8601 expiry time.",
      -        "title": "Expires At"
      -      },
      -      "non_secret_refs": {
      -        "description": "Non-secret references such as hashed event IDs or endpoint names.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "title": "Non Secret Refs",
      -        "type": "array"
      -      },
      -      "payment_proof_or_charge_hash": {
      -        "description": "SHA-256 hash of the payment proof, charge, or facilitator result.",
      -        "title": "Payment Proof Or Charge Hash",
      -        "type": "string"
      -      },
      -      "protocol": {
      -        "description": "Public-safe protocol name for the paid action lifecycle.",
      -        "examples": [
      -          "stripe_checkout_session_webhook"
      -        ],
      -        "title": "Protocol",
      -        "type": "string"
      -      },
      -      "provider": {
      -        "description": "Payment rail or entitlement provider, for example stripe or x402.",
      -        "examples": [
      -          "stripe_agentic_commerce"
      -        ],
      -        "title": "Provider",
      -        "type": "string"
      -      },
      -      "replay_key": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Public-safe replay key or hash.",
      -        "title": "Replay Key"
      -      },
      -      "request_hash": {
      -        "description": "SHA-256 hash of the request.",
      -        "title": "Request Hash",
      -        "type": "string"
      -      },
      -      "response_hash": {
      -        "description": "SHA-256 hash of the delivered resource or service response.",
      -        "title": "Response Hash",
      -        "type": "string"
      -      },
      -      "settlement_or_entitlement_hash": {
      -        "description": "SHA-256 hash of the settlement, receipt, or entitlement token.",
      -        "title": "Settlement Or Entitlement Hash",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "provider",
      -      "protocol",
      -      "request_hash",
      -      "challenge_or_session_hash",
      -      "payment_proof_or_charge_hash",
      -      "settlement_or_entitlement_hash",
      -      "response_hash"
      -    ],
      -    "title": "PaymentProofEnvelopeInput",
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / payment_proof / $ref
      Removed value: -"#/$defs/PaymentProofEnvelopeInput"
    • addedInput schema / properties / payment_proof / properties
      Added value: +{
      +  "amount": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "challenge_or_session_hash": {
      +    "type": "string"
      +  },
      +  "currency": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "expires_at": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "non_secret_refs": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "payment_proof_or_charge_hash": {
      +    "type": "string"
      +  },
      +  "protocol": {
      +    "type": "string"
      +  },
      +  "provider": {
      +    "type": "string"
      +  },
      +  "replay_key": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "request_hash": {
      +    "type": "string"
      +  },
      +  "response_hash": {
      +    "type": "string"
      +  },
      +  "settlement_or_entitlement_hash": {
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / payment_proof / required
      Added value: +[
      +  "provider",
      +  "protocol",
      +  "request_hash",
      +  "challenge_or_session_hash",
      +  "payment_proof_or_charge_hash",
      +  "settlement_or_entitlement_hash",
      +  "response_hash"
      +]
    • addedInput schema / properties / payment_proof / type
      Added value: +"object"
    • removedInput schema / title
      Removed value: -"normalize_payment_proofArguments"
  3. First observed

TDQS

B3.1/5.0
Behavior3/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 adds real value by disclaiming settlement, custody, and finality verification — an agent cannot infer those semantic limits from the hints alone. However, it says nothing about what happens on validation failure, what a rejected proof returns, or whether hashes must be recomputed by the caller.

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

Conciseness5/5

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

Two sentences, no filler, with the positive definition front-loaded and the negative scope immediately after. Every clause carries information an agent would not otherwise have.

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

Completeness3/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-value explanation is rightly omitted, and annotations cover safety. The remaining gap is the deeply nested input envelope: for a tool whose entire job is validating hashes, an agent still cannot tell from the definition what each hash field should contain or what a validation failure looks like.

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?

There is one parameter, but it is a nested object with twelve fields, seven of them required, at 0% schema description coverage. The phrase "proof hashes" gestures at the shape but never explains the distinction between request_hash, challenge_or_session_hash, payment_proof_or_charge_hash, and settlement_or_entitlement_hash — exactly the ambiguity an agent would hit. With this much nested structure and no field-level documentation anywhere, the description needed to compensate and does not.

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

Purpose4/5

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

States a specific verb ("Validate") against a specific resource ("rail-agnostic payment or entitlement proof hashes") and names the artifact returned ("payment_context evidence profile"). It is distinguishable from siblings like adapt_x402_payment_proof or verify_signed_attestation, though it never explicitly contrasts itself with them.

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?

The description says what the tool is not for (charging, settling, custody, external finality), but that is scope exclusion rather than invocation guidance. It never states when an agent should call this versus adapt_x402_payment_proof or verify_signed_attestation, nor any prerequisite such as when a proof envelope exists but has not yet been normalized.

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