Sign In

iso20022-mcp

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iso20022-mcp

Unified Model Context Protocol (MCP) gateway for ISO 20022: one small set of meta-tools (search, describe, validate, generate, parse) routing across the pain, pacs, camt and acmt message families.

pipPyPI
Version
0.0.5
Weekly downloads
52
-60.9%
Maintainers
1
Weekly downloads
 
Created

iso20022-mcp: The Unified MCP Gateway for ISO 20022

One Model Context Protocol server, one small set of meta-tools — search, list_families, describe, validate, generate, parse — that route across every ISO 20022 message family (pain · pacs · camt · acmt). Install one thing, discover the whole suite: an agent sees a handful of verbs instead of the 60+ tools spread across five individual servers.

Latest release: v0.0.4 — 7 routing meta-tools over stdio, light core (only mcp), backing family servers as optional extras, actionable structured errors on every validate/generate failure, for Python 3.10+. The front door to the ISO 20022 MCP Suite.

Why a gateway

The suite has a dedicated, best-in-class server per message family. That depth is the point — but an agent shouldn't have to know which of five servers and which of sixty tools it needs before it can act. iso20022-mcp is the thin routing layer on top: ask it in plain terms ("I need to reconcile a statement", "generate a credit transfer"), and it points you at — or executes against — the right family. Small tool surface, whole-suite reach.

The ISO 20022 MCP Suite

iso20022-mcp is the generic message toolkit of eight coordinated, vendor-neutral MCP servers that together cover the ISO 20022 bank-statement workflow and the November 2026 structured-address cutover, plus a high-level orchestration layer — readiness scoring, clearing-profile linting, and audit evidence — statement depth, whole-catalogue routing, reconciliation, multi-format ingestion, and address remediation. Dependency ranges are kept aligned across the suite, so the servers co-install cleanly in a single Python environment: start with one, add the rest as your workflow grows.

ServerScopeSurfaceInstallUse it when
camt053-mcpISO 20022 camt.053/camt.052 bank statements: parse, validate, filter, reverse; MT940/MT942 migration; CBPR+ readiness; journal export22 MCP tools · 4 prompts · 3 resourcespip install camt053-mcpYou work with bank-to-customer statements end to end — the suite's flagship
iso20022-mcpUnified gateway: search / describe / validate / generate / parse meta-tools routed across the pain · pacs · camt · acmt families7 meta-toolspip install "iso20022-mcp[all]"You want one entry point to every message family — this package
reconcile-mcpMatches expected pain.001 payments against observed camt.053 entries — exact, partial, one-to-many, many-to-one, every match scored and explained7 MCP toolspip install reconcile-mcpYou need explainable statement/payment reconciliation
bankstatementparser-mcpMulti-format statement ingestion: ISO 20022 CAMT.053 and pain.001, SWIFT MT940, OFX/QFX, CSV5 MCP tools · 1 prompt · 1 resourcepip install bankstatementparser-mcpYour statements arrive in mixed or legacy formats
structured-address-fix-mcpISO 20022 postal-address classification, assessment & remediation for the November 2026 structured-address cutover (pacs.008 / pain.001 debtor & creditor addresses)9 MCP toolspip install structured-address-fix-mcpYou need debtor/creditor addresses cliff-ready ahead of 14 Nov 2026
iso20022-readiness-suite-mcpOrchestration gateway: detect → structurally validate → clearing-profile lint → readiness score, plus automated remediation and pacs.002 bank-response simulation — a meta-client over the foundational servers4 MCP toolspip install iso20022-readiness-suite-mcpYou want one high-level readiness / orchestration entry point over the suite
iso20022-bank-profile-mcpManages, validates and serves bank-specific clearing profiles / rule packs (CBPR+, SEPA_Instant, FedNow, Generic); premium rule-pack entitlement gating4 MCP toolspip install iso20022-bank-profile-mcpYou lint payments against your own institution's market practice
iso20022-evidence-pack-mcpCompiles readiness findings, remediation diffs and simulated responses into a sealed, Ed25519-signable audit evidence pack6 MCP toolspip install iso20022-evidence-pack-mcpYou need tamper-evident audit / certification artifacts

In one line each: camt053-mcp is the bank-statement flagship (deepest camt.05x surface, stdio + authenticated streamable HTTP); iso20022-mcp is the generic message toolkit (a handful of verbs over the whole catalogue); reconcile-mcp is the reconciliation workflow (did the money we expected actually arrive?); bankstatementparser-mcp is the ingestion layer (many formats in, one transaction shape out); and structured-address-fix-mcp is the postal-address specialist (debtor/creditor addresses cliff-ready for the Nov 2026 cutover).

