Hosted MCP server · #126 most used on Smithery

IBANforge

cammac/IBANforge

IBAN validation and bank-data tools for AI agents, ERP, invoicing and payroll workflows. IBANforge covers 89 countries and provides BIC/SWIFT lookup, Swiss clearing lookup, SEPA and country-risk indicators, payment-reference validation, postal-address checks and Swiss QR-bill checks. The current MCP service offers 11 tools, including batch validation, feedback and API-key requests. Connect to https://api.ibanforge.com/mcp or use the ibanforge-mcp npm package. Free access: 25 calls per day without a key, 25 per month with an anonymous key, or 200 per month after claiming a key by email. Paid credit packs, a Pro subscription and x402 payments are available. Batch validation consumes one unit per IBAN. Validation checks format and checksum; it does not confirm that an account exists or belongs to a beneficiary, and it does not perform beneficiary AML/KYC screening. Documentation: https://ibanforge.com/docs

Uses
4.2k
Tools
11
Runs
Hosted
Prompts
1
Listed
7mo ago

Get started

Add it to your agent

npx -y @smithery/cli@latest install cammac/IBANforge --client claude

Swap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.

What it can do

11 tools

validate_iban1 paramVerify whether a European IBAN is valid AND enrich it with bank, compliance and routing data. USE WHEN: the user mentions an IBAN, asks t…

Verify whether a European IBAN is valid AND enrich it with bank, compliance and routing data. USE WHEN: the user mentions an IBAN, asks to validate an IBAN and identify the issuing bank, asks to detect a typo in an IBAN, asks who the bank is behind an IBAN, asks whether an IBAN was issued by a traditional bank vs a neobank/EMI/virtual-IBAN provider, asks whether the recipient bank is reachable on SEPA rails, asks whether the recipient bank supports Verification of Payee (VoP, EU 2024/886), or pa

ParameterTypeDescription
ibanstringIBAN to validate (spaces/hyphens stripped automatically)
batch_validate_iban1 paramValidate up to 100 IBANs in a single call at $0.002 per IBAN (60% cheaper than calling validate_iban repeatedly at $0.005). USE WHEN: the…

