MCP server for agent payments
Connect a wallet you already own, set what an agent may spend, and hand it one MCP endpoint. It pays in USDC on Base on its own, never past your limits, never with your keys.
Start free Read the sourceInstall
claude mcp add --transport http veyra https://veyra.money/api/mcp \ --header "Authorization: Bearer veyra_..."
{
"mcpServers": {
"veyra": {
"url": "https://veyra.money/api/mcp",
"headers": { "Authorization": "Bearer veyra_..." }
}
}
}export VEYRA_TOKEN=veyra_... codex mcp add veyra --url https://veyra.money/api/mcp --bearer-token-env-var VEYRA_TOKEN
{
"mcpServers": {
"veyra": {
"command": "npx",
"args": ["-y", "veyra-mcp"],
"env": { "VEYRA_TOKEN": "veyra_..." }
}
}
}npm install veyra-mcp
import { VeyraClient, idempotencyKey } from "veyra-mcp";
const veyra = new VeyraClient({ token: process.env.VEYRA_TOKEN! });
const payment = await veyra.createPayment({
amount: "1.25", recipient: "0x…", reason: "500 API calls",
idempotency_key: idempotencyKey(),
});How it decides
Executes from a capped on-chain allowance you granted. The token contract enforces the cap.
The agent gets a one-time link. You approve in your own wallet. Veyra verifies the receipt.
Blocked, with a reason the agent can relay. Daily caps and the recipient allowlist apply throughout.
Tools
| Tool | Purpose |
|---|---|
get_capabilities | Rails, networks, assets, limits and allowlist in force right now |
get_budget | Daily limit, spent today, per-payment limit, auto and ask bands |
list_payment_sources | Masked sources and whether each can settle unattended |
create_payment | Create a payment intent; the result says what the policy decided |
get_payment / list_payments / cancel_payment | Track and cancel |
Trust
Veyra never holds funds. Above your auto-approve limit you sign every transfer yourself. Within it, a capped ERC-20 allowance does the work and you can revoke it any time. A simulated rail lets you wire everything up before touching real money, and it is labelled as simulated everywhere. Read exactly what you are trusting.