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
Available components
Recent critical change
GHSA-vjh7-7g9h-fjfh affects this package (2 Aug 2026). See the changelog before you install this server.
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 11 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add cryptoapis-io-mcp-x402-pay -- npx -y @cryptoapis-io/mcp-x402-pay
codex mcp add cryptoapis-io-mcp-x402-pay -- npx -y @cryptoapis-io/mcp-x402-pay
{
"$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 mcp add cryptoapis-io-mcp-x402-pay --command npx --arg -y --arg @cryptoapis-io/mcp-x402-pay
mcp_servers:
cryptoapis-io-mcp-x402-pay:
command: "npx"
args: ["-y", "@cryptoapis-io/mcp-x402-pay"] {
"mcpServers": {
"cryptoapis-io-mcp-x402-pay": {
"command": "npx",
"args": [
"-y",
"@cryptoapis-io/mcp-x402-pay"
]
}
}
} 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.
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.
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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. |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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 | yes | 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. |
No output schema declared.
No examples provided.