Validate up to 100 IBANs in a single call at $0.002 per IBAN (60% cheaper than calling validate_iban repeatedly at $0.005). USE WHEN: the user pastes a list of IBANs, asks to clean a CSV/spreadsheet of bank accounts, asks to dedupe a customer database, asks to triage a payout list before sending, or whenever you would otherwise call validate_iban more than 2-3 times in a row. RETURNS: { results: [...same shape as validate_iban], count, valid_count }. COST: $0.002 per IBAN (free: 10 units/IP/day

ParameterTypeDescription
ibansarrayArray of IBANs (1-100)
lookup_bic1 paramResolve a BIC / SWIFT code into the underlying bank: name, country, city, LEI, and registered head-office address (where available). USE …

Resolve a BIC / SWIFT code into the underlying bank: name, country, city, LEI, and registered head-office address (where available). USE WHEN: the user already has a BIC/SWIFT (8 or 11 chars, alphanumeric, e.g., "UBSWCHZH80A", "DEUTDEFF") and asks which bank it belongs to, where the bank is, or its LEI for compliance/regulatory matching. DO NOT USE for IBAN inputs — call validate_iban instead, it resolves the BIC for you. BACKED BY: 121,000+ BIC entries (39,000+ LEI-enriched via GLEIF; additiona

ParameterTypeDescription
bicstringBIC/SWIFT code (8 or 11 chars)
check_compliance1 paramRun a full pre-flight compliance check on an IBAN before sending a SEPA / cross-border payment. USE WHEN: the user is about to send a pay…

Run a full pre-flight compliance check on an IBAN before sending a SEPA / cross-border payment. USE WHEN: the user is about to send a payment / payout / refund and wants to triage risk first, asks "is this IBAN safe to pay?", asks for sanctions screening, asks if a SEPA Instant transfer will succeed, or needs a numeric risk score for an internal payment-approval workflow. NOT A REGULATED AML/CFT PRODUCT — informational triage only. For regulated screening use Refinitiv, Acuris, or ComplyAdvantag

ParameterTypeDescription
ibanstringIBAN to check
validate_payment_reference3 paramsValidate a structured payment reference and, when an IBAN is supplied, decide whether the two may legally travel together. USE WHEN: asse…

Validate a structured payment reference and, when an IBAN is supplied, decide whether the two may legally travel together. USE WHEN: assembling a payment instruction from an invoice, a QR-bill or a remittance advice; whenever a Swiss IBAN and a reference appear together (the pairing rule is what most integrations get wrong); or when the user pastes an "RF..." string, a 27-digit number, a +++123/4567/89012+++ block, or asks whether a payment reference is correct. DO NOT USE to validate the IBAN i

ParameterTypeDescription
ibanstringOptional creditor IBAN — supply it to get the pairing verdict
referencestringThe reference as printed; spaces, slashes and the +++…+++ wrapper are stripped
reference_typestringOptional hint: rf | scor | qrr | ogm | vcs | viitenumero | kid | ocr
check_swiss_qr_bill1 paramCheck a Swiss QR-bill payload, the text a QR-bill's code carries (starts with SPC), rule by rule, each finding citing the SIX document it…

Check a Swiss QR-bill payload, the text a QR-bill's code carries (starts with SPC), rule by rule, each finding citing the SIX document it comes from. USE WHEN: an agent, an ERP or an accounting tool holds a scanned or generated QR-bill and must know before paying or issuing it whether it is well-formed, whether the reference type matches the IBAN (QRR needs a QR-IBAN, IID 30000-31999), and above all whether the creditor and debtor addresses are STRUCTURED (type S) or still COMBINED (type K): the

ParameterTypeDescription
payloadstringThe Swiss QR Code text with real line breaks: SPC, 0200, 1, IBAN, creditor (7 lines), ultimate creditor (7 empty lines), amount, currency, ultimate debtor (7 lines), reference type, reference, message
check_postal_address2 paramsCheck a structured ISO 20022 postal address against a payment rail's published address rules, rule by rule, each verdict citing the docum…

Check a structured ISO 20022 postal address against a payment rail's published address rules, rule by rule, each verdict citing the document it comes from. USE WHEN: assembling a payment instruction (pain.001, a Fedwire message, a T2 transfer) with a creditor or debtor address, to learn whether the rail accepts it BEFORE submitting. The November 2026 changes (SIC 20.11, Fedwire 16.11, T2 R2026.NOV) remove the fully unstructured address option — this check tells you whether an address survives th

ParameterTypeDescription
schemestringWhich rail's rules to check against: sps | hvps_plus | fedwire
addressobjectThe ISO 20022 PostalAddress under test, in ISO tag vocabulary (snake_cased).
lookup_ch_clearing1 paramResolve a Swiss BC-Nummer / IID (1 to 5 digits) into the underlying institution. USE WHEN: the user mentions a Swiss bank by BC-Nummer or…

Resolve a Swiss BC-Nummer / IID (1 to 5 digits) into the underlying institution. USE WHEN: the user mentions a Swiss bank by BC-Nummer or IID, pastes a CH or LI IBAN clearing code, asks routing details for a Swiss instant transfer (SIC, euroSIC), asks about QR-bill QR-IID resolution, or needs to classify a Swiss financial institution (bank vs PFS vs SIC-only participant). THE DEEPEST SWISS CLEARING DATA IN ANY PUBLIC API — full SIX BankMaster payment-rail participation (SIC, RTGS CHF, Instant Pa

ParameterTypeDescription
iidstringSwiss IID (1-5 digit number)
send_feedback7 paramsReport a problem or a need directly to the IBANforge operators: incorrect validation result, stale or missing BIC/bank data, latency, or …

Report a problem or a need directly to the IBANforge operators: incorrect validation result, stale or missing BIC/bank data, latency, or anything blocking you from using or PAYING for the service (missing network, unclear pricing, quota shape). USE WHEN: a result looks wrong, data you need is missing, or you hit a wall (quota, payment, capability) and want it fixed. This tool is free and does NOT count against the daily free-tier limit — it works even after the limit is reached. A human reads ev

ParameterTypeDescription
gotstringWhat you received instead (for data errors).
agentstringWhich agent/model is reporting, e.g. "claude-sonnet-5 via MCP".
notesstringWhat happened, what you needed, or what blocked you — free text.
contactstringWhere we may answer you (e-mail) — optional, reports can be anonymous.
endpointstringEndpoint or tool concerned, e.g. /v1/iban/batch.
expectedstringWhat you expected (for data errors).
error_typestringCategory of the report. Use "other" for product feedback, pricing/payment blockers or feature needs.
request_api_key2 paramsStart the process that gives this session its own free IBANforge API key, without any e-mail address and without leaving your conversatio…

Start the process that gives this session its own free IBANforge API key, without any e-mail address and without leaving your conversation. USE WHEN: you hit the daily free allowance, a call answers 402, or you are about to run more than a handful of validations. WHAT YOU MUST DO WITH THE RESULT: read `status` first — `ok` means a code was issued, anything else means no code exists and `display_to_human` tells you and your human what to do instead. On `ok`, show `display_to_human` to your human

ParameterTypeDescription
reasonstringOptional. What the key is for, shown to the human on the approval page.
client_namestringOptional. Who is asking, shown to the human on the approval page.
poll_api_key1 paramCollect the API key once a human has approved the request opened by request_api_key. USE WHEN: you have called request_api_key and shown …

Collect the API key once a human has approved the request opened by request_api_key. USE WHEN: you have called request_api_key and shown the code to your human. HOW TO CALL IT: leave `device_code` empty to reuse the last request from this session. The server usually waits up to thirty seconds before answering, and sometimes answers at once when it is busy — either way, calling it once per minute is enough, never in a tight loop. WHAT THE ANSWERS MEAN: `authorization_pending` is normal and means

ParameterTypeDescription
device_codestringOptional. Leave it empty to reuse the last request from this session.

Ready-made

Prompts

  • validate_and_explainValidate an IBAN and generate a human-readable explanation suitable for non-technical users.

Readable data

Resources

  • countriesList of all 89 countries supported by IBANforge with IBAN length, SEPA membership, VoP status, and country risk classification.
  • pricingPer-call pricing for IBANforge API endpoints (USDC on Base L2 via x402 protocol).