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 分