Skip to main content

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.3 — 7 routing meta-tools over stdio, light core (only mcp), backing family servers as optional extras, 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 four coordinated, vendor-neutral MCP servers that together cover the ISO 20022 bank-statement workflow — statement depth, whole-catalogue routing, reconciliation, and multi-format ingestion. 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.

Server Scope Surface Install Use it when
camt053-mcp ISO 20022 camt.053/camt.052 bank statements: parse, validate, filter, reverse; MT940/MT942 migration; CBPR+ readiness; journal export 22 MCP tools · 4 prompts · 3 resources pip install camt053-mcp You work with bank-to-customer statements end to end — the suite's flagship
iso20022-mcp Unified gateway: search / describe / validate / generate / parse meta-tools routed across the pain · pacs · camt · acmt families 7 meta-tools pip install "iso20022-mcp[all]" You want one entry point to every message family — this package
reconcile-mcp Matches expected pain.001 payments against observed camt.053 entries — exact, partial, one-to-many, many-to-one, every match scored and explained 7 MCP tools pip install reconcile-mcp You need explainable statement/payment reconciliation
bankstatementparser-mcp Multi-format statement ingestion: ISO 20022 CAMT.053 and pain.001, SWIFT MT940, OFX/QFX, CSV 5 MCP tools · 1 prompt · 1 resource pip install bankstatementparser-mcp Your statements arrive in mixed or legacy formats

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?); and bankstatementparser-mcp is the ingestion layer (many formats in, one transaction shape out).

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"
    }
  }
}

The meta-tools

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

Routing

Prefix Family Backing server generate parse
pain Customer Credit Transfer Initiation pain001-mcp
pacs FI-to-FI Customer Credit Transfer pacs008-mcp
camt Bank-to-Customer Statement camt053-mcp
acmt Account Opening Instruction acmt001-mcp
camt.056/camt.029 Cancellation / 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).

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=[…])   # → validated XML
parse(message_type="camt.053", xml="<Document>…")

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iso20022_mcp-0.0.3.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iso20022_mcp-0.0.3-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file iso20022_mcp-0.0.3.tar.gz.

File metadata

  • Download URL: iso20022_mcp-0.0.3.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iso20022_mcp-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6e11ccea7cffd034cf47f6ed51bbf42ac8b1a0c712a7e2869be6fb7c548c4970
MD5 62e8b2925bc0f07a84fb4d9490b2351a
BLAKE2b-256 f6df4d027a22116760718b1dfeb11307b0ae1eef10655ee65545316618149c70

See more details on using hashes here.

Provenance

The following attestation bundles were made for iso20022_mcp-0.0.3.tar.gz:

Publisher: release.yml on sebastienrousseau/iso20022-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iso20022_mcp-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: iso20022_mcp-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for iso20022_mcp-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e402d4af0a6fb78664b862d2cba8d2dca6c300fc7387b7bdc2106be3f7186c94
MD5 f67c9097a7e7f90663165b73cc55af08
BLAKE2b-256 1935a3c0fd79e0717c2c0fd747d51ab517ceec0457ad0a3e0b3054a4922981c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for iso20022_mcp-0.0.3-py3-none-any.whl:

Publisher: release.yml on sebastienrousseau/iso20022-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.0.5

2 files

0.0.4

2 files

This release

0.0.3 This release

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page