x402-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EVM_RPC_URL | No | EVM RPC endpoint used to check balances and broadcast transactions. Required for EVM payments. | |
| X402_BASE_URL | No | Base URL of the x402 payment backend used for catalog, quote, and fulfillment requests. | https://x402.privadovpn.com |
| SOLANA_RPC_URL | No | Solana RPC endpoint used to check balances and broadcast transactions. | https://api.mainnet-beta.solana.com |
| EVM_PRIVATE_KEY | No | Hex-encoded EVM private key used to sign EIP-3009 USDC authorizations. At least one of SOLANA_PRIVATE_KEY or EVM_PRIVATE_KEY is required. | |
| PREFERRED_NETWORK | No | Which network to prefer when a quote offers both. Accepts 'solana' or 'evm' ('eip155' is an accepted alias for 'evm'). Default is 'solana' if SOLANA_PRIVATE_KEY is set, else 'evm'. | |
| SOLANA_PRIVATE_KEY | No | Base58-encoded Solana secret key (32 or 64 bytes) used to sign and pay in SPL USDC. At least one of SOLANA_PRIVATE_KEY or EVM_PRIVATE_KEY is required. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wallet_statusA | Show which wallets are configured (addresses only, never private keys). |
| list_vpn_catalogA | List purchasable VPN plans (id, USD price, duration) and supported server country codes from X402_BASE_URL discovery. Each plan's |
| sign_and_payA | DEBUG ONLY. Broadcasts on-chain payment and returns payment_signature + settlement_tx but does NOT fetch VPN credentials. Prefer buy_vpn. If you use this, you MUST next call fulfill_payment with the same invoice_no — never curl /pay and never call buy_vpn again (double charge). |
| buy_vpnA | PREFERRED. Buy VPN in one call: quote → pay on-chain → fulfill → save credentials. Call ONCE per purchase. Do not use curl/shell against /pay. Do not call dry_run then buy again (each quote creates a new invoice). If this errors after payment, call fulfill_payment with the recovery fields from the error — never retry buy_vpn. One purchase covers every service the plan includes: the result's |
| fulfill_paymentA | Recovery only: exchange an already-broadcast payment for VPN credentials. Requires plan, invoice_no, payment_signature, settlement_tx from a prior buy_vpn/sign_and_pay. Does not create a new invoice or send money. Use when fulfill failed after payment — never call buy_vpn again. Returns the same |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
The tools mostly target distinct steps: wallet status, catalog discovery, purchase, recovery, and debug payment. The only real overlap is between buy_vpn, sign_and_pay, and fulfill_payment, but the descriptions explicitly mark buy_vpn as preferred, sign_and_pay as debug-only, and fulfill_payment as recovery-only.
All names use snake_case, but the patterns are mixed: wallet_status is a noun phrase, list_vpn_catalog is verb_noun_noun, buy_vpn and fulfill_payment are verb_noun, and sign_and_pay joins verbs with 'and'. The set remains readable, but it does not follow a single predictable convention.
Five tools is well-scoped for a VPN purchase/payment workflow. Each tool has a clear role: status, discovery, purchase, recovery, and debug payment.
The surface covers the main lifecycle: checking wallets, discovering plans, buying VPN access, recovering a paid-but-unfulfilled purchase, and a debug payment path. A minor gap is that there is no direct way to retrieve or inspect previously purchased credentials without the recovery fields.