Skip to main content
Glama

Server Details

Pre-payout IBAN screening for AI agents: validation, sanctions, Swiss clearing, risk scoring

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cammac-creator/ibanforge
GitHub Stars
3
Server Listing
ibanforge

Available Tools

9 tools
batch_validate_ibanBatch Validate IBANsA
Read-onlyIdempotent
Inspect

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 on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibansYesArray of IBANs (1-100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of IBANs processed.
resultsYesOne result per input IBAN, in the same order. Same shape as validate_iban.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the operation as read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond that: detailed cost per IBAN, free tier limits, the exact return shape ({ results, count, valid_count }), and a note that results match validate_iban's shape. No contradictions with annotations.

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 longer than average but well-structured with clear 'USE WHEN', 'RETURNS', and 'COST' sections. Every sentence contributes either usage guidance, return details, or pricing. The cost explanation is a bit detailed but relevant for decision-making. It is efficient despite the length.

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?

Combined with the output schema and annotations, the description provides everything needed to call the tool correctly: purpose, batch limit, trigger conditions, return shape, and cost considerations. There are no missing pieces that would cause an agent to misuse it.

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?

The input schema already fully describes the 'ibans' parameter as an array of 1-100 strings (100% coverage). The description repeats the 'up to 100' limit but does not add format, examples, or edge-case guidance beyond what the schema provides. This meets the baseline of 3 for high schema coverage.

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 states a specific verb ('Validate'), a resource ('IBANs'), and a clear batch constraint ('up to 100 IBANs in a single call'). It also distinguishes itself from the sibling validate_iban by highlighting the batch nature and cost advantage, so an agent can immediately tell it apart.

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?

Provides explicit 'USE WHEN' scenarios: pasting a list, cleaning a CSV/spreadsheet, deduping a customer database, triaging a payout list. It also gives a concrete decision rule: use instead of validate_iban when calling it more than 2-3 times in a row, and notes the cost difference. This fully covers when-to-use and alternatives.

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

check_complianceCompliance CheckA
Read-onlyIdempotent
Inspect

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 ComplyAdvantage. CHECKS: IBAN validity + sanctions (OFAC list, FATF jurisdictions) + SEPA Instant reachability + VoP (EU 2024/886) participant. RETURNS: the full validate enrichment plus a compliance object with risk_score (0-100, 0 = safest), risk_level (low/medium/elevated/high/critical), sanctions matched_lists + fatf_status, reachability, vop status, and flags[] (e.g. sanctioned_country, fatf_grey_list, emi_issuer, no_vop). COST: $0.02 per call (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanYesIBAN to check

Output Schema

ParametersJSON Schema
NameRequiredDescription
bicNo
ibanYes
metaYes
sepaNo
errorNo
validYes
issuerNo
countryNo
cost_usdcYesWhat THIS call was billed. Zero on the free MCP tier.
complianceYes
next_stepsNoOrdered advice derived from THIS result: what blocks a payment first, what merely enriches it after. Branch on `code`, never on the prose. `because` names the field that produced the step so the advice is auditable. Empty for an IBAN that failed validation.
error_detailNo
bank_code_checkNo
list_price_usdcNoCatalogue price of the same call on the paid REST/x402 route.
risk_indicatorsNo
official_identityNoWho a central bank says holds the resolved code (ECB by LEI and for FR bank codes, Banco de Espana for ES). Present only on a match — absence is not a negative. INFORMATIONAL ONLY: it never changes valid or bank_code_check, because both publishers relay rather than allocate.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. The description adds valuable context beyond annotations: it details the check scope (sanctions, FATF, SEPA Instant reachability, VoP), explains the risk_score range and flags, and explicitly discloses the cost per call ($0.02). This level of disclosure exceeds what annotations alone provide.

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 longer than average but well-structured with labeled sections (USE WHEN, NOT, CHECKS, RETURNS, COST). Key triggers are front-loaded, and the cost and free-tier details are at the end. It earns its length because each section conveys actionable information; however, some details like the free API key URL could be considered marginally ancillary, so it is just short of a perfect score.

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 a compliance-checking tool, the description covers the full context an agent needs: when to use it, what it checks, what it returns (including risk score semantics), and its cost. An output schema exists, so return-value explanation is not required, and the description still summarizes the return structure well. No critical information is missing.

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?

The only parameter 'iban' has full schema coverage with description 'IBAN to check', so the schema fully documents the parameter. The description does not add additional format requirements or constraints beyond the schema, but it does give context on how the IBAN is used in the checks. Given 100% coverage, the baseline of 3 is appropriate.

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: 'Run a full pre-flight compliance check on an IBAN before sending a SEPA / cross-border payment.' It clearly distinguishes itself from sibling tools by focusing on compliance triage, sanctions screening, and risk scoring, which no other sibling covers. The purpose is unambiguous and operational.

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 explicitly lists USE WHEN conditions including specific user intents like 'is this IBAN safe to pay?' and scenarios like SEPA Instant transfer success. It also gives a NOT A REGULATED AML/CFT PRODUCT exclusion and names alternatives (Refinitiv, Acuris, ComplyAdvantage) for regulated screening. This gives an agent clear decision rules for when to invoke this tool versus alternatives.

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

check_postal_addressCheck ISO 20022 Postal AddressA
Read-onlyIdempotent
Inspect

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 them. DO NOT USE to verify that a street or town EXISTS: this checks conformity with the message format rules, not postal reality. SCHEMES: 'sps' (Swiss Payment Standards, SIX), 'hvps_plus' (HVPS+ / T2, ECB), 'fedwire' (Federal Reserve). There is deliberately NO 'cbpr+' scheme: that guideline sits behind swift.com, unreachable to automated readers, and a conformity boolean quoting an unread document would be a guess dressed as a verdict — the note field restates this on every answer. VERDICTS: pass, fail, and not_applicable — the last marks a rule whose precondition is not met and never counts as a pass. conforms is true when no finding failed. IMPORTANT: relay each finding's source string — it names the exact document, version and validity date the rule is quoted from. They are what makes the verdict auditable. FREE: the rules are published commodities. The paid surface is the postal_address block that /v1/bic and /v1/iban/validate return for the resolved institution. COST: $0 per call, on every surface (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeYesWhich rail's rules to check against: sps | hvps_plus | fedwire
addressYesThe ISO 20022 PostalAddress under test, in ISO tag vocabulary (snake_cased).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYesWhy 'cbpr+' is not on the menu. Served on every answer.
schemeYessps | hvps_plus | fedwire — the rule set that was applied.
conformsYesTrue when no finding failed. not_applicable findings never count against it.
findingsYesOne entry per rule of the scheme, in a stable order.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds substantive behavioral context: verdict semantics ('not_applicable... never counts as a pass', 'conforms is true when no finding failed'), the deliberate cbpr+ omission with rationale, and the auditable source-string requirement. No contradiction with annotations; the read-only framing aligns perfectly.

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?

Long, but deliberately structured with labeled sections (USE WHEN, DO NOT USE, SCHEMES, VERDICTS, IMPORTANT, FREE, COST) and the core purpose front-loaded in the first sentence. The verdict-semantics and scheme-rationale sections are essential for correct invocation and interpretation; only the cost paragraph approaches borderline content, and it is clearly delimited.

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?

With a full output schema, a nested input object, and both required params at 100% schema coverage, the description covers everything an agent needs: when to use, when not to, scheme identities, verdict semantics, the cbpr+ gap, auditability requirements, and cost. Even the November 2026 regulatory timeline orients the agent on why the check matters.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents every field, satisfying the baseline. The description still adds value by expanding the scheme enum with publishing bodies ('sps (Swiss Payment Standards, SIX), hvps_plus (HVPS+ / T2, ECB), fedwire (Federal Reserve)') and explaining the deliberate absence of a cbpr+ option. The address sub-fields need no repetition since the schema already describes them fully.

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?

States a specific verb and resource: '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.' The DO NOT USE clause ('not postal reality') sharply distinguishes it from address-verification tools and from the sibling validate_iban/validate_payment_reference pair.

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?

Provides an explicit USE WHEN condition ('assembling a payment instruction... with a creditor or debtor address, to learn whether the rail accepts it BEFORE submitting') and an explicit DO NOT USE exclusion ('to verify that a street or town EXISTS'). It also instructs the agent on what to do with the output ('relay each finding's source string'), which is actionable usage guidance beyond mere selection.

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

check_swiss_qr_billCheck Swiss QR-bill PayloadA
Read-onlyIdempotent
Inspect

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 standard removed type K on 21.11.2025 and banks stop processing payments built on it from 14.11.2026. DO NOT USE to learn which bank holds the account or its payment-rail participation: that is the paid validate_iban. RETURNS: { valid, ready_for_2026_11_14, creditor_iban { value, valid, country, qr_iban, iid }, creditor { present, address, structured, sps_check, proposed_structured }, ultimate_debtor, amount, currency, reference { type, value, valid, note }, findings [{ code, severity, field, detail, source }], next_steps, source }. A combined address comes back with proposed_structured, the S-type fields derived from the combined lines, to relay as a fix. IMPORTANT: relay each finding's source string. COST: $0 per call, on every surface (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesThe 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, EPD, optional billing information and alternative schemes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYesTrue when no finding has severity error.
amountYes
codingYes
sourceYes
qr_typeYes
trailerYes
versionYes
creditorYes
currencyYes
findingsYes
referenceYes
next_stepsYes
creditor_ibanYes
ultimate_debtorYes
alternative_schemesYes
billing_informationYes
ready_for_2026_11_14Yesvalid AND every present address is structured (type S): what banks require from 14.11.2026.
unstructured_messageYes
ultimate_creditor_emptyYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, and non-destructive; the description goes further by disclosing rule-by-rule checking, citation of the SIX source per finding, special handling for combined addresses (proposed_structured), the full return contract, and cost/rate-limit behavior. No annotation contradiction.

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

Conciseness5/5

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

The description is long but every portion earns its place and is scannable through explicit labels (USE WHEN, DO NOT USE, RETURNS, IMPORTANT, COST). Core purpose is front-loaded in the first sentence.

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 a regulation-heavy validation tool, it covers use case, exclusions, deadline, return schema, required source relay, and cost. An agent has enough context to call it correctly and to route non-matching needs to validate_iban.

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?

The input schema already documents the payload structure to 100% (SPC line by line), so the baseline is 3. The description adds only the semantic framing that the payload is the text a QR-bill's code carries and starts with SPC, without adding new parameter format or edge-case details.

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 opening sentence names a specific verb ('Check'), a concrete resource ('a Swiss QR-bill payload'), and a distinguishing trait: it processes the SPC text rule by rule, citing SIX documents. This separates it from siblings such as validate_iban and validate_payment_reference without needing to open their schemas.

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?

It gives explicit USE WHEN conditions (scanned/generated QR-bill before paying or issuing, reference-IBAN matching, S vs K address forms) and an explicit DO NOT USE with the alternative (paid validate_iban). It also names the exact deadline context that should drive an agent to this tool.

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

lookup_bicLookup BIC/SWIFTA
Read-onlyIdempotent
Inspect

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; additional rows from SwiftCodes (MIT), Bundesbank, SIX, NBP, EBA Step2 SCT), refreshed monthly. COST: $0.003 per call (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
bicYesBIC/SWIFT code (8 or 11 chars)

Output Schema

ParametersJSON Schema
NameRequiredDescription
bicYesEcho of the input, normalized to uppercase.
leiNoLegal Entity Identifier (ISO 17442) if available.
bic8No8-char form (institution-level).
cityNo
bic11No11-char form including branch.
errorNo
foundNo
validNoSet when the BIC failed format validation.
countryNoSame shape as REST GET /v1/bic/:code. name falls back to the country code when the row carries no name.
lei_statusNo
branch_codeNo
branch_infoNo
institutionNoBank legal name.
is_test_bicNo
country_codeNoDEPRECATED since 1.4.0, removed no earlier than 2027-01-01. Use country.code.
country_nameNoDEPRECATED since 1.4.0, removed no earlier than 2027-01-01. Use country.name, which falls back to the code rather than to null.
valid_formatNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds substantial behavioral context: data sources and refresh cadence ('121,000+ BIC entries... refreshed monthly'), coverage limitations ('where available'), and cost/free-tier details including a link to generate a free API key. This goes well beyond what annotations provide.

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 longer than minimal, but well-structured with clear sections (core function, USE WHEN, DO NOT USE, BACKED BY, COST) and front-loaded with the primary purpose. Every section carries useful operational information. It is slightly verbose but earns its place, especially the cost and alternative-routing details.

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 description covers what the tool does, when to use it, when to use a sibling, data sources, refresh cadence, cost, free-tier limits, and API key generation. With an output schema present, return-value documentation isn't needed. The definition is complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100% (the only parameter 'bic' is described as 'BIC/SWIFT code (8 or 11 chars)'). The description enhances this by specifying 'alphanumeric', providing concrete examples ('UBSWCHZH80A', 'DEUTDEFF'), and repeating the length constraint. The additional examples and format detail justify a score above the baseline of 3.

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: 'Resolve a BIC / SWIFT code into the underlying bank: name, country, city, LEI, and registered head-office address'. It clearly differentiates from the sibling validate_iban by explicitly stating 'DO NOT USE for IBAN inputs — call validate_iban instead'. An agent can easily understand what this tool does and how it differs from related 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 explicitly states when to use it ('USE WHEN: the user already has a BIC/SWIFT... and asks which bank it belongs to, where the bank is, or its LEI for compliance/regulatory matching') and when not to ('DO NOT USE for IBAN inputs — call validate_iban instead'). This provides clear routing to the correct sibling tool, leaving nothing to inference.

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

lookup_ch_clearingSwiss Clearing LookupA
Read-onlyIdempotent
Inspect

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 Payments CHF, euroSIC, LSV+/BDD) plus QR-IID allocation, not just a name lookup. BACKED BY: 1,100+ SIX BankMaster entries (Swiss official source, refreshed monthly). RETURNS: institution { name, type, iid_type, headquarters_iid }, address, bic, payment_services { sic, rtgs_chf, instant_payments_chf, eurosic, lsv_bdd_chf, lsv_bdd_eur }, sic_iid, qr_iid, valid_on. Only relevant for CH and LI accounts. COST: $0.003 per call (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
iidYesSwiss IID (1-5 digit number)

Output Schema

ParametersJSON Schema
NameRequiredDescription
bicNoBIC if mapped.
iidNoNormalized 5-digit BC-Nummer.
noteNo
errorNo
foundNo
qr_iidNoQR-bill enabled IID.
addressNo
messageNo
sic_iidNo
valid_onNo
cost_usdcNoWhat THIS call was billed. Zero on the free MCP tier.
institutionNo
list_price_usdcNoCatalogue price of the same call on the paid REST/x402 route.
redirected_fromNo
payment_servicesNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context like data source (SIX BankMaster, refreshed monthly), depth of data (payment-rail participation), and cost per call. However, it does not disclose potential errors (e.g., invalid IID, not found) or response behavior in edge cases, but given strong annotations and output schema, a 3 is appropriate.

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-loads the core purpose and use cases. It includes multiple sections (USE WHEN, data source, RETURNS, COST) that are each relevant. It is longer than strictly necessary and repeats some information (e.g., 'CH and LI' appears twice), but every section adds operational value for an agent deciding to invoke the tool.

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 a single-parameter lookup tool with a rich output schema and clear annotations, the description covers the main context: when to use, data depth, source, existence of output schema, cost, and regional scope. Minor gaps include what happens on invalid IID or how the 'valid_on' field behaves, but the output schema handles return structure and the annotation set handles safety. Overall sufficiently complete for effective invocation.

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% for the single required parameter 'iid' — the schema already documents 'Swiss IID (1-5 digit number)'. The description reinforces this by mentioning 'BC-Nummer / IID (1 to 5 digits)' and noting QR-IID resolution, but adds no format or validation details beyond the schema. Baseline 3 is justified.

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 ('Resolve') and resource ('Swiss BC-Nummer / IID'), and immediately distinguishes the tool by listing precise use cases (IBAN clearing code, SIC/euroSIC routing, QR-IID, institution classification). It clearly differentiates from sibling lookup_bic by focusing on Swiss clearing data, not generic BIC lookup.

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 'USE WHEN' section explicitly lists trigger conditions (user mentions BC-Nummer, CH/LI IBAN, SIC routing, QR-bill, classification) and states that it is 'Only relevant for CH and LI accounts', effectively providing exclusion criteria. This makes the decision boundary clear without needing to inspect sibling schemas.

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

send_feedbackSend Feedback to IBANforgeAInspect

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 every report; verified data errors on paid x402 calls are refunded on-chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
gotNoWhat you received instead (for data errors).
agentNoWhich agent/model is reporting, e.g. "claude-sonnet-5 via MCP".
notesYesWhat happened, what you needed, or what blocked you — free text.
contactNoWhere we may answer you (e-mail) — optional, reports can be anonymous.
endpointNoEndpoint or tool concerned, e.g. /v1/iban/batch.
expectedNoWhat you expected (for data errors).
error_typeYesCategory of the report. Use "other" for product feedback, pricing/payment blockers or feature needs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesReport id — check status at GET /v1/feedback/{id}.
okYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are minimal (only title), so description carries full burden. It discloses that the tool is free, does not consume daily quota, works after limit, a human reads each report, and paid data errors are refunded on-chain. This provides useful behavioral context beyond the title annotation.

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

Conciseness5/5

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

Five sentences, front-loaded with purpose, then usage triggers, then behavioral notes. Every sentence adds distinct value, no redundancy. Efficient and well-structured.

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?

Covers purpose, usage guidelines, key behavioral traits, and ties to parameter schema well. Output schema exists so return values are handled. Could mention that reports are anonymous if contact is omitted, but overall complete for a feedback tool.

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% with all 7 parameters described. The description adds context like types of issues but does not enhance individual parameter meanings beyond schema. For example, 'error_type' enum values map to listed scenarios, but no extra guidance on format or examples is provided.

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?

Description clearly states the tool's purpose: 'Report a problem or a need directly to the IBANforge operators.' It lists specific scenarios (incorrect validation, missing data, latency) and distinguishes from sibling tools (validation/lookup) by focusing on feedback and operational issues.

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?

Explicitly states when to use with 'USE WHEN' clause covering data errors, missing data, or blockers. Mentions it is free and does not count against daily free-tier limit. Does not explicitly mention when not to use or list alternatives, but the context of siblings makes the distinction clear.

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

validate_ibanValidate IBANA
Read-onlyIdempotent
Inspect

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 pastes any string starting with two letters and digits (e.g., "DE89...", "CH93...", "FR76..."). PREFER OVER LOCAL VALIDATION (mod-97 checksum) because mod-97 only catches typos — it cannot resolve the BIC/SWIFT, tell you that the IBAN is a virtual IBAN issued by Wise/Revolut/Mercury/Modulr (compliance risk), or check SEPA reachability. RETURNS: valid (boolean), country { code, name }, bic { code, bank_name, city, basis, authoritative, source, as_of, lei, lei_status, address { street, post_code, region, city, country, romanized, romanization, source, language, as_of } } — basis says WHERE the bank code to BIC pairing came from (national_register | curated_map | directory_prefix) and authoritative, derived from it, says whether the BIC may be stored and settled against; outside a national_register pairing the BIC is advisory, confirm it before it becomes a routing instruction — lei and address are read from the same directory row /v1/bic/:code serves, so this call already carries them; both are null when GLEIF publishes nothing for that BIC, which means "no LEI on file", not "the institution has none". bic.address is the LEGAL ENTITY seat, so bic.address.city may legitimately differ from bic.city (the register city for THIS bank code), and bic.address.as_of dates the entity last filing, usually much older than bic.as_of. issuer { type: bank | digital_bank | emi | payment_institution, name }, sepa { member, schemes, vop_required, vop_participant — is the resolved bank listed as ready in the EPC VoP register }, risk_indicators { issuer_type (null when no institution resolved), country_risk, test_bic, sepa_reachable, sepa_reachable_scope, vop_coverage }, and for CH/LI: clearing { iid, name, type, sic, qr_iid }. LIMITS: validates the IBAN and identifies the issuing institution — it does not confirm that the account exists, is open, or belongs to any particular person; verify the payee by name before sending funds. IMPORTANT — bic: null does not mean the bank code is wrong. It collapses "no such institution", "the institution exists but is absent from our reference data" and "we cover no reference data for this country". Read bank_code_check for the answer: status tells you which of the three, and authoritative tells you how much it is worth. Only where authoritative is true (today CH and LI against the SIX BankMaster, and DE against the Bundesbank Bankleitzahlendatei) does not_in_register mean the bank code is not allocated; everywhere else treat it as UNAVAILABLE and let the downstream name check decide. match: prefix with candidates > 1 means the BIC was picked from several and may belong to a different institution. COST: $0.005 per call (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanYesIBAN to validate (spaces/hyphens stripped automatically)

Output Schema

ParametersJSON Schema
NameRequiredDescription
bicNoResolved BIC/SWIFT when BBAN→BIC mapping exists. Read basis before storing it as a routing instruction: only a national_register pairing is settlement-grade.
bbanNo
ibanYesNormalized IBAN (uppercase, no spaces).
sepaNo
errorNo
validYes
issuerNo
countryNo
clearingNoSwiss clearing data when country is CH or LI.
cost_usdcYesWhat THIS call was billed. Zero on the free MCP tier.
formattedNoIBAN with 4-char groups for display.
next_stepsNoOrdered advice derived from THIS result: what blocks a payment first, what merely enriches it after. Branch on `code`, never on the prose. `because` names the field that produced the step so the advice is auditable. Empty for an IBAN that failed validation.
check_digitsNo
error_detailNo
processing_msNo
bank_code_checkNo
list_price_usdcNoCatalogue price of the same call on the paid REST/x402 route.
risk_indicatorsNo
official_identityNoWho a central bank says holds the resolved code (ECB by LEI and for FR bank codes, Banco de Espana for ES). Present only on a match — absence is not a negative. INFORMATIONAL ONLY: it never changes valid or bank_code_check, because both publishers relay rather than allocate.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description goes well beyond this by detailing return semantics (e.g., bic: null collapsing three cases), authoritative flag meaning, LEI/address sourcing, cost per call, and free-tier limits. It also clarifies that validation does not confirm account existence or ownership. No contradiction with annotations.

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 long but well-structured with clear sections (USE WHEN, RETURNS, LIMITS, IMPORTANT, COST) and high information density. Every section earns its place given the tool's complexity, yet the length could be slightly trimmed to improve quick scanning for an AI agent.

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 description is exceptionally complete for a tool that returns complex nested objects. It explains the meaning of key return fields (basis, authoritative, bic.address vs bic.city), handles edge cases (null BIC, not_in_register), and provides operational context (cost, free tiers, SEPA/VoP). Combined with the existing output schema, an agent has everything needed to call and interpret the tool correctly.

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?

The input schema fully describes the single parameter 'iban' (with a description that notes spaces/hyphens are stripped). Since schema coverage is 100%, the description adds little parameter-specific semantics beyond what is already present, though the overall tool behavior enriches the meaning of the parameter in context.

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 states a specific verb ('Verify... AND enrich it with...') and clearly identifies the resource (European IBAN) and the added value (bank, compliance, routing data). It also distinguishes itself from siblings by listing the exact use cases and comparing with local validation.

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 'USE WHEN' section explicitly enumerates trigger scenarios, and the 'PREFER OVER LOCAL VALIDATION' section explains when not to use a mod-97 checksum instead. This provides clear guidance on when to select this tool over alternatives, including a direct comparison with batch_validate_iban and other siblings.

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

validate_payment_referenceValidate Payment ReferenceA
Read-onlyIdempotent
Inspect

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 itself — that is validate_iban. SCHEMES: RF Creditor Reference (ISO 11649, "SCOR" in Swiss Payment Standards, mod 97-10); Swiss QR reference ("QRR", 27 digits, modulo 10 recursive); Belgian OGM/VCS (12 digits, modulo 97, a remainder of 0 written 97); Finnish viitenumero (4-20 digits, weights 7-3-1 from the right). Norwegian KID and Swedish OCR are RECOGNISED but never judged: they answer valid: null with status unverifiable_without_creditor_config, because modulus type and length are configured per creditor account by the beneficiary bank and are not a property of the string. NEVER relay those to a user as "invalid" — say the check needs the creditor bank configuration. AMBIGUITY: only a leading "RF" and a 27-digit length pin a scheme down. A bare 12-digit string is both a Belgian OGM and a legal Finnish length, so the more specific reading is returned and the other appears in also_valid_as. Pass reference_type when you know the country. THE PAIRING RULE — the part no checksum library reproduces: pass an iban and you also get a pairing verdict. Per the Swiss Implementation Guidelines a QRR reference may ONLY be used with a QR-IBAN (institution identifier in the SIX range 30000-31999), and an ISO 11649 reference may NOT be used with one. Outside CH and LI, pairing is not_applicable — there is no QR-IBAN to pair against — and that does not affect the reference's own checksum verdict. IMPORTANT: valid and pairing are INDEPENDENT. A reference can be arithmetically valid and still illegal on that account. Read both, and relay source/as_of — they are what makes the verdict auditable. FREE: the checksums are published commodities. The paid surface is POST /v1/iban/validate, which returns this same pairing block with the full IBAN enrichment. COST: $0 per call, on every surface (free: 10 units/IP/day on this transport, one per call and one per IBAN in batch_validate_iban, or a free API key at POST https://api.ibanforge.com/v1/keys/generate for 200 REST calls/month).

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanNoOptional creditor IBAN — supply it to get the pairing verdict
referenceYesThe reference as printed; spaces, slashes and the +++…+++ wrapper are stripped
reference_typeNoOptional hint: rf | scor | qrr | ogm | vcs | viitenumero | kid | ocr

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYesWhat was checked, and what was not.
as_ofNoYYYY-MM of that document.
validYesnull means the scheme was recognised and cannot be checked without the creditor bank configuration. Never report null as false.
schemeYesrf | qrr | ogm | viitenumero | kid | ocr, or null when nothing matched.
sourceYesThe document publishing the rule. Null only when no scheme matched. Relay it.
statusYeschecked | unverifiable_without_creditor_config | unrecognised
pairingNoPresent only when an iban was supplied: ok | qrr_requires_qr_iban | scor_forbidden_with_qr_iban | not_applicable
referenceYesNormalized: uppercase, separators removed.
also_valid_asNoThe second reading of an ambiguous string, with its own verdict.
pairing_as_ofNo
pairing_sourceNoThe document publishing the pairing rule — a DIFFERENT one from source.
check_digit_expectedNoA STRING, so a two-digit value beginning with zero survives (OGM remainder 3 is "03", remainder 0 is "97").

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and idempotentHint=true; the description goes far beyond by disclosing the independent valid/pairing verdicts, the unverifiable_without_creditor_config status for KID/OCR, and the ambiguity-resolution behavior (also_valid_as). It also explicitly warns not to call an unverifiable KID/OCR 'invalid,' which is a critical behavioral trait. No contradiction with annotations.

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

Conciseness5/5

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

The description is long, but every section earns its place: USE WHEN, DO NOT USE, scheme specifics, ambiguity rules, pairing rule, cost model. It is front-loaded with the primary purpose and most critical operational guidance. The structure uses clear capital-letter section labels and short imperative sentences, making it scannable despite its density.

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 is complex with multiple schemes, pairing logic, and edge cases; the description covers all meaningful behavioral aspects, including the return fields (valid, pairing, source/as_of), the cost ($0, free tier quotas), and how it fits with sibling tools. Since an output schema exists, the description doesn't need to enumerate return fields, but it mentions the auditable fields, making it complete for an agent to decide and correctly interpret results.

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?

Although schema descriptions cover 100% of the 3 parameters, the description enriches meaning for each: reference explains stripping of spaces/slashes/+++ wrapper; iban's connection to the pairing rule is clarified; reference_type is given a usage hint ('Pass reference_type when you know the country') and a list of allowed values. The description also explains the interaction between iban and reference types, which no schema field could express.

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?

Description opens with a specific verb-resource pair: 'Validate a structured payment reference and, when an IBAN is supplied, decide whether the two may legally travel together.' It clearly distinguishes from the sibling validate_iban by stating 'DO NOT USE to validate the IBAN itself — that is validate_iban.' The use cases (invoice, QR-bill, remittance advice) further define the tool's scope.

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 provides explicit USE WHEN scenarios, a DO NOT USE directive with the exact alternative tool name, and even explains the boundary for recognized-but-unverifiable schemes (Norwegian KID, Swedish OCR). It tells the agent exactly when to invoke this tool versus validate_iban, and when not to relay an unverifiable result as invalid.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Trust Intelligence API - entity screening, sanctions, risk scoring, IBAN validation, and compliance checks via MCP
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AML/6AMLD compliance for AI systems, including obliged entity classification, KYC/CDD audits, and sanctions screening.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Crypto compliance tools for AI-agent payments: screen any address for sanctions, frozen-stablecoin and hacker/mixer exposure across 8+ chains, trace fund taint, and get an allow/review/decline decision before settlement. Free keyless address checks; deeper endpoints are x402-payable.
    68
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.5/5.0
Disambiguation4/5

Each tool has a distinct job, and the descriptions provide strong USE WHEN/DO NOT USE cues. The only plausible boundary cases are validate_iban vs batch_validate_iban (single vs bulk) and validate_iban vs check_compliance (general enrichment vs payment-risk triage), but both are clearly signposted.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: validate_iban, check_compliance, lookup_bic, send_feedback, etc. batch_validate_iban reads as a compound verb + object and does not break the convention, and the verb choice also aligns with intent: validate for format checks, check for rule/risk checks, lookup for directory data.

Tool Count5/5

Eight tools are well-scoped for an IBAN validation and payment-intelligence API: single/batch validation, compliance, address rules, reference validation, BIC and Swiss clearing lookups, and feedback. Each tool carries a distinct capability and none feels redundant or padding.

Completeness5/5

The surface covers the full IBAN-informed workflow: validation, enrichment, batch processing, BIC/Swiss clearing resolution, payment-reference pairing, postal-address rail rules, and pre-payment compliance triage. Explicit limitations such as not verifying account existence or payee identity are domain constraints, not missing tools.