Tool surface
Every compliant bank2ai server registers the following MCP tools. Names, input schemas, and output schemas are fixed by the spec; servers MAY add vendor-specific tools but MUST NOT alter these.
| Tool | Purpose |
|---|---|
create-recipient | Create a new payment recipient. Account routing goes through the typed account_identifier discriminated union (IBAN, BBAN with country, country-specific account number, or alias). National identification, when known, uses the typed national_id sub-object. The recipient can then be used for transfers. |
execute-transfer | Execute a transfer the user has confirmed. Takes only the transfer_intent_id returned by prepare-transfer. The intent's amount, creditor, debtor, and rail are immutable: any change requires a new prepare call. Servers reject expired intents with a structured error. |
get-accounts | Get the user's bank accounts and cards. Returns each account with balances, identifiers (account number, plus IBAN/BBAN/BIC or masked PAN where the bank has them), holder, product, type, lifecycle status, and usage. Field shapes follow the Berlin Group PSD2 accountDetails model where they overlap. |
get-categories | Get transaction categories. Returns a list of categories that transactions can be classified into. |
get-recipients | Get saved payment recipients filtered by name. Returns matching recipients with their account details. |
get-transaction | Look up a single transaction by id and return every field the server can populate, including counterparty (with postalAddress for card entries) and the open properties bag of ISO 20022 / SEPA / card audit metadata (remittance text, end-to-end / mandate / creditor ids, purpose / transaction codes, MCC, masked PAN, etc.). Use this for audit / reconciliation flows; for compact lists prefer get-transactions with a verbosity cap. |
get-transactions | Get bank transactions. Returns a list of transactions with amounts, dates, descriptions, and categories. The verbosity parameter selects between a compact default (minimal) and full transactions view (full) that surfaces every optional ISO 20022 / Open Finance field the server can populate. |
get-transactions-summary | Get an aggregated summary of transactions, scoped to either income or expenses. Returns totals, counts, and averages, optionally grouped by category, month, or both. Filters mirror get-transactions: account, date, amount range, category ids. |
prepare-transfer | Prepare a money transfer on any supported rail (SEPA, SEPA Instant, SWIFT, domestic-IS, etc.). Validates the creditor, computes fees / FX / payee verification when applicable, and returns a transferIntentId plus a summary the user confirms. Does NOT execute; pass the intent id to execute-transfer. |