Skip to main content

Veto CLI — one-command MCP setup for AI agent payment authorization.

Project description

Veto CLI

One-command setup for the Veto authorization layer — protect every payment your AI agent makes.

Veto is the policy and approval layer for AI agents that take real actions: x402 payments, Stripe Issuing transactions, on-chain transfers. The Veto CLI auto-configures Veto for any MCP-compatible client (Claude Desktop, Claude Code, Cursor, Zed, Continue) so your agent calls Veto before every transaction — and the transaction is allowed, denied, or escalated for human approval based on policies you define.

Install

pip install veto-cli

Requires Python 3.9+. No third-party dependencies — stdlib only.

Quickstart

# 1. Sign up at https://veto-ai.com to get an API key.
# 2. Auto-configure your MCP client:
veto init --api-key veto_test_xxxxxxxxxxxx

# 3. Verify the integration:
veto test

veto init detects which MCP clients you have installed (Claude Desktop, Cursor, etc.) and writes the Veto MCP server into their config. Restart the client and your agent now routes every payment through Veto.

Commands

Command What it does
veto init Auto-detect MCP clients on your machine and add Veto to each one's config
veto status [agent_id] Show your agent's current reputation tier and recent decision history
veto test [agent_id] Fire a synthetic test transaction to confirm the integration works
veto list List all agents linked to your Veto account
veto uninstall Remove Veto from MCP client configs (does not delete your account)
veto mcp Run the Veto MCP server in foreground (for debugging)

What Veto evaluates on every authorize call

Each transaction passes through an 8-step pipeline before approval:

  1. Pre-checks — agent suspended? amount sane?
  2. Policy enforcement — per-tx limit, daily/monthly caps, merchant allowlist/blocklist
  3. Prompt injection detection — 40 regex patterns over the action description
  4. Merchant fraud screening — known-fraud database, typosquatting (SequenceMatcher), suspicious TLDs
  5. Intent verification — does the action match the agent's stated purpose?
  6. Anomaly detection — amount spike (>3× rolling avg), velocity, merchant diversity
  7. LLM final verdict — Claude Sonnet reviews the case
  8. Reputation weighting — agent trust tier modulates final risk score

Output: approve | deny | escalate (with risk score 0.0–1.0 and a human-readable reason).

Configuration

The CLI stores state in ~/.veto/config.json (mode 0o600). It contains your API key and known agent IDs. No transaction data is stored locally.

By default the CLI talks to https://veto-ai.com. To point at a self-hosted Veto:

veto init --api-key XXX --base-url https://veto.your-company.com

Links

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veto_cli-0.1.1.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veto_cli-0.1.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file veto_cli-0.1.1.tar.gz.

File metadata

  • Download URL: veto_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for veto_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e4f25bd2564e2a61f2ebc2ff8e1eed0acbd11538f0ebc590446c27f5efa443f3
MD5 5b0e4e7142ca80c9b546c0447dc3f87a
BLAKE2b-256 e10d24b5601aeb266d3ac97ef3fa144761dbd46d2106efb7d0736978e215355a

See more details on using hashes here.

File details

Details for the file veto_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: veto_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for veto_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 305ac56ff8950855d1f1b37aeecd4777cc610fe6f12f7ec7c1ca6ad203f45395
MD5 d57907f7ea8dfbf3e6aa6ece3ee42dda
BLAKE2b-256 2f03b9aea4adee0b53c6b3fa37c203f1ca1392886ef10138513b493f72dc3784

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page