iso20022-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iso20022-mcp Validate this pacs.008 message and map any issues to likely reject codes."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iso20022-mcp
An MCP server that lets AI agents parse, validate, explain and test ISO 20022 payment messages — safely.
Agents handling payments fail in predictable ways: they invent reject codes, miss IBAN checksum errors, and follow instructions hidden in free-text fields like remittance information. This server gives them deterministic tools for the parts that must be exact, and treats message free text as untrusted data.
Tools
Tool | What it does |
| pacs.008 / pacs.002 XML → structured JSON (namespace-agnostic, XXE-safe) |
| IBAN mod-97, BIC format, amounts and currency decimals, required parties, counts, free-text limits, prompt-injection patterns — each issue mapped to its likely reject code |
| Deterministic plain-language summary: who pays whom, how much, status and reasons |
| Status reason / transaction status / charge bearer codes — returns |
| Synthetic valid and defective messages for testing (no real customer data) |
Related MCP server: camt053-mcp
Quick start
pip install -e ".[dev]"
pytest -q
iso20022-mcp # runs the server over stdioClaude Desktop / any MCP client config:
{ "mcpServers": { "iso20022": { "command": "iso20022-mcp" } } }Security design
Free-text fields are returned with an
_UNTRUSTEDsuffix and the server instructions tell agents to treat them as data.validate_messageflags instruction-like content in free text (severitysecurity).XML parsing disables entity resolution and network access.
Only synthetic data and public example IBANs/BICs are used anywhere in this repo.
Benchmark
evals/ contains a generator for a banking-agent task set (python evals/make_tasks.py) covering validation, rejection investigation and prompt injection, plus a
deterministic scorer. Results across model families: coming soon.
Roadmap
Official XSD validation · pain.001 and camt.053 · MT103 → pacs.008 (subset) · remote HTTP deployment with auth and OpenTelemetry
Disclaimer
Not affiliated with ISO, SWIFT or any bank. Code sets here are a curated subset; consult the official ISO 20022 external code sets for production use.
Available Tools
5 toolsexplain_messageC
Plain-language summary of who pays whom, how much, and status/reasons. Deterministic, no guessing.
Inputs: xml (required). Returns: result
generate_test_messageB
Generate a synthetic test message. kind: 'pacs.008' or 'pacs.002'. defect (pacs.008): none, bad_iban, bad_bic, missing_creditor_name, bad_decimals, count_mismatch, injection_in_remittance, missing_creditor_address. reason_code is used for pacs.002.
Inputs: kind, defect, reason_code. Returns: result
lookup_codeA
Look up an ISO 20022 status reason, transaction status or charge bearer code. Use this instead of guessing.
Inputs: code (required). Returns: result
parse_messageA
Parse an ISO 20022 pacs.008 (credit transfer) or pacs.002 (status report) XML message into structured JSON.
Inputs: xml (required). Returns: result
validate_messageA
Validate a pacs.008/pacs.002 message against business rules (IBAN checksum, BIC format, amounts, required parties, counts, free-text limits, prompt-injection patterns). Returns issues with likely reject codes.
Inputs: xml (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct action on the message lifecycle: reference lookup, synthetic generation, parsing, rule validation, and plain-language explanation. Although parse/validate/explain all take a message as input, their outputs (structured JSON, issue list with reject codes, prose summary) are unambiguous and non-overlapping.
All five tools use a consistent snake_case verb_noun pattern (lookup_code, generate_test_message, parse_message, validate_message, explain_message) with predictable, domain-appropriate verbs. No mixed conventions or camelCase deviations.
Five tools is well-scoped for a focused ISO 20022 helper: one reference lookup, one generator, and three message-processing operations. Nothing feels redundant or bolted on, and the surface is small enough to be navigable without packing in marginal tools.
The set covers the full practical loop for the two supported message types — look up a code, generate a fixture, parse, validate, and explain — which is coherent end-to-end. Minor gaps: only pacs.008 and pacs.002 are supported (no pacs.004, camt, or pain messages), and there is no tool to enumerate/repair codes or fix a failing message.
Maintenance
Related MCP Connectors
Generate and validate SEPA ISO 20022 XML (pain.001, pain.008) and SWIFT MT103 payment messages.
Check ISO 20022 messages (pacs.008, pain.001, camt.053, seev.031) against schema and rules.
Cross-border payment & banking intelligence for AI agents: SWIFT/BIC, IBAN, sanctions, FX, tracking.
Look up ISO 20022 messages, bank transaction codes, legacy MT replacements, schemes and code sets.
Related MCP Servers
- AlicenseAqualityDmaintenancePactus is an MCP server for parsing and validating ISO 20022 payment messages directly from chat. It exposes nine tools that let AI assistants inspect or validate pacs.008, pacs.002, pain.001, and camt.053 messages — the message types at the centre of the CBPR+ migration — without leaving the conversation.92MIT
- AlicenseAqualityBmaintenanceMCP server that enables AI agents to parse, validate, and reverse ISO 20022 bank statements, with tools for discovering message types and return reasons.2470 PyPI2Apache 2.0
- AlicenseAqualityBmaintenanceA Model Context Protocol server that exposes the pain001 ISO 20022 Customer Credit Transfer Initiation library as agent tools, enabling AI assistants to generate and validate standardized payment XML messages.30953 PyPI1Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that exposes the pacs008 ISO 20022 FI-to-FI Customer Credit Transfer library as tools for AI agents and assistants, enabling generation, validation, and parsing of pacs.008 credit transfer XML messages.1649 PyPI1Apache 2.0