Skip to main content
Glama

Report how a paid x402 call went

report_outcome
Idempotent

After paying an x402 endpoint, report whether you got what you paid for. Free, optional, and open to every agent: send the receipt from a Lumière PayCheck allow decision (paid plans), or the endpoint url plus the payment's transaction hash (anyone; we verify the payment on-chain, Base or Solana, within 24 hours). Answer the short questions in answers: gotResponse, matchedListing (yes/partly/no), charged (as_quoted/more/twice), dataUsable (yes/unsure/no), wouldPayAgain. Reports never change a grade by themselves: confirmations from independent buyers move the endpoint up our paid-test queue, and serious problems (nothing came back, charged more or twice) trigger a re-test; only our own paid test changes the grade. One report per payment; the seller's own wallet can't report on itself.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
txNoThe payment's transaction hash (Base 0x...) or Solana signature
urlNoThe endpoint you paid (with tx, when you have no receipt)
answersNo
outcomeNoOptional shortcut instead of answers: delivered = usable; problem = error, empty, wrong or overcharged
receiptNoThe receipt from a Lumière PayCheck 'allow' decision (paid plans). Or send url + tx instead.
problemsNoShort descriptions, e.g. 'missing field price', 'HTTP 500'
httpStatusNoHTTP status the endpoint returned after payment, e.g. 200 or 500

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
paidNoAmount paid on-chain, atomic units
reasonNoWhy it wasn't accepted
thanksNo
flaggedNono_response, overcharged or double_charged: sent privately to the operator for an immediate re-test
networkNo
outcomeNo
acceptedYesWhether the report was recorded
forTeamsNoShort note about team plans (per-agent keys, spend limits, audit trail)
overchargeNoPresent when the on-chain payment was higher than any quote we saw
retestQueuedNoA paid re-test was queued because of reports
ourTestQueuedNoOur own paid test of this endpoint is queued (buyer confirmations or problem reports moved it up)
verifiedOnChainNoThe payment was found on-chain (reports sent with tx instead of a receipt)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / answers
      Added value: +{
      +  "properties": {
      +    "charged": {
      +      "description": "Were you charged the quoted amount, once?",
      +      "enum": [
      +        "as_quoted",
      +        "more",
      +        "twice"
      +      ],
      +      "type": "string"
      +    },
      +    "dataUsable": {
      +      "description": "Did the data look real and usable?",
      +      "enum": [
      +        "yes",
      +        "unsure",
      +        "no"
      +      ],
      +      "type": "string"
      +    },
      +    "gotResponse": {
      +      "description": "Did you get a response after paying?",
      +      "type": "boolean"
      +    },
      +    "matchedListing": {
      +      "description": "Did it match what the listing promised?",
      +      "enum": [
      +        "yes",
      +        "partly",
      +        "no"
      +      ],
      +      "type": "string"
      +    },
      +    "wouldPayAgain": {
      +      "description": "Would you pay this endpoint again?",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / outcome / description
      Previous value: -"delivered = the response was usable; problem = error, empty, or wrong shape"New value: +"Optional shortcut instead of answers: delivered = usable; problem = error, empty, wrong or overcharged"
    • changedInput schema / properties / receipt / description
      Previous value: -"The receipt returned with the 'allow' decision"New value: +"The receipt from a Lumière PayCheck 'allow' decision (paid plans). Or send url + tx instead."
    • changedInput schema / properties / tx / description
      Previous value: -"Settlement transaction hash, if known (0x...)"New value: +"The payment's transaction hash (Base 0x...) or Solana signature"
    • addedInput schema / properties / url
      Added value: +{
      +  "description": "The endpoint you paid (with tx, when you have no receipt)",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "receipt",
      -  "outcome"
      -]
    • addedOutput schema / properties / flagged
      Added value: +{
      +  "description": "no_response, overcharged or double_charged: sent privately to the operator for an immediate re-test",
      +  "type": "string"
      +}
    • addedOutput schema / properties / network
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / ourTestQueued
      Added value: +{
      +  "description": "Our own paid test of this endpoint is queued (buyer confirmations or problem reports moved it up)",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / overcharge
      Added value: +{
      +  "description": "Present when the on-chain payment was higher than any quote we saw",
      +  "type": "string"
      +}
    • addedOutput schema / properties / paid
      Added value: +{
      +  "description": "Amount paid on-chain, atomic units",
      +  "type": "string"
      +}
    • addedOutput schema / properties / verifiedOnChain
      Added value: +{
      +  "description": "The payment was found on-chain (reports sent with tx instead of a receipt)",
      +  "type": "boolean"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover mutation/idempotency safety, and the description adds substantial context beyond them: reports never change a grade alone, independent confirmations move the endpoint up the paid-test queue, serious problems trigger a re-test, on-chain verification happens within 24 hours on Base or Solana, and the self-reporting ban. This is exactly the kind of behavioral disclosure annotations do not carry.

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 the core action and submission options, and every sentence conveys information about eligibility, inputs, or effects. It is dense and the long parenthetical clauses make it slightly heavy, but there is little true filler.

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 7-parameter, nested-object tool with an output schema (so return values need not be described), the description covers submission routes, verification mechanics, eligibility limits, and downstream consequences of reporting. Nothing an agent needs to invoke it correctly 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 already 86%, so the schema carries most parameter meaning. The description still adds value by explaining the receipt-vs-url+tx choice, enumerating the answer fields, and clarifying 'outcome' as a shortcut for answers, going beyond the raw schema text.

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 and object ('report whether you got what you paid for' after paying an x402 endpoint) and clearly frames it as feedback on a paid call, which separates it from siblings like check_endpoint, check_payment, and get_full_report. An agent can identify the task without opening the 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?

Explicitly states when to use it (after paying an x402 endpoint), eligibility ('free, optional, and open to every agent'), the two submission paths (receipt from an allow decision vs url + tx), and constraints ('one report per payment; the seller's own wallet can't report on itself'). Alternatives and exclusions are named, not implied.

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.