Agenten stärken
Der eigene Befehl des Herausgebers. Kein PlugMCP-Endpunkt.
Host a copy with our keys and logs.
npx -y [email protected]Claude Code hat keinen Installationslink für einen lokalen Befehl. Kopieren Sie den Befehl unten und führen Sie ihn in einem Terminal aus.
claude mcp add ibanforge-mcp -- npx -y ibanforge-mcp@1.9.0In einem Terminal ausführen.
{ "mcpServers": { "ibanforge-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}claude_desktop_config.json
Remote-URL oder ein Befehl auf Ihrem Rechner? Worin sich die beiden Installationen unterscheiden
Auf PlugMCP ausführen
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
StartenIBANforge checks the bank behind an IBAN before you pay. It validates IBANs from all 89 IBAN countries and, in all but 8 of them, names the bank and its BIC, with the source of that answer. Where it reads the national register (Germany, Austria, Belgium, Slovakia, Czech Republic, Bulgaria, Switzerland and Liechtenstein), it also tells you whether the bank code is allocated at all; elsewhere it names the bank from a partial register or a composite map, and says that such an answer cannot rule a code out. For a SEPA bank it resolves, it gives the SEPA schemes that reach it (Credit Transfer, Instant, Direct Debit), from the EPC scheme registers when they list the bank and from the country otherwise (the answer says which), and says whether the EPC Verification of Payee (VoP) register lists the bank as ready to answer VoP requests. It does not check who holds the account: that name check belongs to the payee's bank, through VoP.
Not a name check (VoP, BAV, CoP), not proof that an account exists or is open, not a sanctions screening of the payee (bank and country only), not a licensed copy of the SWIFT BIC directory. The national check digits inside the BBAN are checked for France and Monaco (RIB key), Belgium, Italy and San Marino (CIN), Spain (DC), Germany (the account-number check digit, by the Bundesbank method of each bank code) and the United Kingdom (modulus check): a wrong key shows in checks.national_check_digits and never turns valid to false. The Polish settlement-number check digit is checked with the bank code. The national keys of the other countries are not checked yet.
For business software and AI agents alike: a REST API, a native MCP server, prepaid packs by card, and x402 micropayments with no signup.
89 IBAN countries · bank codes checked against the national registers of DE, AT, BE, SK, CZ, BG, CH, LI · 121k+ BIC entries (39k+ LEI via GLEIF; about two thirds a public copy of the SWIFT directory frozen in January 2018) · 1,100+ Swiss BC-Nummern (SIX)
Add to your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"ibanforge": {
"command": "npx",
"args": ["-y", "ibanforge-mcp"]
}
}
}
Privacy by default: submitted IBANs are never stored — validation runs in memory, IPs are kept only as salted hashes, and telemetry deletes itself (12-month cap; erased 30 days after a customer terminates, contractually — DPA clause 4.7).
Optional: set IBANFORGE_API_KEY=ifk_... in env (a key that needs no e-mail: 25 requests a month, raised to 200 a month once claimed). Without it the server uses the public/demo surface; combine with x402 micropayments for unlimited pay-per-call access without signup.
claude mcp add ibanforge npx -- -y ibanforge-mcp
POST https://api.ibanforge.com/mcp
Content-Type: application/json
Accept: application/json, text/event-stream
Authorization: Bearer ifk_your_key # optional
Standard JSON-RPC initialize + tools/list + tools/call flow. Use this when stdio is not an option (CI/CD, serverless, Vercel agents, etc.). Without a key it answers a keyless allowance per source address; with a key (Authorization: Bearer or X-API-Key), the tool calls count against that key exactly as on the REST API.
The free tools need no key, no wallet and no signup: they are the ones to try first. The last two are the way out of the free allowance without anyone typing an address — they keep answering after the allowance is spent.
Full descriptions of the read-only data tools, with WHEN-to-use triggers, are served live at /.well-known/mcp/server-card.json.
If you can open a web address but cannot send a POST (no code execution, no MCP connector), these pages hold real answers of the API, each with its date, and all of them open with a plain GET.
Do not simulate answers from the API: quote these real ones, with the date each carries (served_at, as_of, or the date of the page). To get answers on the IBANs of your user, ask them to add https://api.ibanforge.com/mcp as a custom connector in their assistant; where to click, assistant by assistant: https://ibanforge.com/docs/mcp. A connector with no key draws on the same keyless allowance as any other caller, counted per source address. In Claude its calls leave from Anthropic's cloud, not from the user's device (Anthropic's documentation), so that allowance is shared with other users and may already be spent; other assistants were not checked by us. With a key, the hosted endpoint counts the calls against that key, as the REST API does: in Claude, the user adds the request header Authorization: Bearer followed by the key when creating the connector; ChatGPT sends no key to a connector (OpenAI's documentation). A POST to https://api.ibanforge.com/v1/keys/generate with no body returns a key, no e-mail; the npm package ibanforge-mcp reads it from IBANFORGE_API_KEY.
IBANforge is x402-native. Any agent with a wallet on Base L2 can discover, pay, and call:
GET https://api.ibanforge.com/.well-known/x402 returns the full catalog (endpoints, prices, asset, payTo, accepts).POST /v1/iban/validate without auth → API replies 402 Payment Required with x402 v1 challenge.No human in the loop, no sales call, no card. See the x402 spec.
Pick your language:
The Python SDK ships with sync + async clients, typed exception classes, and a free-tier quota fallback to x402 baked in:
from ibanforge import IBANforge
# 1-line key, no e-mail: 25 requests a month, 200 once claimed
key = IBANforge.generate_api_key() # shown ONCE: store key["api_key"] now
with IBANforge(api_key=key["api_key"]) as client:
out = client.validate_iban("DE89370400440532013000")
print(out["country"]["code"]) # DE
print(out["bic"]["bank_name"]) # Commerzbank
print(out["bank_code_check"]["authoritative"]) # True (checked against the Bundesbank register)
# Or the free format-only check (mod-97 + structure, no DB hit)
out = IBANforge().format_iban("DE89370400440532013000")
# Validate IBAN — no key needed for the first 25 calls a week per source address
# (ISO week in UTC, reset on Monday 00:00 UTC). The answer carries a `trial` block
# with the count left this week, the reset instant and how to get a key.
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Content-Type: application/json" \
-d '{"iban":"DE89 3704 0044 0532 0130 00"}'
# The Swiss example of the SWIFT IBAN registry passes mod-97 too, and comes back
# bank_code_check.reason = "not_allocated": the SIX register allocates its bank code to nobody.
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Content-Type: application/json" \
-d '{"iban":"CH93 0076 2011 6238 5295 7"}'
# Beyond the keyless trial, send a key: an empty POST to /v1/keys/generate returns one
# (no e-mail, no card), for every endpoint, 200 requests a month once claimed.
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ifk_..." \
-d '{"iban":"DE89 3704 0044 0532 0130 00"}'
# Lookup BIC
curl https://api.ibanforge.com/v1/bic/UBSWCHZH80A
# Free format pre-flight (no auth, mod-97 only)
curl 'https://api.ibanforge.com/v1/iban/format?iban=DE89370400440532013000'
# Free demo (no auth)
curl https://api.ibanforge.com/v1/demo
Full OpenAPI 3.1: api.ibanforge.com/openapi.json.
POST /v1/iban/validate answers 200 with valid: false, an error code and an error_detail sentence. The codes: invalid_format, unsupported_country, wrong_length, invalid_check_digits, checksum_failed, invalid_bban_structure.{"error": "<token>", "message": "<sentence>"}: 400 for malformed JSON, a missing iban or a batch over 100; 402 when a payment is needed or an allowance is used up (cause.reason says which); 413 for a body over 256 KB; 429 past the rate limit.429 carries Retry-After, and every counted response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (rate-limits.yml).GET /v1/keys/usage, and X-Quota-Used, X-Quota-Limit, X-Quota-Remaining on every answer served on a monthly key; X-Credits-Remaining, X-Credits-Total on a prepaid credit key (GET /v1/credits/balance).key_prefix, never the key) or GitHub Issues.Local mod-97 catches typos. It does not tell you whether the bank code is allocated, resolve BIC/SWIFT, classify EMIs (Wise / Revolut / Mercury / Modulr, a real compliance signal), check SEPA reachability and VoP readiness, return Swiss BC-Nummer/QR-IID, or screen the payee's bank against sanctions lists. IBANforge does, in a single call.
npm run dev # Dev server (hot reload)
npm run test # Run tests
npm run check # Typecheck + lint + test
npm run db:seed # Rebuild BIC database from GLEIF
docker build -t ibanforge .
docker run -p 3000:3000 --env-file .env ibanforge
Push to main — Railway auto-deploys via Dockerfile.
/llms.txt and /health. Breakdown as of the 2026-07 refresh (121,610 total):
/llms.txtnot_allocated; partial lists for Finland (Finance Finland), Italy (Banca d'Italia, with the codes it has struck off and their legal successor), San Marino (BCSM) and Luxembourg (ABBL), where a miss is not a refusalvop.csv), refreshed weekly with the other compliance listsIntl.DisplayNames APISome of these sources may be served but not redistributed: the EBA STEP2 and NBP directory rows, the OeNB, NBB and BCSM registers, the Bank of England PRA list, the UN list and the EPC registers. So are the Polish, Finnish and Luxembourg keys of the composite bank-code map and the Finance Finland list. They are not in this repository: the hosted API loads them from a private repository, and a deployment without them answers "not consulted" where they would have spoken, never "no". See NOTICE.
The keys of the composite map that came from sources granting no right to reuse them were removed on 29 September 2026, from this repository and from the service: all of them for the United Arab Emirates, Bosnia and Herzegovina, Estonia, Georgia, Kazakhstan, Moldova, Serbia and Türkiye, whose bank codes now answer "not consulted" with no BIC, part of them for Spain and Italy, and those of Romania. Where open data names one BIC, the Italian and Romanian ones were rebuilt from it (the Banca d'Italia's LEI and GLEIF, scripts/derive-map-keys.ts); the other Italian keys, taken from national files or added by hand, are unchanged. The Slovenian, Lithuanian, Hungarian and Croatian keys come from those countries' central banks, and every answer built from them carries the credit each asks for in bic.source.
llms.txt — short summary + recommended starter prompt/.well-known/x402 — x402 discovery (machine-readable catalog)/.well-known/mcp/server-card.json — MCP server card: full descriptions of the read-only data tools, every tool listed by name/.well-known/agents.json — Google A2A agent capabilities/openapi.json — OpenAPI 3.1 specibanforge-mcp — stdio MCP serverUse of the hosted API (api.ibanforge.com) is governed by the
Terms of Service. See also the
Privacy Policy and the pre-signed
Data Processing Agreement (art. 28 GDPR)
for customers whose calls involve personal data. Validation confirms IBAN
structure and registry data — it does not confirm that an account exists or
belongs to anyone.
MIT — see LICENSE.
The MIT License covers the code and its documentation, not the data files: the third-party records they contain remain subject to their publishers' terms, described in NOTICE. Records that may not be redistributed are no longer in this repository since 25 September 2026; earlier commits keep copies, still subject to those terms.
This project includes third-party components licensed under the Apache License 2.0
(notably @coinbase/x402 and related x402 packages). See NOTICE for
full attributions and required Apache 2.0 notices.
MCP server for IBANforge: check the bank behind an IBAN before you pay. Validation in 89 countries, a bank-code verdict from the national register where one is read, the bank and BIC with their source
{ "mcpServers": { "ibanforge-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}Übersicht
MCP server for IBANforge: check the bank behind an IBAN before you pay. Validation in 89 countries, a bank-code verdict from the national register where one is read, the bank and BIC with their source, SEPA, SEPA Instant and VoP readiness, bank-level sanc
Tools
Noch keine Tool-Liste. Remote-Server erhalten eine nach dem ersten Health-Check.
FAQ
Kopieren Sie auf dieser Seite die stdio-Konfiguration für Cursor, Claude Desktop, Claude Code oder VS Code. Sie nutzt die Installation des Herausgebers, keinen PlugMCP-Proxy.
In diesem Eintrag ist keine erforderliche Umgebungsvariable aufgeführt.
Ibanforge läuft lokal über stdio.
Zuletzt geprüft: 2026-10-28. MCP server for IBANforge: check the bank behind an IBAN before you pay. Validation in 89 countries, a bank-code verdict from the national register where one is read, the bank and BIC with their source, SEPA, SEPA Instant and VoP readiness, bank-level sanc