Skip to main content
Glama

SwapEazi

Create a per-agent spend mandate

create_mandate

Create a spend mandate for an agent: per-payment cap, period cap, currencies, corridors, rails (bank, provider, stablecoin_wallet), optional cap on cost above the official rate, the person who approves, and an expiry. A router key is required. A person still approves every payment. The mandate does not send money.

Input Schema

NameRequiredDescriptionDefault
periodYesThe window max_per_period applies to: day, week or month.
agent_idYesYour own id for the agent this mandate covers, e.g. 'ap-agent-1'.
access_keyNoA router key (rk_...), if not sent as a Bearer header.
expires_atYesISO 8601, in the future.
rails_allowedYesRails the agent may use: bank, provider, stablecoin_wallet.
max_per_periodYes{ amount, currency }
max_per_paymentYes{ amount, currency }
corridors_allowedYese.g. USDT-ZAR
approver_person_idYesThe person who approves. An agent cannot approve alone.
currencies_allowedYesISO 4217 codes the agent may pay in, e.g. ['ZAR', 'USD'].
max_cost_above_official_pctNoOptional. Most a payment may cost above the official rate, in percent (e.g. 1.5); null for no cap.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / agent_id / description
      Added value: +"Your own id for the agent this mandate covers, e.g. 'ap-agent-1'."
    • addedInput schema / properties / currencies_allowed / description
      Added value: +"ISO 4217 codes the agent may pay in, e.g. ['ZAR', 'USD']."
    • addedInput schema / properties / max_cost_above_official_pct / description
      Added value: +"Optional. Most a payment may cost above the official rate, in percent (e.g. 1.5); null for no cap."
    • addedInput schema / properties / period / description
      Added value: +"The window max_per_period applies to: day, week or month."
    • addedInput schema / properties / rails_allowed / description
      Added value: +"Rails the agent may use: bank, provider, stablecoin_wallet."
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare the generic mutation profile (readOnly=false, destructive=false, idempotent=false); the description adds real context beyond that: a router key is required for auth, a human approver always signs off on payments, and the call itself moves no funds. The one gap is that it does not say whether re-creating a mandate for the same agent is rejected or overwrites, which matters given idempotentHint=false.

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 a single dense but front-loaded passage: the action comes first, then the field inventory, then two short constraint sentences. Nothing is redundant, though the mid-sentence parameter list reads as a laundry list and could have been trimmed since the schema already enumerates those fields.

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?

For an 11-parameter creation tool with no output schema, the description covers the essential facts an agent needs: what is created, that a router key is mandatory, that human approval is retained, and that no funds move. Return-value details are the only omission, and those are minor for a create call whose safety profile the annotations already cover.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already carries its own documentation, including the enum for period and the allowed rail values. The description's field list (caps, currencies, corridors, rails, cost-above-rate cap, approver, expiry) merely echoes those schema entries without adding format or constraint detail, so baseline 3 applies.

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 description opens with a specific verb and resource ('Create a spend mandate for an agent') and then enumerates the fields it governs, so an agent can immediately tell it apart from get_mandate or check_payment_against_mandate. The closing line 'The mandate does not send money' sharply delimits it from execution tools like run_payments or submit_payment.

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

Usage Guidelines3/5

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

Usage is only implied: the 'does not send money' clause tells the agent this is a setup step rather than a payment action, and the required router key hints at a precondition. However, there is no explicit statement of when to call this versus siblings such as get_mandate (read) or check_payment_against_mandate (verify), nor any note about updating an existing mandate.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources