x402 Pay — USDC API Payment Helper
Server Details
Pay for APIs with USDC. Read-only x402 payment discovery, verification, evidence, and status.
- Status
- Healthy
- Uptime
- 98.6% over 39 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct concern: inspecting a live challenge, checking authority status, listing paid APIs, and returning payment network info. There is no meaningful overlap between the tool purposes.
check_payment, check_status, and list_paid_apis follow a clean verb_noun pattern. payment_info is the one exception, using a noun phrase instead, which is a minor but noticeable deviation.
Four tools is a well-scoped count for a read-only payment helper. Each tool covers a distinct piece of functionality without redundancy or unnecessary bloat.
The set covers the core read-only workflow: discover paid APIs, get payment details, verify authority health, and inspect live challenges. It intentionally avoids spending, and the only minor gap is deeper per-endpoint payment requirement details beyond the OpenAPI listing.
Available Tools
5 toolscheck_paymentCheck PaymentRead-onlyIdempotentInspect
Inspect a public HTTPS URL for a fresh x402 v2 HTTP 402 challenge using an unsigned GET with a 10-second network timeout and no redirect following. Returns validated payTo, asset, network, atomic amount, resource and maxTimeoutSeconds; incomplete or non-x402 responses return challenge=null and a reason. Does not sign, settle or verify receipts. Fresh requirements override documented receiver hints; inspect canonical_receiver_match before choosing to pay.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reason | No | |
| is_x402 | Yes | True only for HTTP 402 with complete validated x402 v2 requirements. |
| challenge | Yes | Fresh validated requirements, or null. No synthetic defaults are inserted. |
| http_status | Yes | Observed HTTP status; zero means no HTTP response was received. |
| raw_headers | No | Allowlisted response headers only; never cookies or authentication headers. |
| payment_sent | Yes | |
| missing_fields | No | |
| canonical_receiver_match | No | Comparison with documented SML receiver; a mismatch never rewrites upstream requirements. |
check_statusCheck StatusRead-onlyIdempotentInspect
Read the current SqueezeOS backend status and payment-readiness evidence. Returns both upstream envelopes and autonomous_spend=false. Use to diagnose readiness before purchase; HTTP availability or readiness flags alone do not establish settled or accepted delivery.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| core | Yes | |
| hosting | Yes | |
| autonomous_spend | Yes | |
| payment_readiness | Yes |
list_paid_apisList Paid ApisRead-onlyIdempotentInspect
List paid API operations declared by the live SqueezeOS OpenAPI document, bounded by limit. Returns method, path, job and advertised price. Use for route selection, then inspect that resource's fresh 402 challenge; listed prices do not authorize payment.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of declared paid operations to return; not an exhaustive catalog count. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| source | Yes | |
| operations | Yes |
payment_infoPayment InfoRead-onlyIdempotentInspect
Read the documented SML x402 v2 Base/USDC configuration and receiver before selecting a paid route. Returns configuration and a read-only policy. Fresh resource requirements override these hints; this tool does not sign, spend or prove settlement.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| asset | Yes | |
| pay_to | Yes | |
| policy | Yes | |
| network | Yes | |
| product | Yes | |
| protocol | Yes | |
| asset_contract | Yes |
x402_inspect_challengeX402 Inspect ChallengeARead-onlyIdempotentInspect
Inspect a fresh x402 v2 challenge without sending payment. Compatible alias of check_payment with the same schema, 10-second unsigned probe and result. Use before a paid resource call; do not use as a signer, receipt verifier or settlement proof. Non-402 and incomplete challenges remain null rather than receiving invented defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reason | No | |
| is_x402 | Yes | True only for HTTP 402 with complete validated x402 v2 requirements. |
| challenge | Yes | Fresh validated requirements, or null. No synthetic defaults are inserted. |
| http_status | Yes | Observed HTTP status; zero means no HTTP response was received. |
| raw_headers | No | Allowlisted response headers only; never cookies or authentication headers. |
| payment_sent | Yes | |
| missing_fields | No | |
| canonical_receiver_match | No | Comparison with documented SML receiver; a mismatch never rewrites upstream requirements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, yet the description still adds real behavioral context: a 10-second unsigned probe, no payment headers, and null-rather-than-invented-defaults for non-402 or incomplete challenges. It stops short of stating rate limits or permission requirements, so it is strong but not exhaustive.
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?
Front-loaded with purpose, then alias relationship, then allowed/forbidden usage, then result semantics — a logical ordering with no filler sentences. The phrase '10-second unsigned probe and result' is slightly compressed, but nothing is wasted.
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?
An output schema exists, so return-value detail is not required, yet the description still covers the key edge case (null for non-402/incomplete challenges). Combined with a fully documented single parameter and safety annotations, an agent has everything needed to call it correctly.
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% for the single 'url' parameter, which already documents HTTPS-only, unsigned GET, and rejection of redirects/credentials/private targets. The description adds no parameter syntax or format detail beyond that, so the baseline of 3 applies.
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?
States a specific verb and resource ('Inspect a fresh x402 v2 challenge') plus the critical scope constraint that no payment is sent. It also identifies itself as a compatible alias of the sibling check_payment, so an agent can differentiate it without opening either 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?
Explicit positive guidance ('Use before a paid resource call') and explicit exclusions ('do not use as a signer, receipt verifier or settlement proof'), plus the alias relationship to check_payment. Both the when and the when-not are 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.
5 tool updates
- Changed
check_payment4 fields changed- added
Input schema / properties / url / descriptionAdded value: +"Full public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected." - added
Input schema / properties / url / formatAdded value: +"uri" - added
Input schema / properties / url / patternAdded value: +"^https://" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "allOf": [ + { + "else": { + "properties": { + "challenge": { + "type": "null" + } + } + }, + "if": { + "properties": { + "is_x402": { + "const": true + } + } + }, + "then": { + "properties": { + "challenge": { + "additionalProperties": false, + "properties": { + "amount": { + "pattern": "^[0-9]+$", + "type": "string" + }, + "asset": { + "description": "Asset identifier from the fresh requirements; never replaced with a cached symbol.", + "minLength": 1, + "type": "string" + }, + "maxTimeoutSeconds": { + "maximum": 3600, + "minimum": 1, + "type": "integer" + }, + "network": { + "minLength": 1, + "type": "string" + }, + "payTo": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" + }, + "resource": { + "description": "Exact resource URL or identifier advertised by the endpoint.", + "minLength": 1, + "type": "string" + }, + "scheme": { + "description": "Payment scheme advertised by the fresh requirement.", + "minLength": 1, + "type": "string" + }, + "x402Version": { + "const": 2 + } + }, + "required": [ + "x402Version", + "scheme", + "payTo", + "asset", + "network", + "amount", + "resource", + "maxTimeoutSeconds" + ], + "type": "object" + }, + "http_status": { + "const": 402 + } + } + } + } + ], + "properties": { + "canonical_receiver_match": { + "description": "Comparison with documented SML receiver; a mismatch never rewrites upstream requirements.", + "type": "boolean" + }, + "challenge": { + "description": "Fresh validated requirements, or null. No synthetic defaults are inserted.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "pattern": "^[0-9]+$", + "type": "string" + }, + "asset": { + "description": "Asset identifier from the fresh requirements; never replaced with a cached symbol.", + "minLength": 1, + "type": "string" + }, + "maxTimeoutSeconds": { + "maximum": 3600, + "minimum": 1, + "type": "integer" + }, + "network": { + "minLength": 1, + "type": "string" + }, + "payTo": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" + }, + "resource": { + "description": "Exact resource URL or identifier advertised by the endpoint.", + "minLength": 1, + "type": "string" + }, + "scheme": { + "description": "Payment scheme advertised by the fresh requirement.", + "minLength": 1, + "type": "string" + }, + "x402Version": { + "const": 2 + } + }, + "required": [ + "x402Version", + "scheme", + "payTo", + "asset", + "network", + "amount", + "resource", + "maxTimeoutSeconds" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "http_status": { + "description": "Observed HTTP status; zero means no HTTP response was received.", + "maximum": 599, + "minimum": 0, + "type": "integer" + }, + "is_x402": { + "description": "True only for HTTP 402 with complete validated x402 v2 requirements.", + "type": "boolean" + }, + "missing_fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "payment_sent": { + "const": false + }, + "raw_headers": { + "additionalProperties": { + "type": "string" + }, + "description": "Allowlisted response headers only; never cookies or authentication headers.", + "type": "object" + }, + "reason": { + "type": "string" + } + }, + "required": [ + "is_x402", + "http_status", + "challenge", + "payment_sent" + ], + "type": "object" +}
- Changed
check_status1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "autonomous_spend": { + "const": false + }, + "core": { + "additionalProperties": true, + "properties": { + "body": { + "description": "Exact upstream JSON or a bounded text excerpt; missing evidence is not filled in." + }, + "ok": { + "description": "Whether the selected upstream returned HTTP 2xx; not settlement proof.", + "type": "boolean" + }, + "payment_required": { + "type": "boolean" + }, + "source": { + "description": "The queried local upstream path.", + "type": "string" + }, + "status_code": { + "type": "integer" + } + }, + "required": [ + "ok", + "status_code", + "source", + "body", + "payment_required" + ], + "type": "object" + }, + "hosting": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "payment_readiness": { + "additionalProperties": true, + "properties": { + "body": { + "description": "Exact upstream JSON or a bounded text excerpt; missing evidence is not filled in." + }, + "ok": { + "description": "Whether the selected upstream returned HTTP 2xx; not settlement proof.", + "type": "boolean" + }, + "payment_required": { + "type": "boolean" + }, + "source": { + "description": "The queried local upstream path.", + "type": "string" + }, + "status_code": { + "type": "integer" + } + }, + "required": [ + "ok", + "status_code", + "source", + "body", + "payment_required" + ], + "type": "object" + } + }, + "required": [ + "ok", + "hosting", + "core", + "payment_readiness", + "autonomous_spend" + ], + "type": "object" +}
- Changed
list_paid_apis2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of declared paid operations to return; not an exhaustive catalog count." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "count": { + "type": "integer" + }, + "ok": { + "type": "boolean" + }, + "operations": { + "items": { + "additionalProperties": true, + "properties": { + "advertised_price": {}, + "job": {}, + "method": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "method", + "path", + "job", + "advertised_price" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "type": "string" + } + }, + "required": [ + "ok", + "source", + "count", + "operations" + ], + "type": "object" +}
- Changed
payment_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "properties": { + "asset": { + "type": "string" + }, + "asset_contract": { + "type": "string" + }, + "network": { + "type": "string" + }, + "pay_to": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" + }, + "policy": { + "type": "object" + }, + "product": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "required": [ + "product", + "protocol", + "network", + "asset", + "asset_contract", + "pay_to", + "policy" + ], + "type": "object" +}
- Added
x402_inspect_challenge
4 tool updates
- First observed
check_payment - First observed
check_status - First observed
list_paid_apis - First observed
payment_info
Related MCP Connectors
Pay for HTTP APIs and charge for your own: x402 micropayments in USDC on Base.
Discover machine-payable APIs, probe x402 payment terms, and run seller operations. Non-custodial.
Pay-per-use web extract, token prices, and wallet balances via x402 USDC micropayments.
Pay-per-action access to APIs and MCP tools over Lightning L402 and Base USDC x402.
Related MCP Servers
AlicenseNot gradedqualityCmaintenancePay for any x402-gated content or API with USDC micropayments on Base. Discover payment gates, execute payments, and view transaction history.1MIT- FlicenseNot gradedqualityDmaintenanceEnables agents to pay per call in USDC for live crypto prices and revenue intelligence via HTTP 402, with no API keys required.-

@vapi-network/mcpofficial
AlicenseNot gradedqualityBmaintenanceLets MCP clients discover x402 APIs, pay for calls from a local non-custodial wallet, and inspect balances and payment receipts.9Apache 2.0
@hpp-io/x402-mcp-bridgeofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to autonomously pay for and discover services using HPP USDC.e over the x402 protocol, without API keys or manual signing.252 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.