Camt Exceptions
БесплатноНе проверенGenerates and validates ISO 20022 Exceptions & Investigations payment cancellation messages (camt.056) with XSD validation.
Описание
Generates and validates ISO 20022 Exceptions & Investigations payment cancellation messages (camt.056) with XSD validation.
README
Generate and validate ISO 20022 Exceptions & Investigations (E&I) camt
messages — with an MCP server. Starts with camt.056 (FI-to-FI
Payment Cancellation Request): the message a bank sends to recall or cancel a
payment it already dispatched — a duplicate, an erroneous amount, a fraud
recall. Output is validated against the official bundled XSD before it's
returned.
Latest release: v0.0.18 —
camt.056+camt.029generation + validation, 4 MCP tools over stdio, streamable HTTP or SSE, 100% branch coverage, for Python 3.10+. Part of the ISO 20022 MCP suite. Additional E&I messages (camt.029, camt.026, camt.027, camt.087) plug into the same engine.
Why E&I
When a payment goes wrong, the fix is an Exceptions & Investigations message —
and these are the least tooled corner of ISO 20022. camt.056 alone covers
the single most common need: "I need to cancel/recall that payment." This
library makes it a one-call, schema-valid operation for an agent, with the same
depth as the credit-transfer generators elsewhere in the suite.
Install
pip install camt-exceptions
# or run the MCP server without installing:
uvx camt-exceptions
MCP client config (e.g. Claude Desktop):
{
"mcpServers": {
"camt-exceptions": {
"command": "camt-exceptions-mcp"
}
}
}
Quick start — cancel a payment
from camt_exceptions import generator as g
xml = g.generate_message("camt.056.001.12", {
"assignment_id": "CXL-001",
"assigner_agent_bic": "DEUTDEFF",
"assignee_agent_bic": "COBADEFF",
"creation_date_time": "2026-03-02T10:00:00",
"original_msg_id": "MSG-ORIG-001",
"original_msg_nm_id": "pacs.008.001.08",
"transactions": [{
"original_end_to_end_id": "E2E-001",
"original_interbank_settlement_amount": "1000.00",
"original_interbank_settlement_currency": "EUR",
"cancellation_reason_cd": "DUPL", # duplicate payment
}],
})
assert g.validate_xml("camt.056.001.12", xml)["is_valid"] # True
Transports
One command line, three transports:
| Command | Transport | Endpoint | Protocol revisions |
|---|---|---|---|
camt-exceptions-mcp |
stdio | the client spawns the process | 2026-07-28, 2025-11-25 |
camt-exceptions-mcp --transport streamable-http |
Streamable HTTP | http://127.0.0.1:8000/mcp |
2026-07-28 (stateless, server/discover) and 2025-11-25 (initialize, Mcp-Session-Id) on the same endpoint; responses stream as server-sent events, GET opens the server-to-client stream |
camt-exceptions-mcp --transport sse |
HTTP+SSE (2024-11-05) | http://127.0.0.1:8000/sse and /messages/ |
for clients that still expect the older transport |
--host and --port change the bind address (defaults 127.0.0.1 and
8000). The HTTP transports carry no authentication of their own: bind
loopback, or put the server behind a gateway you trust before binding a
routable address. Every release is verified over streamable HTTP with
scout in both protocol
eras and over SSE with the MCP SDK client; see
ADR 0001.
{
"mcpServers": {
"camt-exceptions": { "url": "http://127.0.0.1:8000/mcp" }
}
}
Tools
list_message_types— List supported E&I message types and names.get_required_fields— Required top-level fields for a message type.generate_message— Generate a validated E&I XML message from a record (validated against the bundled XSD before return).validate_xml— Validate raw XML against a message type's bundled XSD.
Supported messages
| Message | Name | Status |
|---|---|---|
camt.056.001.12 |
FI to FI Payment Cancellation Request | ✅ |
camt.029.001.14 |
Resolution of Investigation | ✅ |
camt.026 |
Unable to Apply | planned |
camt.027 |
Claim Non-Receipt | planned |
camt.087 |
Request to Modify Payment | planned |
Each new message plugs into the same engine: bundle its official XSD +
template.xml and register it in MESSAGE_TYPES. Generated output is always
XSD-validated before return, so correctness is machine-checked, not asserted.
Note: the payment-status and return messages of the E&I family —
pacs.002(Payment Status Report) andpacs.004(Payment Return) — are already generated, XSD-valid, by pacs008-mcp.
The suite
Part of a family of vendor-neutral, Python-native ISO 20022 MCP servers:
- iso20022-mcp — unified gateway across the families.
- pain001-mcp · pacs008-mcp · camt053-mcp · acmt001-mcp — per-family servers.
- reconcile-mcp — statement/payment reconciliation.
Documentation
- Rendered docs: sebastienrousseau.github.io/camt-exceptions — API reference, ADRs, roadmap, changelog
- Runnable examples: examples/
- Release history: CHANGELOG.md
Development
git clone https://github.com/sebastienrousseau/camt-exceptions
cd camt-exceptions
python -m venv .venv && . .venv/bin/activate
pip install -e . && pip install pytest pytest-cov hypothesis ruff black mypy interrogate "mutmut>=3.7,<4"
pytest # 100% branch coverage gate; output is XSD-validated
ruff check camt_exceptions tests && black --check camt_exceptions tests && mypy camt_exceptions
interrogate -c pyproject.toml camt_exceptions # 100% docstring gate
mutmut run && mutmut export-cicd-stats && python scripts/mutation_gate.py --floor 90
Licence
Code licensed under the Apache License, Version 2.0. Bundled ISO
20022 message schemas (*.xsd) are © ISO 20022 and redistributed under the
ISO 20022 terms; they are the same schemas published at
iso20022.org.
mcp-name: io.github.sebastienrousseau/camt-exceptions
Установка Camt Exceptions
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/sebastienrousseau/camt-exceptionsFAQ
Camt Exceptions MCP бесплатный?
Да, Camt Exceptions MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Camt Exceptions?
Нет, Camt Exceptions работает без API-ключей и переменных окружения.
Camt Exceptions — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Camt Exceptions в Claude Desktop, Claude Code или Cursor?
Открой Camt Exceptions на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Stripe
Payments, customers, subscriptions
автор: Stripemalamutemayhem/unclick-agent-native-endpoints
110+ tools for AI agents spanning social media, finance, gaming, music, AU-specific services, and utilities. Zero-config local tools plus platform connectors. n
автор: malamutemayhemwhiteknightonhorse/APIbase
Unified API hub for AI agents with 56+ tools across travel (Amadeus, Sabre), prediction markets (Polymarket), crypto, and weather. Pay-per-call via x402 micropa
автор: whiteknightonhorsetrackerfitness729-jpg/sitelauncher-mcp-server
Deploy live HTTPS websites in seconds. Instant subdomains ($1 USDC) or custom .xyz domains ($10 USDC) on Base chain. Templates for crypto tokens and AI agent pr
embeddedlayers/mcp-analytics
Statistical analysis, forecasting, and ML for business data (Shopify, Stripe, WooCommerce, eBay, GA4, Search Console). Upload a CSV or connect live data sources
автор: embeddedlayerscarrierone/verilexdata-mcp
20 structured datasets (NPI healthcare, SEC filings, OFAC sanctions, crypto whales, Polymarket signals, patents, economic indicators) via x402 pay-per-query wit
автор: carrieronetipdotmd/tip-md-x402-mcp-server
MCP server for cryptocurrency tipping through AI interfaces using x402 payment protocol and CDP Wallet.
автор: tipdotmdlaundromatic/shopgraph
Structured product data from the open web — Schema.org + AI extraction for e-commerce enrichment. Pay per call via Stripe. [shopgraph.dev](https://shopgraph.dev
автор: laundromaticmrslbt/xendit-mcp
Xendit payment gateway for Southeast Asia. Invoices, disbursements, balance checks, and bank transfers across Indonesia, Philippines, Thailand, Vietnam, and Mal
автор: mrslbt@arbitova/mcp-server
Non-custodial on-chain escrow + AI dispute arbitration for agent-to-agent USDC payments on Base. Seven tools covering the full EscrowV1 contract surface: create
автор: jiayuanliang0716-maxCompare Camt Exceptions with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории finance
