Skip to main content
Glama
dinggi5

Kura

request_payment

Requests a payment from the user via a wallet approval popup; the transaction is sent only after the user confirms with their password.

Instructions

Asks the user to make a payment. The wallet app opens an approval window, and the payment is only sent once the user approves it with their password (it waits up to 5 minutes). The one exception is autopay, which the user turns on themselves — only then can a payment be approved automatically, and only within an unlocked session, a small limit, and a trusted address. Arguments: to (recipient address), amount (decimal string), token (USDC by default, or ETH), memo (what the payment is for — the user reads it to decide, so always fill it in), and optionally agent_id (the recipient's ERC-8004 number, if a service told you one — the wallet then shows the user whether the address matches that agent's registered wallet). Per-payment and daily limits and the emergency lock are enforced by the app. Never send a password as an argument — the user types it in the app. Returns: status (approved/rejected/failed), tx_hash, and an explorer link.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address (42 characters, starting with 0x).
memoNoWhat the payment is for — the user reads this in the approval window, so fill it in.
tokenNoToken: "USDC" (default) or "ETH".
amountYesAmount as a decimal string, for example "1.5".
agent_idNoOptional: the recipient's ERC-8004 agent number, if you know it from the service's own documentation or agent card. The wallet reads that agent's on-chain record and tells the user whether the address you are paying is the one registered for that agent. A mismatch is the useful part — a match is not proof of anything, since anyone can register. Leave it out if you don't know it; a wrong number just produces a "no such agent" note.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.0
    • addedInput schema / properties / agent_id
      Added value: +{
      +  "default": null,
      +  "description": "Optional: the recipient's ERC-8004 agent number, if you know it from the service's own\ndocumentation or agent card. The wallet reads that agent's on-chain record and tells the\nuser whether the address you are paying is the one registered for that agent. A mismatch\nis the useful part — a match is not proof of anything, since anyone can register.\nLeave it out if you don't know it; a wrong number just produces a \"no such agent\" note.",
      +  "format": "uint64",
      +  "minimum": 0,
      +  "nullable": true,
      +  "type": "integer"
      +}
  2. First observedv0.2.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden of explaining side effects cell. It discloses the approval window, the 5-minute wait, the autopay exception, app-enforced per-payment and emergency-lock limits, and the security-relevant fact that passwords must never be supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core action before moving into details.example. The parameter walk-through is efficient, though the long middle sentence about autopay could be slightly better structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, yet the description states the return shape: status, tx hash, and explorer link. Context such as user-approval flow, timeouts, limits, autopay exceptions, and parameter usage is all present, making the tool safely callable without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is high, the description adds meaning beyond parameter names: token defaults to USDC, amount is a decimal string, memo is user-facing, and agent_id is used to verify the recipient's registered wallet address. It also tells the agent that password is not a valid argument.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence, 'Asks the user to make a payment,' clearly identifies the tool's action and target, and the rest of the description clarifies that it initiates a user-approved payment rather than sending funds directly. It is unambiguous and distinct enough from the sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit operational guidance: always fill in the memo because the user reads it, supply agent_id only if a service provided it, and never pass a password as an argument. It also clarifies when automatic approval is possible versus when user approval is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.