AgentPay x402 Facilitator
Server Details
Verify signed x402 payments; treasury-scoped settlement is irreversible.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: verify forwards an envelope for validation only, with no gas and no broadcast, while settle forwards an envelope for irreversible on-chain settlement. Their side effects and endpoints are different, so misselection is unlikely.
Both names follow the same pattern: x402_facilitator_<verb>. The naming is consistently snake_case and uses clear verbs, verify and settle.
Only two tools are exposed, which is minimal for a facilitator adapter and falls into the thin range. Each tool earns its place, but the set is narrow enough that it may feel under-scoped for broader facilitator use.
The core payment lifecycle is covered: verify checks validity and settlement authority, and settle performs the actual broadcast. Minor gaps may exist around discovery or supported-payment-method queries, but the essential operations are present.
Available Tools
2 toolsx402_facilitator_settleSettle an x402 payment on-chain (irreversible)ADestructiveInspect
IRREVERSIBLE SIDE EFFECT: forwards the envelope to POST https://x402-agent-pay.com/facilitator/settle. The existing facilitator first re-runs verify(), then refuses PAYEE_NOT_SERVED_HERE unless payTo is the AgentPay treasury (0x367F1b3D8Ca90D1e087481a9A40d585Bf3451a03 on Base / 6aCEuwH3PYx99cEmRz45otfxk39uF7ewGhqmvxfXisSG on Solana), then broadcasts via Coinbase CDP and returns a transaction hash. Malformed, unsigned, out-of-scope, or unverified payloads are rejected before any external transfer. This adapter never signs, never holds keys, and never bypasses those gates. Do not call this as a dry run.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Exact envelope accepted by POST /facilitator/verify and /facilitator/settle. The live Flask unpacker is liberal (v1/v2 names). This schema documents the supported request body and still forwards extra x402 fields the upstream already understands via nested objects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered; the description goes well beyond that by disclosing the upstream URL, the internal verify re-run, the PAYEE_NOT_SERVED_HERE refusal path, the exact treasury addresses, the Coinbase CDP broadcast, the returned tx hash, and the fact that the adapter never signs or holds keys and rejects malformed/unsigned payloads before transfer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The irreversible warning is front-loaded as the first clause, and every subsequent sentence conveys a distinct gate or guarantee. It is dense but not padded; each sentence earns its place, though the repetition of two treasury addresses across sentences is slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values yet still names the tx-hash return. Combined with rich annotations and a fully documented nested schema, an agent has everything needed to call this irreversible settlement tool correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single top-level parameter, so the schema already documents the envelope thoroughly, including the payTo treasury constraint. The description largely restates treasury addresses that already appear in the schema, adding little parameter meaning beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (settle/forward/broadcast) and resource (x402 payment envelope), and immediately distinguishes itself from the sibling x402_facilitator_verify by describing the ordering (verify re-runs first, settle broadcasts). An agent can tell exactly what this tool does versus its sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-not-to-use cue ('Do not call this as a dry run') and implies the precondition that a payload must have passed verify. However, it never explicitly says when an agent should prefer this over x402_facilitator_verify or what state the caller must be in before settling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_facilitator_verifyVerify an x402 payment without moving fundsARead-onlyIdempotentInspect
Forward an x402 payment envelope to POST https://x402-agent-pay.com/facilitator/verify. Recovers the EIP-712 signer, checks payee/amount/expiry/nonce/USDC balance and spend authority. Free. No gas. No broadcast. Returns isValid plus invalidReason when the payload cannot clear. Authorization still lives in the existing facilitator implementation; this tool only forwards the JSON body.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Exact envelope accepted by POST /facilitator/verify and /facilitator/settle. The live Flask unpacker is liberal (v1/v2 names). This schema documents the supported request body and still forwards extra x402 fields the upstream already understands via nested objects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/destructive/openWorld, but the description adds material context beyond them: the free/no-gas/no-broadcast economics, the fact that no on-chain side effect occurs, and the shape of the failure signal ('Returns isValid plus invalidReason when the payload cannot clear'). It stops short of describing rate limits or auth requirements, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, front-loaded with the action and endpoint, then the checks performed, the cost/side-effect profile, and the response shape. There is no filler and every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter forwarding tool with an output schema present, the description supplies what the structured fields do not: the upstream endpoint, the recovery/validation steps, the absence of broadcast, and the availability of invalidReason. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema is thoroughly documented (signer, payee, USDC atomic units, versioned field names), so the schema does the heavy lifting. The description only adds that the JSON body is forwarded verbatim, which is a small contribution over the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (forward/verify) and resource (x402 payment envelope), and the accompanying behaviors 'No broadcast', 'No gas', and 'only forwards the JSON body' make it unmistakable that this tool does not settle funds. An agent can distinguish it from x402_facilitator_settle purely from behavior, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the dry-run nature of the tool clear via 'No gas. No broadcast.' and 'authorization still lives in the existing facilitator implementation', which implies when this is appropriate versus an actual settlement. It does not, however, explicitly name x402_facilitator_settle as the alternative for moving funds, so the routing guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
x402_facilitator_settle - First observed
x402_facilitator_verify
Related MCP Connectors
Read-only on-chain receipt check for x402 payments; confirm settlement before trusting a tx.
Authorize x402 payments before signing with request-bound, signed safety decisions.
Verify and settle x402 stablecoin payments; browse the PayAI Bazaar of x402-payable resources.
Governed agent execution: x402 payments, budgets, receipts, verification, and audit.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables auditing x402 payment logs against delivery logs to issue signed proof-of-delivery receipts and verify payer spend health.-
- AlicenseNot gradedqualityAmaintenanceEnables agents and developers to check x402 endpoints, assess scores and wallet risks, authorize payments with spending rules, and report outcomes before an agent pays.MIT
- AlicenseNot gradedqualityAmaintenanceEnables autonomous agents to calculate deterministic profit and loss, attribute revenue and costs, and generate signed operational reports using x402 micropayments.MIT
- FlicenseNot gradedqualityBmaintenanceEnables autonomous agents to inspect and audit unfamiliar x402 endpoints before spending USDC, using bounded read-only probes to surface payment challenges, pricing, network, receiver, and operational signals without signing or spending funds.-
Glama MCP Gateway
Add one secure layer between your agents and this server.