Veyra
Server Details
Give AI agents a wallet with a spending limit. Non-custodial USDC on Base, server-enforced limits.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- zapxlabs/veyra-mcp
- GitHub Stars
- 0
- Server Listing
- veyra-mcp
TDQS
Scored across 7 tools
Tools are mostly distinct: create/cancel/get/list for payments, plus budget and capabilities. get_payment vs list_payments could be confused but descriptions clarify state lookup vs history.
All tool names follow a consistent verb_noun pattern: create_payment, cancel_payment, get_payment, list_payments, get_budget, get_capabilities, list_payment_sources. No mixed conventions.
7 tools is well-scoped for a payment agent: create, cancel, get, list, sources, budget, capabilities. Each tool serves a clear purpose without bloat.
Core payment lifecycle is covered: create, cancel, get, list, and sources. Minor gaps like update/refund are absent, but the domain is payment creation and verification, which is well covered.
Available Tools
7 toolscancel_paymentCInspect
Cancel a payment only while still cancellable.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates cancellation is conditional, but it does not disclose whether the operation is destructive, whether it can be reversed, what errors occur if the payment is not cancellable, or any side effects. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. It is front-loaded with the action and resource, though it could earn a higher score by adding more useful detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and a single undocumented parameter, the description is too thin. It does not explain preconditions (how to know a payment is cancellable), failure behavior, or return value. An agent would likely need to guess or call the tool blindly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the payment_id parameter beyond its name. The schema only says it is a string, so the description adds no meaning about format, required context, or how to obtain a valid payment_id. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Cancel') and resource ('a payment'), and adds a scope condition ('only while still cancellable'). It is clear what the tool does, though it does not explicitly distinguish it from siblings like get_payment or list_payments beyond the obvious action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'only while still cancellable' implies a timing condition for use, but it does not explain how to determine cancellability, what happens if the payment is not cancellable, or when to prefer this over alternatives. Some guidance is present, but it is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | e.g. USDC | |
| amount | Yes | Decimal string, e.g. 4.50 | |
| reason | Yes | ||
| network | Yes | e.g. base | |
| recipient | Yes | Destination address. Must be a valid address for the network, e.g. 0x… on base. | |
| idempotency_key | Yes | Agent-generated unique key; retries must reuse it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: server-side policy limits, meaning of the three statuses (confirmed, confirmed_simulated, awaiting_approval), the warning never to present simulated payments as real, the next_action.url flow for pending payments, and the idempotency consequence that a new key spends again. This is a comprehensive behavioral contract for a money-moving tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: purpose, trigger conditions, policy constraint, status semantics, pending-state action, anti-double-payment rule, and idempotency usage. It is front-loaded with purpose and usage before behavioral details, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-stakes mutation tool with no output schema and no annotations. The description compensates by explaining exactly what the agent should do on each outcome (show next_action.url for awaiting_approval, never report confirmed_simulated as real, query get_payment when unsure). Nothing an agent needs to call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, above the 80% threshold, so the baseline is 3. The description adds genuine meaning beyond the schema for idempotency_key: reuse for retries of the same payment, while a new key 'means a genuinely new payment and will spend again' — a consequence the schema does not state. It does not add detail for other parameters, but the schema already covers them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource pair ('Create a payment intent') and expands the scope by enumerating realistic trigger cases: paywalled APIs, datasets, top-ups, other agents. It distinguishes itself from siblings by pointing the agent to get_payment/list_payments for status checks instead of creating a new payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('Use this whenever completing your task requires paying someone') and when not to use it ('do not retry while it is pending', 'NEVER create a second payment because you are unsure the first worked'). It names the alternatives (get_payment or list_payments) for verifying outcome, leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_budgetAInspect
Return remaining daily allowance and policy summary. Read-only. If blocked by limits, ask the human user — do not retry.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It explicitly declares 'Read-only' and discloses that calls may be blocked by limits, with clear no-retry guidance. It omits details like response format or units, but for a zero-input read-only tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core purpose is front-loaded, and every clause carries information: what it returns, that it is safe, and how to handle blocking.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the return value, the read-only nature, and the failure behavior. No output schema exists, so the description's mention of 'remaining daily allowance and policy summary' serves as the return contract; it is adequate though it could specify format or units. Overall complete for a 0-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and an empty input schema, there are no parameter semantics to document; the baseline is 4. The description adds meaning by clarifying what the tool returns, which is sufficient for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names the exact resource ('remaining daily allowance and policy summary'). It is clearly differentiated from the payment/capability siblings, so an agent can select it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence implies this is the tool to check available budget before payment operations, and the explicit instruction 'If blocked by limits, ask the human user — do not retry' gives actionable guidance for an edge case. It does not name specific sibling alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesAInspect
Return the rails, networks, assets and policy constraints actually available to this endpoint right now, including any recipient allowlist. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states that the call is read-only and that results reflect the current live state of the endpoint. It does not discuss authentication requirements, rate limits, or failure behavior, but for a zero-parameter read-only tool the safety profile is reasonably conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that names the returned resources and adds the key qualifiers 'actually available to this endpoint right now' and 'Read-only.' Every clause earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a zero-parameter read-only tool with no output schema, the description is largely complete: it identifies what is returned and the dynamic nature of the result. It could go slightly further by hinting at the response shape or typical use case, but nothing essential is missing for an agent deciding whether to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameter semantics to document. The description appropriately focuses on what the response reveals rather than on inputs, which is the correct division of labor for a no-argument endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names the exact resources: rails, networks, assets, and policy constraints. It also scopes the result to what is 'actually available to this endpoint right now,' which clearly distinguishes this capability-discovery tool from the payment-focused siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's purpose clear but does not explicitly state when to call it versus alternatives, such as using it before create_payment to discover available rails. Usage context is implied rather than spelled out, so no exclusions or alternative-routing guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paymentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose useful behavioral traits: it returns canonical state, includes tx_ref only once confirmed on a real rail, and includes explorer_url. It stops short of describing error behavior or side effects, but for a read tool the key behaviors are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and resource, then return details, then usage instruction. No filler or repetition; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with no output schema, the description tells the agent what it returns, what it proves, and when it must be called. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines payment_id as a required string with no description (0% coverage). The description never mentions payment_id directly; it relies on 'one payment request' to imply the argument. This is adequate for a single obvious parameter but doesn't explicitly compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb 'Get' and resource 'one payment request', then gives concrete return details (settling rail, tx_ref, explorer_url). Clearly differentiates from create/cancel/list siblings by framing itslef as the verification and proof tool, so an agent can select it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call: to verify a payment actually completed and as proof for a recipient, and instructs 'Always call this before concluding a payment failed.' It doesn't explicitly name alternatives or exclusions, but the context is clear enough to route the agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_paymentsCInspect
List this agent's recent payments.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'recent payments' without specifying ordering, pagination, default count, or whether it returns both successful and failed payments. No side effects or authentication requirements are mentioned. The read-only nature is implied but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it is under-specified. Conciseness is not the same as brevity; the sentence does not provide enough substance to be considered well-structured for an agent. It lacks front-loaded critical details like default behavior or scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single optional parameter, no output schema, and no annotations, the description is far too sparse. It doesn't explain what data is returned (fields, format), how many results are provided by default, or whether results are paginated. For a list operation, this is inadequate for an agent to call it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is 'limit' with type number, but schema description coverage is 0% and the description does not mention it at all. The agent has no guidance on what 'limit' does, its default, or its allowed range. The description adds zero value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action (list) and the resource (payments) with a scope ('this agent's recent payments'), which is clear enough to distinguish from get_payment (single payment) and list_payment_sources (different resource). However, it doesn't define what 'recent' means or specify any filtering criteria, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. It doesn't mention the optional 'limit' parameter or how this differs from get_payment or list_payment_sources. There is no context about intended use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_payment_sourcesAInspect
List masked payment sources available to this agent, including whether each can settle unattended. Never request secrets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states the tool returns masked sources and includes a guardrail ('Never request secrets'), which is valuable. The read-only nature is implied by 'List,' and the warning about secrets further clarifies expected behavior, though it does not detail error handling or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The first sentence states the core function and the second adds a critical safety rule. Every word earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is complete: it tells what is returned (masked payment sources, unattended-settlement flag) and the key constraint (never request secrets). An agent can select and invoke this tool correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, and the schema is empty with 100% coverage. The description correctly adds no parameter-specific details because there are none. According to the rubric, a no-parameter tool gets a baseline of 4, and the description doesn't introduce confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List') and resource ('payment sources'), and clarifies the scope ('available to this agent'). It includes the key qualifier 'masked' and the capability indication ('whether each can settle unattended'), making it clearly distinct from siblings like list_payments or get_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: when an agent needs to see available payment sources without requesting sensitive details. It does not explicitly name alternatives or exclusion conditions, but the sibling tool names and the 'masked' phrase provide clear context. It would benefit from an explicit reference to a sibling for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
cancel_payment - First observed
create_payment - First observed
get_budget - First observed
get_capabilities - First observed
get_payment - First observed
list_payment_sources - First observed
list_payments
Related MCP Connectors
Give your AI agent a spending limit: approval controls and single-use virtual cards.
Budget & cost control for AI agents — per-agent spend caps + rate limits before each call.
Wallet and payments for AI agents: auto-pay x402 APIs in USDC on XDC, within on-chain limits.
AI agent spending controls. Set limits, blocklists, and caps. Approve transactions from your phone.
Related MCP Servers
AlicenseAqualityDmaintenanceProvides a non-custodial USDC wallet on Base for AI agents, with human-in-the-loop approval for every payment.47 npmMIT- AlicenseAqualityBmaintenanceConnects AI agents to Bitcoin payment rails with owner-defined spending policies and limits.2656 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to check balances and send transactions across multiple blockchains with automatic spending limit protection and policy enforcement.3MIT
- AlicenseAqualityDmaintenanceEnables AI agents to manage USDC wallets on Solana, allowing them to send payments, create invoices, and access paid APIs within human-defined spending limits. It uses threshold signatures to provide agents with financial autonomy while ensuring secure oversight and transaction approval.36286 npm3Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.