# io.github.CryptoAPIs-io/mcp-x402-pay (npm · @cryptoapis-io/mcp-x402-pay)

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

- Trust score: 0/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-10

> **Recent critical change**: GHSA-vjh7-7g9h-fjfh affects this package (2026-08-02). See the changelog below before you install this server.

## Components

- npm · `@cryptoapis-io/mcp-x402-pay`: 0/100 (this document), [markdown](https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay.md), [page](https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay)

## Channel facts

- Registry: `npm`
- Package: `@cryptoapis-io/mcp-x402-pay`
- Version: `0.4.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-10.

- **Supply Chain Security**: 73/100
  - No malware found by supply-chain analysis.
  - CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0.
  - No install/post-install scripts declared.
  - Dependency health was assessed across the 261 of 268 dependencies we could resolve, so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 48/100
  - AI-judged instruction clarity (good).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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

### Claude

```bash
claude mcp add cryptoapis-io-mcp-x402-pay -- npx -y @cryptoapis-io/mcp-x402-pay
```

### Codex

```bash
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
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cryptoapis-io-mcp-x402-pay --command npx --arg -y --arg @cryptoapis-io/mcp-x402-pay
```

### Hermes

```yaml
mcp_servers:
  cryptoapis-io-mcp-x402-pay:
    command: "npx"
    args: ["-y", "@cryptoapis-io/mcp-x402-pay"]
```

### Other

```json
{
  "mcpServers": {
    "cryptoapis-io-mcp-x402-pay": {
      "command": "npx",
      "args": [
        "-y",
        "@cryptoapis-io/mcp-x402-pay"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-06 (score 0, 0)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] 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

### 2026-08-02 (score 0, −21)

- [critical regression] GHSA-vjh7-7g9h-fjfh affects this package: high
- [critical regression] Known CVEs: unverified → fail
- [critical regression] Score status: scored → failed
- [security regression] Provenance: unverified → fail
- [security improvement] 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.
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] 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

### 2026-08-01 (score 21, +16)

- [security improvement] 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.
- [functional improvement] 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.

### 2026-07-31 (score 5, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, 0)

- [functional regression] Security disclosure: unverified → fail
- [functional] Package version: 0.3.0 → 0.4.0

### 2026-07-29 (score 6, −18)

- [security regression] Malware scan: pass → unverified
- [functional regression] 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

### 2026-07-28 (score 24, −1)

- [functional regression] 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.

### 2026-07-27 (score 25)

First indexed and scored.

## MCP tools (3)

### `x402_pay` (~1026 tokens)

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.

Input parameters:

- `allowedHosts` (array): Restrict 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…
- `allowedNetworks` (array): Restrict which CAIP-2 networks to pay on (e.g. ["eip155:8453"])
- `apiKey` (string): Your 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.
- `body` (string): Request body (string; set content-type via headers if needed)
- `buyerBaseUrl` (string): Override the buyer service base URL (default https://ai.cryptoapis.io/x402/buyer)
- `headers` (object): Extra request headers
- `kaspaKey` (string): Kaspa private key (hex, 32 bytes) — signs kaspa-transaction payments. Falls back to X402_KASPA_KEY.
- `maxAmount` (string): Optional safety cap: refuse to pay if the required atomic-unit amount exceeds this
- `method` (string): HTTP method (default GET)
- `privateKey` (string): EVM 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.
- `svmSecret` (string): Solana secret key, base58-encoded (64-byte keypair secret) — signs svm-transaction payments. Falls back to X402_SVM_SECRET.
- `tronKey` (string): Tron private key (hex). Falls back to X402_TRON_KEY, then to privateKey/X402_PRIVATE_KEY (same secp256k1 curve).
- `url` (string, required): The (possibly paywalled) resource URL to fetch
- `utxoWif` (string): UTXO private key in WIF format — signs utxo-transaction payments (bitcoin/ltc/doge/dash/bch/zcash). Falls back to X402_UTXO_WIF.
- `walletId` (string): The 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…
- `xrpSeed` (string): XRP secret/seed (base58, e.g. s...) — signs xrp-transaction payments. Falls back to X402_XRP_SEED.

### `x402_discover` (~353 tokens)

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.

Input parameters:

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

### `x402_pay_tool` (~710 tokens)

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.

Input parameters:

- `allowedNetworks` (array): Restrict which CAIP-2 networks to pay on (e.g. ["eip155:8453"])
- `apiKey` (string): Your CryptoAPIs API key with the X402_BUYER feature (used only to call the buyer /authorize). Falls back to the CRYPTOAPIS_API_KEY env var.
- `arguments` (object): Arguments to pass to that tool
- `buyerBaseUrl` (string): Override the buyer service base URL (default https://ai.cryptoapis.io/x402/buyer)
- `kaspaKey` (string): Kaspa private key (hex). Falls back to X402_KASPA_KEY.
- `maxAmount` (string): Safety cap: refuse to pay if the required atomic-unit amount exceeds this
- `privateKey` (string): EVM private key (hex, 0x optional) — signs the eip712 payment, and Tron by default. Falls back to X402_PRIVATE_KEY. SECURITY: trusted local environments only.
- `server` (object, required): The upstream MCP server to call, launched over stdio. It is started for this call and shut down afterwards.
- `svmSecret` (string): Solana secret key, base58-encoded — signs svm-transaction payments. Falls back to X402_SVM_SECRET.
- `toolName` (string, required): The name of the tool to call on that server
- `tronKey` (string): Tron private key (hex). Falls back to X402_TRON_KEY, then to privateKey/X402_PRIVATE_KEY.
- `utxoWif` (string): UTXO private key in WIF format. Falls back to X402_UTXO_WIF.
- `walletId` (string): The CryptoAPIs buyer-service wallet RECORD ID (from POST /wallets) — NOT the on-chain address. Falls back to the X402_WALLET_ID env var.
- `xrpSeed` (string): XRP secret/seed. Falls back to X402_XRP_SEED.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay#diagnostics

## Score history

- 2026-08-10: 0
- 2026-08-09: 0
- 2026-08-08: 0
- 2026-08-07: 0
- 2026-08-06: 0
- 2026-08-05: 0
- 2026-08-04: 0
- 2026-08-03: 0
- 2026-08-02: 0
- 2026-08-01: 21
- 2026-07-31: 5
- 2026-07-30: 6
- 2026-07-29: 6
- 2026-07-28: 24
- 2026-07-27: 25

## Links

- npm package: https://www.npmjs.com/package/@cryptoapis-io/mcp-x402-pay
- Socket report: https://socket.dev/npm/package/@cryptoapis-io/mcp-x402-pay
- Repository: https://github.com/CryptoAPIs-io/cryptoapis-mcp-x402-pay
- Changelog RSS feed: https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay.xml
- Changelog JSON feed: https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay.json
- HTML version of this page: https://verifymcp.io/servers/cryptoapis-io-mcp-x402-pay/cryptoapis-io-mcp-x402-pay
