Skip to main content
Glama

x402 Pay — USDC API Payment Helper

Server Details

Pay for APIs with USDC. Read-only x402 payment discovery, verification, evidence, and status.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
98.6% over 39 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
check_paymentCheck Payment
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
is_x402YesTrue only for HTTP 402 with complete validated x402 v2 requirements.
challengeYesFresh validated requirements, or null. No synthetic defaults are inserted.
http_statusYesObserved HTTP status; zero means no HTTP response was received.
raw_headersNoAllowlisted response headers only; never cookies or authentication headers.
payment_sentYes
missing_fieldsNo
canonical_receiver_matchNoComparison with documented SML receiver; a mismatch never rewrites upstream requirements.
check_statusCheck Status
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
coreYes
hostingYes
autonomous_spendYes
payment_readinessYes
list_paid_apisList Paid Apis
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of declared paid operations to return; not an exhaustive catalog count.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
sourceYes
operationsYes
payment_infoPayment Info
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetYes
pay_toYes
policyYes
networkYes
productYes
protocolYes
asset_contractYes
x402_inspect_challengeX402 Inspect ChallengeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
is_x402YesTrue only for HTTP 402 with complete validated x402 v2 requirements.
challengeYesFresh validated requirements, or null. No synthetic defaults are inserted.
http_statusYesObserved HTTP status; zero means no HTTP response was received.
raw_headersNoAllowlisted response headers only; never cookies or authentication headers.
payment_sentYes
missing_fieldsNo
canonical_receiver_matchNoComparison with documented SML receiver; a mismatch never rewrites upstream requirements.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 5 tool updates
    • Changedcheck_payment4 fields changed
      • addedInput schema / properties / url / description
        Added value: +"Full public HTTPS URL to inspect with an unsigned GET. No payment headers; redirects, credentials and private network targets are rejected."
      • addedInput schema / properties / url / format
        Added value: +"uri"
      • addedInput schema / properties / url / pattern
        Added value: +"^https://"
      • changedOutput 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"
        +}
    • Changedcheck_status1 field changed
      • changedOutput 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"
        +}
    • Changedlist_paid_apis2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of declared paid operations to return; not an exhaustive catalog count."
      • changedOutput 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"
        +}
    • Changedpayment_info1 field changed
      • changedOutput 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"
        +}
    • Addedx402_inspect_challenge
  2. 4 tool updates
    • First observedcheck_payment
    • First observedcheck_status
    • First observedlist_paid_apis
    • First observedpayment_info

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources