Camt Exceptions

io.github.sebastienrousseau由 GitHub 帳號 sebastienrousseau 發布v0.0.20更新於 Oct 24, 2026

Generate + XSD-validate ISO 20022 E&I camt messages (camt.056 cancellation, camt.029 resolution).

已驗證STDIO僅桌面金融開發者工具

概覽

AI 產生的概覽

產生並依 XSD 驗證 ISO 20022 例外與調查(E&I)camt 訊息,例如 camt.056 付款取消請求,供 AI 助理使用。

可以做什麼
  • 列出支援的 E&I 訊息類型與名稱
  • 查詢某訊息類型所需的頂層欄位
  • 依紀錄產生 E&I XML 訊息,回傳前以內附 XSD 驗證
  • 以訊息類型對應的內附 XSD 驗證原始 XML
適用情境
適合需要產生或檢查 ISO 20022 例外與調查訊息的情境,通常是 camt.056 付款取消或召回請求、camt.029 調查結果訊息,且要求輸出符合 schema。
執行需求
本機 Python 3.10+ 環境並從 PyPI 安裝 camt-exceptions 套件,或以 uvx 免安裝執行。預設透過 stdio 執行,也可在本機綁定位址上使用 streamable HTTP 與 SSE 傳輸。未宣告任何驗證或環境變數。
安裝前請注意
HTTP 傳輸本身不帶驗證,應綁定回環位址,或在綁定可路由位址前置於可信任的閘道之後。產生的訊息涉及付款取消與調查,送交銀行或交易對手前請先審閱內容。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Camt Exceptions,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

camt-exceptions: ISO 20022 Exceptions & Investigations, generated + XSD-valid

[Build Status] [PyPI version] [Glama MCP server score] [OpenSSF Scorecard] [License] [Python Version]

[camt-exceptions Demo]

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.20: camt.056 + camt.029 generation + 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

sh
pip install camt-exceptions# or run the MCP server without installing:uvx camt-exceptions

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

json
{  "mcpServers": {    "camt-exceptions": {      "command": "camt-exceptions-mcp"    }  }}

Quick start — cancel a payment

python
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:

CommandTransportEndpointProtocol revisions
camt-exceptions-mcpstdiothe client spawns the process2026-07-28, 2025-11-25
camt-exceptions-mcp --transport streamable-httpStreamable HTTPhttp://127.0.0.1:8000/mcp2026-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 sseHTTP+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.

json
{  "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

MessageNameStatus
camt.056.001.12FI to FI Payment Cancellation Request✅
camt.029.001.14Resolution of Investigation✅
camt.026Unable to Applyplanned
camt.027Claim Non-Receiptplanned
camt.087Request to Modify Paymentplanned

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) and pacs.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:

Documentation

Development

sh
git clone https://github.com/sebastienrousseau/camt-exceptionscd camt-exceptionspython -m venv .venv && . .venv/bin/activatepip install -e . && pip install pytest pytest-cov hypothesis ruff black mypy interrogate "mutmut>=3.7,<4"pytest                      # 100% branch coverage gate; output is XSD-validatedruff check camt_exceptions tests && black --check camt_exceptions tests && mypy camt_exceptionsinterrogate -c pyproject.toml camt_exceptions   # 100% docstring gatemutmut run && mutmut export-cicd-stats && python scripts/mutation_gate.py --floor 90

License

Licensed under the Apache License, Version 2.0 or the MIT License, at your option. 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

來源:README.md,提交 d1f1666

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v0.0.20最新Oct 4, 2026
  2. v0.0.19Oct 4, 2026
  3. v0.0.18Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分