Read-only MCP tools for ISO 8583 and SWIFT MT/MX: parse, validate, diff, SR2026 address checks.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
SR2026 address check in 30 seconds
CBPR+ SR2026 makes structured debtor/creditor postal addresses (
TwnNm+Ctryin dedicated fields) mandatory on 2026-11-14. Batch-scan your outbound pacs.008 / pacs.004 / pacs.003 / pain.001 store before the deadline:Runs entirely on your machine β no message ever leaves it. CI-ready exit codes. This is a structural presence DETECTOR for the cited SR2026 rule, not a full CBPR+ validation and not a certification; details below.
Wireforge is a local-first toolkit for financial wire messages β a CLI
(wf), an AI-agent server (wf-mcp, 13 read-only MCP tools), and the Rust
crates underneath. It exists because four problems keep landing on payment
teams' desks:
| Pain | What Wireforge does about it |
|---|---|
SR2026 deadline (2026-11-14): CBPR+ makes structured debtor/creditor addresses mandatory; free-text AdrLine messages face rejection and repair queues | wf xform address-check batch-scans your outbound pacs.008 / pacs.004 / pacs.003 / pain.001 store and exits with a CI-ready 0/1/2 verdict per run |
| Silent MTβMX data loss: coexistence-era conversion truncates 140-char MX names/remittance into 4Γ35 MT blocks β an AML/screening risk nobody reports | wf xform diff compares a matched MT103 + pacs.008 pair and names each truncated/dropped role, including the exact lost characters |
| Messages are too sensitive for online tools: you cannot paste production payment data into a web validator | Everything runs offline on your machine β no network calls, no telemetry, stdout clean for pipes |
| Legacy migration "trust us" gap: a replaced ISO 8583 endpoint claims byte-compatibility; nobody can prove it | wf oracle check replays captured legacy-vs-migrated responses under an operator-approved mask spec and emits field-level regression-conformance EVIDENCE; wf layout check verifies recovered fixed-length specs against real captures |
Who it's for: payment/integration engineers wiring compliance gates into CI, compliance teams sizing their SR2026 backlog, migration teams needing regression evidence, and AI-agent users who want a safe read-only tool for message forensics.
Start here β User Guide β task-oriented manual for every command, CI recipes included. No Rust knowledge required.
Apache-2.0 Rust crates for parsing, building, and reasoning about
financial wire messages. Today covers ISO 8583 (three on-the-wire
dialects + runtime-loadable field specs), SWIFT MT (structural +
tag-level semantic decoders, plus a typed facade), ISO 20022 / MX
(inbound parse via a typed facade), MTβMX truncation diffing,
EBCDIC (CP037 / CP500), China GM/T crypto (SM3 / SM4 / SM2,
functional β not ε―θ―-certified), and the .wf flat-file format
for capturing message specs under Git.
| Crate | Purpose |
|---|---|
wf-bitmap | ISO 8583 primary / secondary bitmap encode + decode. |
wf-codec | ISO 8583 parser + builder + 128-field table (HybridAscii / |
| FullAscii / FullBinary BCD dialects) + runtime-loadable FieldSpec; | |
| SWIFT MT structural parser + semantic decoders (20 / 32A / 50K); | |
| EBCDIC CP037 / CP500 single-byte codec. | |
wf-cli | wf CLI binary β parse / build / validate from the shell. |
wf-format | Parser for the .wf Bruno-inspired flat-file DSL. |
wf-mcp | Model Context Protocol server β expose codec to AI agents. |
wf-sm | China GM/T cryptography β SM3 hash, SM4 cipher (ECB/CBC + |
| bounded streaming), SM2 signature (functional, not ε―θ―-certified). | |
wf-swift | Typed SWIFT MT facade over an external parser, with lossless |
fallback to wf-codec's structural parser. | |
wf-mx | ISO 20022 / MX inbound facade (pacs / pain / camt / admi). |
wf-xform | pacs.008.001.08 β MT103 truncation/loss detector across five |
| roles β DETECTOR not converter; no certification claim. | |
wf-wal | Append-only write-ahead log with CRC-32 + truncate_to recovery. |
wf-obs | Local-first observability: leveled tracing logs, bounded raw- |
| buffer hex dumps, stderr subscriber setup (no telemetry). |
Scope & honesty (wf-xform): it compares pacs.008.001.08 against
MT103 over five core roles and is SYNTHETIC-validated only (no real
production samples yet); it is a DETECTOR, not a converter, and makes
no certification, conformance, or equivalence claim.
tools/sample-sanitize/ is a standalone (out-of-workspace) binary
that redacts PAN / track data from real ISO 8583 hex samples; see
docs/sample-policy.md for the redaction
contract.
No clone needed β install wf straight from the repo and parse one
sample ISO 8583 frame:
You should see a tree with MTI = 0200, the bitmap, and field 3
("Processing Code") decoded. If something looks off β wrong field, a
crash, anything β please file an issue using the feedback template.
Honest reports beat polished stars.
Prebuilt binaries for Linux / macOS / Windows are attached to each GitHub release.
Output: a tree showing MTI, bitmap, and decoded fields. ISO 8583
auto-sniffs across HybridAscii / FullAscii / FullBinary dialects; pass
--dialect <name> to force one.
Add -v / -vv / -vvv for info / debug / trace logging on stderr
(stdout stays machine-clean); at trace, the raw input buffer is hex-dumped.
RUST_LOG overrides the level. Logs are local-only β no telemetry.
CBPR+ SR2026 makes a structured debtor/creditor postal address (TwnNm +
Ctry in dedicated PstlAdr fields) mandatory on 2026-11-14. Scan your
outbound message store before the deadline:
The message type (pacs.008.001.08 / pacs.004.001.09 / pacs.003.001.08 / pain.001.001.09) is auto-detected per file, and the process exits with a diff-style code so the check drops straight into CI:
0 β every input is compliant1 β ran cleanly, but at least one input is non-compliant2 β at least one input could not be checked (unreadable / unparseable /
unsupported message type)One unreadable file does not abort the batch β it is reported and folded into
the exit code. A directory scan is one level, *.xml only, sorted
(recursive scan is not yet built). This
is a structural presence DETECTOR for the one cited SR2026 rule β not a
full CBPR+ validation and not a certification; all fixtures are SYNTHETIC.
--format text|json|csv selects the output shape: text (default, human-
readable), json (machine-readable, carries a schema_version field for CI
pipelines), or csv (RFC-4180, one row per file/party, for spreadsheets and
data pipelines). Each per-party row also carries a remediation field β
actionable fix guidance naming the missing structured field(s) β a DETECTOR
hint, not an auto-fix.
Claude Desktop: download
wireforge.mcpb
and open it (Settings β Extensions) β the bundle carries macOS (Apple
Silicon) and Windows binaries. The server is on the MCP Registry as
io.github.hanmahong5-arch/wireforge.
Other stdio clients: install the binary β
β then wire it into your MCP-aware client. For Claude Code, add
to ~/.claude/settings.json:
The agent can now call 13 tools:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/wireforge)<a href="https://allmcps.com/mcp/wireforge"><img src="https://allmcps.com/api/badge/wireforge?style=directory" alt="Wireforge on AllMCPs" /></a>