Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.CryptoAPIs-io/mcp-x402-pay

NPM · @CRYPTOAPIS-IO/MCP-X402-PAY · SCANNED AUG 10

MCP server that pays x402-gated HTTP endpoints — fetch, and on a 402 authorize, sign, retry

0 this week 0 Trust /100

Recent critical change

GHSA-vjh7-7g9h-fjfh affects this package (2 Aug 2026). See the changelog before you install this server.

Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security73
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0. See how to fix → View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 261 of 268 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability48
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2089 tokens (~696/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @cryptoapis-io/mcp-x402-pay

# add to Claude Code
claude mcp add cryptoapis-io-mcp-x402-pay -- npx -y @cryptoapis-io/mcp-x402-pay
# add to Codex CLI
codex mcp add cryptoapis-io-mcp-x402-pay -- npx -y @cryptoapis-io/mcp-x402-pay
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cryptoapis-io-mcp-x402-pay": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@cryptoapis-io/mcp-x402-pay"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cryptoapis-io-mcp-x402-pay --command npx --arg -y --arg @cryptoapis-io/mcp-x402-pay
# ~/.hermes/config.yaml
mcp_servers:
  cryptoapis-io-mcp-x402-pay:
    command: "npx"
    args: ["-y", "@cryptoapis-io/mcp-x402-pay"]
// mcp.json
{
  "mcpServers": {
    "cryptoapis-io-mcp-x402-pay": {
      "command": "npx",
      "args": [
        "-y",
        "@cryptoapis-io/mcp-x402-pay"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Aug 26 0
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: good functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 100 functional
  • 2 Aug 26 −21
    • GHSA-vjh7-7g9h-fjfh affects this package: high critical
    • Known CVEs: unverified → fail critical
    • Score status: scored → failed critical
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Stability: Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare. security
    • Dependency health: partial → unverified functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess. functional
    • Capabilities: Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake. functional
    • Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess. functional
    • Licence: MIT functional
  • 1 Aug 26 +16
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Dependency health: unverified → partial functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • Security disclosure: unverified → fail functional
    • Package version: 0.3.0 → 0.4.0 functional
  • 29 Jul 26 −18
    • Malware scan: pass → unverified security
    • Security disclosure: fail → unverified functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Package version: 0.1.0 → 0.3.0 functional
  • 28 Jul 26 −1
    • Dependency health: partial → unverified functional
    • Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess. functional
    • Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess. functional
  • 27 Jul 26 25

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 10 Aug 2026 · Analysed npm/@cryptoapis-io/[email protected]

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Vulnerabilities 9 findings
ID CVE Severity Vector Fix available
GHSA-378v-28hj-76wf CVE-2026-2739 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-434g-2637-qmqr CVE-2024-48949 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N yes
GHSA-848j-6mx2-7j84 CVE-2025-14505 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L no
GHSA-977x-g7h5-7qgw CVE-2024-42460 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N yes
GHSA-fc9h-whq2-v747 CVE-2024-48948 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L yes
GHSA-r9p9-mrjm-926w CVE-2020-28498 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N yes
GHSA-vh7m-p724-62c2 CVE-2020-13822 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L yes
GHSA-vjh7-7g9h-fjfh critical yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes
Dependencies 261 packages
Packages resolved 261
Deprecated 2
Stale 92
No linked repository 2
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools · 3 exposed · ~2,089 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
x402_discover ~353

Discover x402-gated APIs you can pay for — browse the facilitator's Bazaar catalogue of registered x402 resources, each with the price and payment terms it accepts. Use this BEFORE x402_pay whenever you need to FIND a paid endpoint rather than call one you were already given: the pay tool only fetches a URL you hand it, so this is the only way to locate a monetized API on your own. Returns { resources: [{ resource, type, x402Version, accepts: [{ scheme, network, amount, asset, payTo }], lastUpdated, metadata? }], pagination: { limit, offset, total } } — `amount` is in ATOMIC units (USDC 6-decimals: "10000" = $0.01), so convert before quoting a price to the user. PUBLIC: needs no API key, no wallet and spends nothing, so it is always safe to call. Filter with `type` (e.g. "http") and page with `limit`/`offset`. Then pass a chosen `resource` URL to x402_pay to actually buy it.

NameTypeReqDescription
facilitatorBaseUrlstringOverride the facilitator base URL (default https://ai.cryptoapis.io/x402/merchant). Useful against QA/local.
limitintegerMax results to return, 1-100 (default 20). The facilitator clamps out-of-range values rather than erroring.
offsetintegerHow many results to skip, for paging (default 0). Use with `pagination.total` from a previous call.
typestringFilter by resource type, e.g. "http". Omit to list every type.

No output schema declared.

No examples provided.

x402_pay ~1,026

Fetch an HTTP resource and, if it returns 402 Payment Required, pay it automatically with x402 and return the paid response. On a 402 it: parses the merchant's price, authorizes via the CryptoAPIs buyer /authorize, signs the payment LOCALLY (non-custodial — the key never leaves this process), and retries with the X-PAYMENT header. Returns { status, paid, body, settlement? }. This is for HTTP URLs — to pay a paid MCP TOOL on another server, use x402_pay_tool instead. Supported today: EVM (eip712, e.g. Base USDC) and Solana. Tron, UTXO (bitcoin/ltc/doge/dash/bch/zcash), Kaspa and XRP are UPCOMING — wired but not yet enabled, and paying on them returns a clear coming-soon (family_not_yet_supported) result. Set CRYPTOAPIS_API_KEY + X402_WALLET_ID once, plus the signing key(s) for the chain(s) you pay on: X402_PRIVATE_KEY (EVM hex), X402_SVM_SECRET (base58). A scheme with no configured key errors cleanly (never mis-signs). Env vars keep keys OUT of tool-call logs. Use allowedNetworks to restrict chains, maxAmount as a per-call spend cap, and allowedHosts to restrict WHICH SITES may be paid (a url outside the list is refused before any network call; set X402_ALLOWED_HOSTS in the MCP config to pin it outside the model's reach). SECURITY: this tool holds spending keys — use only in trusted local environments, and prefer pinning allowedHosts + maxAmount via env for unattended runs.

NameTypeReqDescription
allowedHostsarrayRestrict WHICH HOSTS may be paid, e.g. ["api.acme.com"] (a leading dot matches subdomains: ".acme.com"). A url outside the list is refused BEFORE any network call. Falls back to the X402_ALLOWED_HOST…
allowedNetworksarrayRestrict which CAIP-2 networks to pay on (e.g. ["eip155:8453"])
apiKeystringYour CryptoAPIs API key with the X402_BUYER feature (used only to call the buyer /authorize). Falls back to the CRYPTOAPIS_API_KEY env var — set it once and omit this.
bodystringRequest body (string; set content-type via headers if needed)
buyerBaseUrlstringOverride the buyer service base URL (default https://ai.cryptoapis.io/x402/buyer)
headersobjectExtra request headers
kaspaKeystringKaspa private key (hex, 32 bytes) — signs kaspa-transaction payments. Falls back to X402_KASPA_KEY.
maxAmountstringOptional safety cap: refuse to pay if the required atomic-unit amount exceeds this
methodstringHTTP method (default GET)
privateKeystringEVM private key (hex, 0x optional) — signs the eip712 (EVM) payment, and Tron by default. Falls back to X402_PRIVATE_KEY. SECURITY: trusted local environments only.
svmSecretstringSolana secret key, base58-encoded (64-byte keypair secret) — signs svm-transaction payments. Falls back to X402_SVM_SECRET.
tronKeystringTron private key (hex). Falls back to X402_TRON_KEY, then to privateKey/X402_PRIVATE_KEY (same secp256k1 curve).
urlstringyesThe (possibly paywalled) resource URL to fetch
utxoWifstringUTXO private key in WIF format — signs utxo-transaction payments (bitcoin/ltc/doge/dash/bch/zcash). Falls back to X402_UTXO_WIF.
walletIdstringThe CryptoAPIs buyer-service wallet RECORD ID (the id returned by POST /wallets) — NOT the on-chain address; passing an address returns wallet_not_found. Falls back to the X402_WALLET_ID env var. Cre…
xrpSeedstringXRP secret/seed (base58, e.g. s...) — signs xrp-transaction payments. Falls back to X402_XRP_SEED.

No output schema declared.

No examples provided.

x402_pay_tool ~710

Call a TOOL on another MCP server and, if that tool requires payment, pay it automatically with x402 and return the paid result. This is the MCP-transport twin of x402_pay: use x402_pay for an HTTP url, and THIS for a paid tool on another MCP server. On a challenge it reads the PaymentRequired (from structuredContent, falling back to content[0].text), authorizes via the CryptoAPIs buyer /authorize, signs LOCALLY (non-custodial — the key never leaves this process), and retries the tool call once with the payment in _meta["x402/payment"] (a raw object, no base64 — MCP carries structured JSON natively). Returns { paid, result, settlement? }; the settlement receipt comes back in _meta["x402/payment-response"]. The upstream server is launched over stdio for the call and shut down afterwards. Same credentials and keys as x402_pay: CRYPTOAPIS_API_KEY + X402_WALLET_ID, plus X402_PRIVATE_KEY (EVM) / X402_SVM_SECRET (Solana). Supported today: EVM (eip712) and Solana; Tron, UTXO, Kaspa and XRP return a clear coming-soon result. Use allowedNetworks and maxAmount as guardrails. SECURITY: this tool holds spending keys and launches the process you name — use only in trusted local environments.

NameTypeReqDescription
allowedNetworksarrayRestrict which CAIP-2 networks to pay on (e.g. ["eip155:8453"])
apiKeystringYour CryptoAPIs API key with the X402_BUYER feature (used only to call the buyer /authorize). Falls back to the CRYPTOAPIS_API_KEY env var.
argumentsobjectArguments to pass to that tool
buyerBaseUrlstringOverride the buyer service base URL (default https://ai.cryptoapis.io/x402/buyer)
kaspaKeystringKaspa private key (hex). Falls back to X402_KASPA_KEY.
maxAmountstringSafety cap: refuse to pay if the required atomic-unit amount exceeds this
privateKeystringEVM private key (hex, 0x optional) — signs the eip712 payment, and Tron by default. Falls back to X402_PRIVATE_KEY. SECURITY: trusted local environments only.
serverobjectyesThe upstream MCP server to call, launched over stdio. It is started for this call and shut down afterwards.
svmSecretstringSolana secret key, base58-encoded — signs svm-transaction payments. Falls back to X402_SVM_SECRET.
toolNamestringyesThe name of the tool to call on that server
tronKeystringTron private key (hex). Falls back to X402_TRON_KEY, then to privateKey/X402_PRIVATE_KEY.
utxoWifstringUTXO private key in WIF format. Falls back to X402_UTXO_WIF.
walletIdstringThe CryptoAPIs buyer-service wallet RECORD ID (from POST /wallets) — NOT the on-chain address. Falls back to the X402_WALLET_ID env var.
xrpSeedstringXRP secret/seed. Falls back to X402_XRP_SEED.

No output schema declared.

No examples provided.