The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Pacs008 MCP listing page.
A Model Context Protocol server that exposes the pacs008
ISO 20022 FI-to-FI Customer Credit Transfer library as tools for AI agents and
assistants — discover message types and scheme profiles, validate records
against the JSON Schema and against a rail's usage guidelines, generate
validated XML, validate raw XML against the bundled XSD, and parse inbound
messages, all from your favourite MCP client.
Latest release: v0.0.6 — 15 MCP tools over stdio, all backed by the
pacs008library, for Python 3.10+. Addsconvert_mt103, the legacy SWIFT MT103 → pacs.008 (MT→MX) migration path.
The Model Context Protocol (MCP) is an open standard that lets AI agents
and assistants discover and call external tools in a uniform way. pacs008-mcp
is an MCP server that turns the pacs008 library into a set of
first-class agent tools, so an assistant can generate, validate, and parse
ISO 20022 pacs.008 FI-to-FI Customer Credit Transfer XML messages — and
the related pacs.002/.004 status and return messages — directly from a
conversation.
Every tool is a thin, typed wrapper over the pacs008 library — the same
package used by the CLI and REST API — so all interfaces behave identically.
Tools return JSON-serialisable data; on a validation error they return an
{"error": ...} payload rather than raising.
pacs008-mcp runs on macOS, Linux, and Windows and requires Python 3.10+
and pip. It pulls in the core pacs008 library and the MCP SDK
automatically.
Note: while the core
pacs008library is not yet on PyPI, install it from source first:
Launch the server over stdio (the FastMCP default transport):
Register it with any MCP client (e.g. Claude Desktop) by adding it to the client's configuration:
All tools wrap the pacs008 library, so they behave identically to the CLI and
REST API.
list_message_types — List the 20 supported ISO 20022 pacs message typeslist_schemes — List the registered scheme / usage-guideline profilesget_scheme — Inspect a scheme profile's rulesget_required_fields — Required input fields for a message typeget_input_schema — Full input JSON Schema for a message typevalidate_records — Validate flat records against a message type's schemavalidate_scheme — Validate records against a scheme's usage guidelinesgenerate_message — Generate a validated pacs XML messagevalidate_xml — Validate a raw XML string against the bundled XSDparse_message — Parse & classify an inbound ISO 20022 messageconvert_mt103 — Convert a legacy SWIFT MT103 into pacs.008-ready records (MT→MX migration)classify_address — Classify a postal address as structured / hybrid / unstructuredvalidate_address — Validate one postal address against an address policyrepair_address — Upgrade legacy unstructured address lines toward hybrid/structured formvalidate_addresses — Batch-validate every party address across payment rowsOn 14 November 2026, fully unstructured postal addresses are decommissioned
across SWIFT CBPR+, HVPS+, TARGET2 RTGS, CHAPS, Fedwire and Lynx — after that
date, any cross-border or high-value payment carrying an unstructured-only
postal address is rejected at the rail. The four address tools above wrap
the pacs008 library's standards.address module so an agent can get ahead of
the deadline: classify_address shows where an address stands, validate_address
/ validate_addresses enforce a policy (defaulting to the cliff rule
hybrid_or_structured, which rejects unstructured addresses), and
repair_address runs country-aware heuristics (GB, US, DE, FR, JP,
plus a best-effort fallback) to lift legacy address lines into hybrid form.
The repair step is experimental — audit its output before submitting downstream.
You can invoke the tools in-process — without a transport — straight through the
FastMCP instance. This mirrors what an agent receives over stdio. The runnable
version of this snippet lives in examples/mcp_tools.py.
Run it directly:
pacs008-mcp uses Poetry and mise.
This package depends on the core
pacs008library. Until it is on PyPI, install it from source first:pip install "git+https://github.com/sebastienrousseau/pacs008.git".
A Makefile orchestrates the quality gates (kept in lockstep with CI):
Part of the ISO 20022 MCP Suite — open-source, Apache-2.0 licensed MCP servers for banking and financial-services AI agents:
| Server | Purpose |
|---|---|
pain001-mcp | Generate & validate ISO 20022 pain.001 payment files (v03–v12, pain.008, SEPA) with rulebook checks |
camt053-mcp | Parse & reconcile ISO 20022 camt.053 bank-to-customer statements — CBPR+/HVPS+ ready |
acmt001-mcp | Generate & validate ISO 20022 acmt account-management messages |
bankstatementparser-mcp | Parse bank statements (BAI2, MT940/MT942, CAMT.053, OFX, CSV) into structured transactions |
noyalib-mcp | Lossless YAML 1.2 parsing, formatting & validation (Rust, 100% spec compliance) |
mcp-name: io.github.sebastienrousseau/pacs008-mcp
Licensed under the Apache Licence, Version 2.0. Any contribution submitted for inclusion shall be licensed as above, without additional terms.
Contributions are welcome — see the contributing instructions. Thanks to all contributors.
Built on the pacs008 ISO 20022 FI-to-FI Customer Credit Transfer
library and the Model Context Protocol Python SDK.