Skip to main content
Glama

Have an x402 endpoint bought once: paid and delivered? ($0.25 via x402)

x402_delivery_check
Read-only

Paid ($0.25 USDC via x402 on Base or Solana): not a reading but a purchase. x402 Doctor buys the endpoint once (at most $0.1, USDC on Base, from its own wallet) with the example input its listing declares, checks the answer against the declared output schema and measures the charge on chain. Answers with a job id at once; follow it with x402_delivery_status (free), the result usually comes within minutes. The endpoint must get a "go" from the pre-payment check and be payable in USDC on Base; otherwise it is refused before payment. Same as GET /api/v1/delivery-check. The answer carries a signed receipt (EIP-191, bound to your arguments) that proves later which verdict you got.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe x402 endpoint to buy once (https, someone else's, payable in USDC on Base)
methodNoHTTP method of the paid route (default: GET, then POST)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoThe job id: pass it to x402_delivery_status
urlNo
statusNoqueued, then done
acceptsNoOnly on an unpaid call: the x402 payment options
receiptNoSigned receipt (EIP-191) binding the answer to your arguments
status_urlNo
endpoint_price_usdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

The description adds substantial context beyond the annotations: caller cost ($0.25 USDC), the service's own spend cap ($0.1 from its own wallet), payment rail (Base), async job-id behavior, the free polling follow-up, and a signed EIP-191 receipt bound to the arguments. One tension: readOnlyHint=true while the description frames the operation as 'not a reading but a purchase' that spends funds and may POST, so the annotation understates the side effects even though the text is honest about them.

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 price and the key reframing ('not a reading but a purchase') are front-loaded, and each sentence carries distinct information (cost, mechanism, prerequisite, follow-up, receipt). It is dense rather than bloated, though the receipt sentence and the 'Same as GET /api/v1/delivery-check' remark could be trimmed for a selection-time blurb.

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 paid, asynchronous, open-world tool, everything an agent needs is present: cost, prerequisites and refusal conditions, the async job-id pattern, the free status tool to poll, and the receipt guarantee. An output schema also exists, so return-value detail is not the description's burden.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented, and the description adds little beyond the schema: it restates that the url must be someone else's and payable in USDC on Base, and says nothing about the method parameter or the GET-then-POST default. Baseline 3 is appropriate when the schema carries the parameter semantics.

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 states a specific verb+resource: it buys an x402 endpoint once, checks the response against the declared output schema, and measures the on-chain charge. It is clearly distinguishable from sibling diagnostics (x402_preflight, x402_quick_check, x402_diagnose, x402_delivery_status) because it is the one that actually pays the endpoint, not just inspects it.

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?

It gives real preconditions ('The endpoint must get a "go" from the pre-payment check and be payable in USDC on Base; otherwise it is refused before payment') and routes the agent to the free follow-up (x402_delivery_status). What is missing is an explicit statement of when to prefer this over e.g. x402_quick_check or x402_diagnose, so the agent must infer that this is the paid, definitive check.

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.