Skip to main content
Glama

run_conformance

Tests an x402 facilitator against the conformance sequence, checking 402 negotiation, reachability, malformed verify rejection, and optional keyed verify/settle steps.

Instructions

Drive the x402 conformance sequence against a facilitator. Holds NO keys: automates the 402 negotiation (with resourceUrl), facilitator reachability (GET /supported), and malformed-verify rejection. The keyed steps (verify happy-path, tampered-reject, settle, idempotent re-settle) run ONLY when you supply a pre-signed paymentPayload + paymentRequirements; settle additionally requires allowSettle: true (it settles real testnet value). Assumes the standard facilitator API (POST /verify, POST /settle). Returns a pass/fail/skip line per step.

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": {
      "facilitatorUrl": "<facilitatorUrl>"
    },
    "name": "run_conformance"
  }
}

Input Schema

NameRequiredDescriptionDefault
allowSettleNoOptional. Must be true to actually settle (settles real testnet value). Default false.
resourceUrlNoOptional. A payment-gated resource URL to test 402 negotiation.
facilitatorUrlYesBase URL of the facilitator (POST /verify, /settle).
paymentPayloadNoOptional. A pre-signed payment payload (produced by your keyed SDK) to run the happy/tampered paths.
paymentRequirementsNoOptional. The paymentRequirements the payload pays.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: it discloses that the tool holds no keys, that settle moves real testnet value and is gated behind allowSettle, and that non-keyed steps always run while keyed steps are conditional. It does not mention rate limits, timeouts, or what happens on facilitator unreachability, which keeps it from a 5.

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?

Three tight sentences, front-loaded with the core action, then the gating conditions, then the return shape. Dense but every clause carries operational meaning; only the backticked parameter listing is slightly redundant with the schema.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with nested object inputs, no annotations, and no output schema, the description covers safety (no keys), destructive scope (testnet value), branching behavior, and return format (pass/fail/skip per step). Missing only failure-mode detail such as what a skip versus an error means.

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?

Schema coverage is 100%, so the baseline would be 3, but the description adds genuine meaning: resourceUrl drives 402 negotiation, paymentPayload and paymentRequirements gate the keyed steps, and allowSettle gates real value movement. The interaction between parameters, not just their definitions, is explained.

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 and resource: drives the x402 conformance sequence against a facilitator. The parenthetical details (402 negotiation, GET /supported, malformed-verify rejection) make the scope concrete, but the description never differentiates itself from siblings like check_compliance or validate_extension, so sibling selection remains partly inferential.

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

Usage Guidelines4/5

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

Gives explicit preconditions: keyed steps run only when a pre-signed paymentPayload and paymentRequirements are supplied, and settle additionally requires allowSettle: true. It also sets the assumption of a standard facilitator API. It stops short of stating when to prefer this over check_compliance or validate_extension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.