MCP server for agent payments

Give your AI agent a wallet with a spending limit.

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 source

Install

One line, any MCP host

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

Three bands, enforced by the server

Under auto-max

Executes from a capped on-chain allowance you granted. The token contract enforces the cap.

In the ask band

The agent gets a one-time link. You approve in your own wallet. Veyra verifies the receipt.

Over the limits

Blocked, with a reason the agent can relay. Daily caps and the recipient allowlist apply throughout.

Tools

What the agent can call

ToolPurpose
get_capabilitiesRails, networks, assets, limits and allowlist in force right now
get_budgetDaily limit, spent today, per-payment limit, auto and ask bands
list_payment_sourcesMasked sources and whether each can settle unattended
create_paymentCreate a payment intent; the result says what the policy decided
get_payment / list_payments / cancel_paymentTrack and cancel

Trust

Control plane, not custody

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.