x402 pay tools for MCP clients, plus a `buy` command: read the offer, consent, pay. Starknet, Base.
Connect Runs on your machine
claude mcp add pay-mcp -e STARKNET_RPC_URL=<STARKNET_RPC_URL> -e PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS=<PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS> -e PAY_MCP_SEPOLIA_PRIVATE_KEY=<PAY_MCP_SEPOLIA_PRIVATE_KEY> -e PAY_MCP_STANDARD_X402_PAYEES=<PAY_MCP_STANDARD_X402_PAYEES> -e PAY_MCP_STANDARD_X402_MAX_WEI=<PAY_MCP_STANDARD_X402_MAX_WEI> -e PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS=<PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS> -e PAY_MCP_STANDARD_X402_PRIVATE_KEY=<PAY_MCP_STANDARD_X402_PRIVATE_KEY> -e PAY_MCP_EVM_KEYSTORE_PATH=<PAY_MCP_EVM_KEYSTORE_PATH> -e PAY_MCP_EVM_PASSWORD_PATH=<PAY_MCP_EVM_PASSWORD_PATH> -e PAY_MCP_EVM_NETWORKS=<PAY_MCP_EVM_NETWORKS> -e PAY_MCP_EVM_PAYEES=<PAY_MCP_EVM_PAYEES> -e PAY_MCP_EVM_MAX_PER_PAYMENT=<PAY_MCP_EVM_MAX_PER_PAYMENT> -e PAY_MCP_EVM_MAX_PER_SESSION=<PAY_MCP_EVM_MAX_PER_SESSION> -e PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND=<PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND> -e PAY_MCP_EVM_ASSETS=<PAY_MCP_EVM_ASSETS> -- npx -y @vauban-pay/[email protected]
{
"mcpServers": {
"pay-mcp": {
"command": "npx",
"args": [
"-y",
"@vauban-pay/[email protected]"
],
"env": {
"STARKNET_RPC_URL": "<STARKNET_RPC_URL>",
"PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS": "<PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS>",
"PAY_MCP_SEPOLIA_PRIVATE_KEY": "<PAY_MCP_SEPOLIA_PRIVATE_KEY>",
"PAY_MCP_STANDARD_X402_PAYEES": "<PAY_MCP_STANDARD_X402_PAYEES>",
"PAY_MCP_STANDARD_X402_MAX_WEI": "<PAY_MCP_STANDARD_X402_MAX_WEI>",
"PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS": "<PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS>",
"PAY_MCP_STANDARD_X402_PRIVATE_KEY": "<PAY_MCP_STANDARD_X402_PRIVATE_KEY>",
"PAY_MCP_EVM_KEYSTORE_PATH": "<PAY_MCP_EVM_KEYSTORE_PATH>",
"PAY_MCP_EVM_PASSWORD_PATH": "<PAY_MCP_EVM_PASSWORD_PATH>",
"PAY_MCP_EVM_NETWORKS": "<PAY_MCP_EVM_NETWORKS>",
"PAY_MCP_EVM_PAYEES": "<PAY_MCP_EVM_PAYEES>",
"PAY_MCP_EVM_MAX_PER_PAYMENT": "<PAY_MCP_EVM_MAX_PER_PAYMENT>",
"PAY_MCP_EVM_MAX_PER_SESSION": "<PAY_MCP_EVM_MAX_PER_SESSION>",
"PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND": "<PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND>",
"PAY_MCP_EVM_ASSETS": "<PAY_MCP_EVM_ASSETS>"
}
}
}
}
{
"mcpServers": {
"pay-mcp": {
"command": "npx",
"args": [
"-y",
"@vauban-pay/[email protected]"
],
"env": {
"STARKNET_RPC_URL": "<STARKNET_RPC_URL>",
"PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS": "<PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS>",
"PAY_MCP_SEPOLIA_PRIVATE_KEY": "<PAY_MCP_SEPOLIA_PRIVATE_KEY>",
"PAY_MCP_STANDARD_X402_PAYEES": "<PAY_MCP_STANDARD_X402_PAYEES>",
"PAY_MCP_STANDARD_X402_MAX_WEI": "<PAY_MCP_STANDARD_X402_MAX_WEI>",
"PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS": "<PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS>",
"PAY_MCP_STANDARD_X402_PRIVATE_KEY": "<PAY_MCP_STANDARD_X402_PRIVATE_KEY>",
"PAY_MCP_EVM_KEYSTORE_PATH": "<PAY_MCP_EVM_KEYSTORE_PATH>",
"PAY_MCP_EVM_PASSWORD_PATH": "<PAY_MCP_EVM_PASSWORD_PATH>",
"PAY_MCP_EVM_NETWORKS": "<PAY_MCP_EVM_NETWORKS>",
"PAY_MCP_EVM_PAYEES": "<PAY_MCP_EVM_PAYEES>",
"PAY_MCP_EVM_MAX_PER_PAYMENT": "<PAY_MCP_EVM_MAX_PER_PAYMENT>",
"PAY_MCP_EVM_MAX_PER_SESSION": "<PAY_MCP_EVM_MAX_PER_SESSION>",
"PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND": "<PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND>",
"PAY_MCP_EVM_ASSETS": "<PAY_MCP_EVM_ASSETS>"
}
}
}
}
{
"servers": {
"pay-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@vauban-pay/[email protected]"
],
"env": {
"STARKNET_RPC_URL": "<STARKNET_RPC_URL>",
"PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS": "<PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS>",
"PAY_MCP_SEPOLIA_PRIVATE_KEY": "<PAY_MCP_SEPOLIA_PRIVATE_KEY>",
"PAY_MCP_STANDARD_X402_PAYEES": "<PAY_MCP_STANDARD_X402_PAYEES>",
"PAY_MCP_STANDARD_X402_MAX_WEI": "<PAY_MCP_STANDARD_X402_MAX_WEI>",
"PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS": "<PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESS>",
"PAY_MCP_STANDARD_X402_PRIVATE_KEY": "<PAY_MCP_STANDARD_X402_PRIVATE_KEY>",
"PAY_MCP_EVM_KEYSTORE_PATH": "<PAY_MCP_EVM_KEYSTORE_PATH>",
"PAY_MCP_EVM_PASSWORD_PATH": "<PAY_MCP_EVM_PASSWORD_PATH>",
"PAY_MCP_EVM_NETWORKS": "<PAY_MCP_EVM_NETWORKS>",
"PAY_MCP_EVM_PAYEES": "<PAY_MCP_EVM_PAYEES>",
"PAY_MCP_EVM_MAX_PER_PAYMENT": "<PAY_MCP_EVM_MAX_PER_PAYMENT>",
"PAY_MCP_EVM_MAX_PER_SESSION": "<PAY_MCP_EVM_MAX_PER_SESSION>",
"PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND": "<PAY_MCP_EVM_I_ACCEPT_MAINNET_SPEND>",
"PAY_MCP_EVM_ASSETS": "<PAY_MCP_EVM_ASSETS>"
}
}
}
}
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 |
|---|---|
STARKNET_RPC_URLOptional | Starknet RPC endpoint. Optional. The buy command contacts no node unless you name one (a Starknet mainnet node; the chain it serves must then be the offer's). The chain-reading tools default to a public node not operated by Vauban. |
PAY_MCP_SEPOLIA_ACCOUNT_ADDRESSOptional | Starknet Sepolia account address for make_payment signer mode. Optional; without it make_payment uses the sponsored mode, which calls the sponsor over the network and settles a real Sepolia transfer it funds. |
PAY_MCP_SEPOLIA_PRIVATE_KEYOptional, secret | Private key for that account. Optional; never required to try the tools. |
PAY_MCP_STANDARD_X402_PAYEESOptional | Standard x402 path (Starknet): comma-separated payTo addresses pay_for_resource may pay. Empty pays nobody (fail closed). * pays any payee: avoid it. |
PAY_MCP_STANDARD_X402_MAX_WEIOptional | Standard x402 path: cap on one payment in atomic units (default 0.1 STRK). |
PAY_MCP_STANDARD_X402_ACCOUNT_ADDRESSOptional | Standard x402 path: a signer of its own (falls back to PAY_MCP_SEPOLIA_*). |
PAY_MCP_STANDARD_X402_PRIVATE_KEYOptional, secret | Private key for that account. Optional. |
PAY_MCP_EVM_KEYSTORE_PATHOptional | EVM path: path to your Web3 Secret Storage v3 keystore. Never a key in the environment. |
PAY_MCP_EVM_PASSWORD_PATHOptional | EVM path: path to the file holding that keystore's password. |
PAY_MCP_EVM_NETWORKSOptional | EVM path: comma-separated CAIP-2 networks pay_for_resource may pay on, e.g. eip155:84532. Empty pays nothing (fail closed). |
PAY_MCP_EVM_PAYEESOptional | EVM path: comma-separated payTo addresses pay_for_resource may pay. Empty pays nobody (fail closed). * pays any payee, up to the session cap: avoid it. |
PAY_MCP_EVM_MAX_PER_PAYMENTOptional | EVM path: cap on one payment, in atomic units of the asset (1000000 = 1 USDC). No default: unset refuses. |
PAY_MCP_EVM_MAX_PER_SESSIONOptional | EVM path: cap on the total value of the signed authorizations this process hands over, per network and asset, never credited back. No default: unset refuses. |
PAY_MCP_EVM_I_ACCEPT_MAINNET_SPENDOptional | EVM path: comma-separated CAIP-2 value networks you consent to spend real money on, each named (e.g. eip155:8453). Required for any network other than Base Sepolia and Ethereum Sepolia. |
PAY_MCP_EVM_ASSETSOptional | EVM path: comma-separated <CAIP-2>/<token address> entries payable. Default: the network's known USDC only. |
Details
| Package | @vauban-pay/[email protected] (NPM, stdio) |
| First published | 23 Oct 2026 |
| Last updated | 23 Oct 2026 |
| Registry name | tech.vauban/pay-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
