Budget-bound x402 payment wallet for AI agents — pays HTTP 402 URLs, capped locally. No backend.
Connect Runs on your machine
claude mcp add mcp -e PIPRAIL_PRIVATE_KEY=<PIPRAIL_PRIVATE_KEY> -e PIPRAIL_CHAIN=<PIPRAIL_CHAIN> -e PIPRAIL_CHAINS=<PIPRAIL_CHAINS> -e PIPRAIL_MAX_AMOUNT=<PIPRAIL_MAX_AMOUNT> -e PIPRAIL_MAX_TOTAL=<PIPRAIL_MAX_TOTAL> -e PIPRAIL_MAX_TOTAL_DENOM=<PIPRAIL_MAX_TOTAL_DENOM> -e PIPRAIL_MAX_PAYMENTS=<PIPRAIL_MAX_PAYMENTS> -e PIPRAIL_MAX_PAYMENTS_PER_WINDOW=<PIPRAIL_MAX_PAYMENTS_PER_WINDOW> -e PIPRAIL_WARN_AT_FRACTION=<PIPRAIL_WARN_AT_FRACTION> -e PIPRAIL_SPEND_LOG=<PIPRAIL_SPEND_LOG> -e PIPRAIL_EVENT_LOG=<PIPRAIL_EVENT_LOG> -e PIPRAIL_TOKENS=<PIPRAIL_TOKENS> -e PIPRAIL_SCHEMES=<PIPRAIL_SCHEMES> -- npx -y @piprail/[email protected]
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@piprail/[email protected]"
],
"env": {
"PIPRAIL_PRIVATE_KEY": "<PIPRAIL_PRIVATE_KEY>",
"PIPRAIL_CHAIN": "<PIPRAIL_CHAIN>",
"PIPRAIL_CHAINS": "<PIPRAIL_CHAINS>",
"PIPRAIL_MAX_AMOUNT": "<PIPRAIL_MAX_AMOUNT>",
"PIPRAIL_MAX_TOTAL": "<PIPRAIL_MAX_TOTAL>",
"PIPRAIL_MAX_TOTAL_DENOM": "<PIPRAIL_MAX_TOTAL_DENOM>",
"PIPRAIL_MAX_PAYMENTS": "<PIPRAIL_MAX_PAYMENTS>",
"PIPRAIL_MAX_PAYMENTS_PER_WINDOW": "<PIPRAIL_MAX_PAYMENTS_PER_WINDOW>",
"PIPRAIL_WARN_AT_FRACTION": "<PIPRAIL_WARN_AT_FRACTION>",
"PIPRAIL_SPEND_LOG": "<PIPRAIL_SPEND_LOG>",
"PIPRAIL_EVENT_LOG": "<PIPRAIL_EVENT_LOG>",
"PIPRAIL_TOKENS": "<PIPRAIL_TOKENS>",
"PIPRAIL_SCHEMES": "<PIPRAIL_SCHEMES>"
}
}
}
}
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@piprail/[email protected]"
],
"env": {
"PIPRAIL_PRIVATE_KEY": "<PIPRAIL_PRIVATE_KEY>",
"PIPRAIL_CHAIN": "<PIPRAIL_CHAIN>",
"PIPRAIL_CHAINS": "<PIPRAIL_CHAINS>",
"PIPRAIL_MAX_AMOUNT": "<PIPRAIL_MAX_AMOUNT>",
"PIPRAIL_MAX_TOTAL": "<PIPRAIL_MAX_TOTAL>",
"PIPRAIL_MAX_TOTAL_DENOM": "<PIPRAIL_MAX_TOTAL_DENOM>",
"PIPRAIL_MAX_PAYMENTS": "<PIPRAIL_MAX_PAYMENTS>",
"PIPRAIL_MAX_PAYMENTS_PER_WINDOW": "<PIPRAIL_MAX_PAYMENTS_PER_WINDOW>",
"PIPRAIL_WARN_AT_FRACTION": "<PIPRAIL_WARN_AT_FRACTION>",
"PIPRAIL_SPEND_LOG": "<PIPRAIL_SPEND_LOG>",
"PIPRAIL_EVENT_LOG": "<PIPRAIL_EVENT_LOG>",
"PIPRAIL_TOKENS": "<PIPRAIL_TOKENS>",
"PIPRAIL_SCHEMES": "<PIPRAIL_SCHEMES>"
}
}
}
}
{
"servers": {
"mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@piprail/[email protected]"
],
"env": {
"PIPRAIL_PRIVATE_KEY": "<PIPRAIL_PRIVATE_KEY>",
"PIPRAIL_CHAIN": "<PIPRAIL_CHAIN>",
"PIPRAIL_CHAINS": "<PIPRAIL_CHAINS>",
"PIPRAIL_MAX_AMOUNT": "<PIPRAIL_MAX_AMOUNT>",
"PIPRAIL_MAX_TOTAL": "<PIPRAIL_MAX_TOTAL>",
"PIPRAIL_MAX_TOTAL_DENOM": "<PIPRAIL_MAX_TOTAL_DENOM>",
"PIPRAIL_MAX_PAYMENTS": "<PIPRAIL_MAX_PAYMENTS>",
"PIPRAIL_MAX_PAYMENTS_PER_WINDOW": "<PIPRAIL_MAX_PAYMENTS_PER_WINDOW>",
"PIPRAIL_WARN_AT_FRACTION": "<PIPRAIL_WARN_AT_FRACTION>",
"PIPRAIL_SPEND_LOG": "<PIPRAIL_SPEND_LOG>",
"PIPRAIL_EVENT_LOG": "<PIPRAIL_EVENT_LOG>",
"PIPRAIL_TOKENS": "<PIPRAIL_TOKENS>",
"PIPRAIL_SCHEMES": "<PIPRAIL_SCHEMES>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
PIPRAIL_PRIVATE_KEYOptional, secret | Your wallet's private key/seed for the chosen chain. Optional: omit it to run read-only (discover/quote/register/budget/guide); set it to let the agent pay. Stays on your machine; the spend policy caps every payment. |
PIPRAIL_CHAINOptional | Chain to pay on (default: base). |
PIPRAIL_CHAINSOptional | Pay across several chains (instead of PIPRAIL_CHAIN): a comma-separated list, e.g. base,polygon,solana. Give each its own PIPRAIL_<CHAIN>_KEY (+ optional PIPRAIL_<CHAIN>_RPC_URL). The agent pays whichever chain a 402 asks for — the first listed that can settle — under one shared budget. |
PIPRAIL_MAX_AMOUNTOptional | Max spend per single payment, in token units (default: 0.10). |
PIPRAIL_MAX_TOTALOptional | Lifetime spend cap per token, in token units (default: 10.00). |
PIPRAIL_MAX_TOTAL_DENOMOptional | Cross-token GRAND TOTAL: one spend cap per denomination across every stablecoin and chain, e.g. USD:20.00,EUR:5.00. Not a price oracle — sums tokens of the same unit, each counted 1:1. Native coins are excluded. |
PIPRAIL_MAX_PAYMENTSOptional | Lifetime cap on the NUMBER of payments, across every chain + token (e.g. 100). |
PIPRAIL_MAX_PAYMENTS_PER_WINDOWOptional | Cap on the number of payments within PIPRAIL_WINDOW_SECONDS (a rolling rate limit; set PIPRAIL_WINDOW_SECONDS too). |
PIPRAIL_WARN_AT_FRACTIONOptional | Emit an early-warning event when spend crosses this fraction of any cap, e.g. 0.8 (80%). Needs PIPRAIL_EVENT_LOG to be visible. |
PIPRAIL_SPEND_LOGOptional | Path to a local append-only spend log. When set, the budget (lifetime, grand total, counts) SURVIVES a restart — hydrated from this file. No backend; you own the file. |
PIPRAIL_EVENT_LOGOptional | Mirror payment events (settled / declined / budget-threshold) as one-line JSON to 'stderr' or a file path — the operator's notification stream. Default: off. |
PIPRAIL_TOKENSOptional | Comma-separated allowed token symbols, plus the alias 'native' for the chain's coin (default: USDC). |
PIPRAIL_SCHEMESOptional | Comma-separated payment schemes to settle (default: onchain-proof). Add 'exact' (onchain-proof,exact) to also pay standard x402 servers GASLESS on EVM + Solana (method auto-selected). Add 'upto' to also pay metered x402 servers on EVM (Permit2): sign a MAX, the server settles the actual <= max. |
Details
| Package | @piprail/[email protected] (NPM, stdio) |
| First published | 9 Sep 2026 |
| Last updated | 9 Sep 2026 |
| Registry name | io.github.piprail/mcp |
More finance and crypto servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
