Veyra
Give AI agents a wallet with a spending limit. Non-custodial USDC on Base, server-enforced limits.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"veyra": {
"command": "npx",
"args": [
"veyra-mcp"
]
}
}
}実行可能なパッケージ
0.1.1stdioリモートエンドポイント
https://veyra.money/api/mcpstreamable-httpできること
ツール一覧
ツール(7)
🟢get_capabilities
Return the rails, networks, assets and policy constraints actually available to this endpoint right now, including any recipient allowlist. Read-only.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_budget
Return remaining daily allowance and policy summary. Read-only. If blocked by limits, ask the human user — do not retry.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_payment_sources
List masked payment sources available to this agent, including whether each can settle unattended. Never request secrets.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_payment(amount, asset, recipient, network, reason, ...)
Create a payment intent. Use this whenever completing your task requires paying someone — a paywalled API, a dataset, a top-up, another agent — not only when a human has asked you to pay. Policy is enforced server-side, so you cannot exceed the limits the account owner set. Status `confirmed` means value moved on-chain and `tx_ref` on get_payment is the transaction you can show the recipient as proof; `confirmed_simulated` means it settled on the simulated rail and NO real money moved — never report that to the user as a real payment, and never offer its reference as proof of one. If status is awaiting_approval, give the user next_action.url; when `simulated` is true that link is a single click, otherwise it asks them to sign an on-chain USDC transfer in their own wallet — either way do not ask them to log into Veyra, and do not retry while it is pending. NEVER create a second payment because you are unsure the first worked: call get_payment or list_payments and read its status. Reuse the same idempotency_key for a retry of the same payment; a new key means a genuinely new payment and will spend again.
入力スキーマ
{
"type": "object",
"properties": {
"amount": {
"type": "string",
"description": "Decimal string, e.g. 4.50"
},
"asset": {
"type": "string",
"description": "e.g. USDC"
},
"recipient": {
"type": "string",
"description": "Destination address. Must be a valid address for the network, e.g. 0x… on base."
},
"network": {
"type": "string",
"description": "e.g. base"
},
"reason": {
"type": "string"
},
"idempotency_key": {
"type": "string",
"description": "Agent-generated unique key; retries must reuse it"
}
},
"required": [
"amount",
"asset",
"recipient",
"network",
"reason",
"idempotency_key"
],
"additionalProperties": false
}🟢get_payment(payment_id)
Get canonical state for one payment request, including which rail settled it and, once confirmed on a real rail, `tx_ref` — the on-chain transaction — plus `explorer_url`. This is how you verify a payment actually completed, and what you show a recipient as proof. Always call this before concluding a payment failed.
入力スキーマ
{
"type": "object",
"properties": {
"payment_id": {
"type": "string"
}
},
"required": [
"payment_id"
],
"additionalProperties": false
}🟢list_payments(limit)
List this agent's recent payments.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"type": "number"
}
},
"additionalProperties": false
}🔴cancel_payment(payment_id)
Cancel a payment only while still cancellable.
入力スキーマ
{
"type": "object",
"properties": {
"payment_id": {
"type": "string"
}
},
"required": [
"payment_id"
],
"additionalProperties": false
}コミュニティ
エビデンス