Skip to main content
Glama

SwapEazi

Run a batch of cross-border payments: assess, assess, prepare

run_payments

Prepares a batch of cross-border payments for approval: validates each payee, prices each route and drafts each instruction for the business's own bank, provider or wallet. Send the payables (payables: a JSON list; file: a payout CSV or pain.001; or xero: a Xero bills reply) with source_currency. Each payment is verified (changed bank details against previous, duplicates, missing fields), assessed (route assessment_id with Rate Receipts: who published each figure, when it was read, its evidence type) and given an instruction for the business's own bank, provider or wallet (a CSV row, or an unsigned stablecoin transaction). Each is prepared, needs_attention (with the reason) or no_evidence. Returns run_id. An agent prepares; a named person approves. Never sends or moves money. A router key runs real payables; without one, sample: true returns the synthetic sample run. Same as POST /api/v1/payment-runs.

Input Schema

NameRequiredDescriptionDefault
fileNoInstead of payables: a payout CSV or pain.001 text.
sortNoYour chosen order for the routes: landed cost against the official rate, stated days to land, or the measured 7-day answer rate. It is your order, stated as yours; SwapEazi does not rank routes.
policyNo{ approver_role, material_threshold: { amount, currency }, agent_may_record_approval }
sampleNotrue: the built-in sample run (synthetic, labelled), no key needed.
payablesNo[{ reference, payee: { name, iban?, bic?, account_number?, routing_number?, branch_code?, country? }, amount, currency, due_date?, rail?: bank | provider | stablecoin, via?, wallet? }]
previousNoThe previous run's payables, for changed bank details and amount jumps. Not kept.
access_keyNoA router key (rk_...), if not sent as a Bearer header.
exclude_typesNoLeave out routes of these rail types. Each route left out is listed with the reason.
include_typesNoKeep only routes of these rail types. Each route left out is listed with the reason.
min_answer_rateNoPercent, 0 to 100: leave out routes whose measured 7-day answer rate is lower, or not measured (not enough reads). Each is listed with the reason.
source_currencyNoThe currency the business pays from, e.g. ZAR.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the three verification passes (changed bank details vs previous, duplicates, missing fields), that routes carry assessment_ids backed by Rate Receipts with publisher/timestamp/evidence type, the possible per-payment outcomes (prepared, needs_attention with reason, no_evidence), that it returns run_id, that 'previous' is not persisted, and that without a router key a labelled synthetic run is returned. It also states the critical safety boundary (never sends or moves money) that annotations alone (readOnlyHint=false, destructiveHint=false) cannot convey. This is exactly the extra context the annotations cannot supply.

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

Conciseness3/5

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

The pipeline is stated twice: first as 'validates each payee, prices each route and drafts each instruction', then re-expanded as 'verified ... assessed ... and given an instruction'. The second pass adds real detail (Rate Receipts, statuses), but the repetition costs space. Content is front-loaded reasonably, though the payload options appear before the core behaviour is established, and the title itself carries an obvious duplication ('assess, assess').

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

Completeness4/5

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

For an 11-parameter, nested-object, mutation-adjacent tool with no output schema, the description covers what an agent needs: input shapes, the run_id return, per-payment outcome states, and the sample-vs-real-key distinction. What it leaves out — approval handoff specifics and what downstream tools consume run_id — is largely obtainable from siblings such as approve_payment_run and payment_run_status.

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 the baseline is 3. The description adds only light framing beyond the schema — how payables/file/xero payloads are chosen and that source_currency accompanies them, plus that excluded routes are listed with reasons. It says nothing about policy, sort, min_answer_rate or access_key beyond what the schema already documents.

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

Purpose4/5

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

The description gives a specific verb and resource: it 'Prepares a batch of cross-border payments for approval', then enumerates the three internal steps (validate payees, price routes, draft instructions). It also explicitly corrects the misleading tool name by stating 'Never sends or moves money', so an agent will not confuse it with an actual disbursement call. It does not explicitly name the closest siblings (prepare_payment, submit_payment, approve_payment_run), so it stops short of a 5.

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

Usage Guidelines4/5

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

Clear usage context: supply payables, a file (payout CSV or pain.001) or a Xero reply along with source_currency, and 'A router key runs real payables; without one, sample: true returns the synthetic sample run.' The division of labour is spelled out — 'An agent prepares; a named person approves' — which implicitly routes approval to a sibling rather than this tool. No explicit when-not or named alternative tool, so not a 5.

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