The gateway also routes to the per-family servers — pain001-mcp, pacs008-mcp, acmt001-mcp, and camt-exceptions — installed as extras (see Routing).

Install

The core is light. Add the families you need as extras (or [all]):

pip install "iso20022-mcp[all]"       # every family
pip install "iso20022-mcp[pacs,camt]" # just interbank + statements
pip install iso20022-mcp              # core only; families report as not installed
# or run without installing:
uvx --from "iso20022-mcp[all]" iso20022-mcp

MCP client config (e.g. Claude Desktop):

{
  "mcpServers": {
    "iso20022": {
      "command": "iso20022-mcp"
    }
  }
}

Tools

The 7 routing meta-tools:

  • search — Find message types by use-case / keyword ("reconciliation", "pacs.008"). (families: all — catalogue)
  • list_families — List families, their capabilities, and which backing packages are installed. (families: all)
  • list_servers — Full suite map: families + E&I messages + specialized servers (reconcile, agent-payment bridge). (families: all)
  • describe — Required fields + input JSON Schema for a message type. (families: all)
  • validate — Validate records against a message type's schema. (families: all)
  • generate — Generate a validated ISO 20022 XML message from records. (families: pain · pacs · acmt)
  • parse — Parse an inbound ISO 20022 XML message into structured data. (families: pacs · camt)

Operations are capability-aware: generate on a camt.053 statement (an inbound format) returns a clear, explanatory error rather than failing obscurely, and every "package not installed" case tells you exactly what to pip install.

Three ergonomics guarantees hold across the routed families:

  • Actionable structured errors. Any error a backing server raises — not just the ones it returns — reaches the agent as an {"error": "<Type>: <message>"} payload instead of an opaque tool-execution failure. For pain generation the error lists every missing or invalid field at once, so one fix-and-retry suffices.
  • Family aliases for message_type. Bare family names resolve to a concrete version via the backing server: pain.001pain.001.001.09, pain.008pain.008.001.02. Fully-versioned types are still preferred where you know them.
  • Per-family parse coverage, stated up front. parse covers the inbound families only: pacs (e.g. pacs.008) and camt (e.g. camt.053). The initiation families pain and acmt are outbound-only — they have no parser here, so don't attempt a generate→parse round-trip for pain.001 or acmt.001; use validate (or the backing server's XSD validation) instead.

Routing

PrefixFamilyBacking servergenerateparse
painCustomer Credit Transfer Initiationpain001-mcp
pacsFI-to-FI Customer Credit Transferpacs008-mcp
camtBank-to-Customer Statementcamt053-mcp
acmtAccount Opening Instructionacmt001-mcp
camt.056/camt.029Cancellation / Resolution (E&I)camt-exceptions

generate("camt.056.001.12", …) routes to camt-exceptions. The gateway also surfaces the specialized servers — reconcile-mcp and ap2-iso20022 — via search and list_servers for discovery (they're invoked through their own tools).

The gateway imports each backing server lazily and optionally — the core depends only on mcp, and a family's server is loaded on first use. Message types are matched on their prefix (pacs.008.001.08pacs). The pain extra requires pain001-mcp >= 0.0.56, the release that carries the LLM-ergonomic generate surface (field aliases, computed nb_of_txs / ctrl_sum, all-at-once field errors) the gateway's guarantees build on.

Example

search(query="reconciliation")
  → [{ "message_type": "camt.053", "family": "camt", "package": "camt053-mcp" }]

describe(message_type="pacs.008")           # required fields + input schema
validate(message_type="pacs.008", records=[…])
generate(message_type="pain.001", records=[…])   # → { "xml": "<Document>…" }
  # bare "pain.001" resolves to pain.001.001.09; on failure the payload is
  # { "error": "Missing required fields for pain.001.001.09: …" } listing
  # every missing or invalid field at once — fix them all and retry once
parse(message_type="camt.053", xml="<Document>…")
  # parse covers pacs + camt only; pain and acmt are outbound-only

For the dedicated reconciliation engine that matches camt.053 statements against expected pain.001 payments, see reconcile-mcp.

Development

git clone https://github.com/sebastienrousseau/iso20022-mcp
cd iso20022-mcp
python -m venv .venv && . .venv/bin/activate
pip install -e . && pip install pytest pytest-cov ruff black mypy
pytest                      # 100% branch coverage gate (backends faked)
ruff check iso20022_mcp tests && black --check iso20022_mcp tests && mypy iso20022_mcp

Licence

Licensed under the Apache License, Version 2.0.

mcp-name: io.github.sebastienrousseau/iso20022-mcp

Keywords

iso-20022

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts