mcpField
C
camt-exceptions

camt-exceptions

本地服务
github.com/sebastienrousseau金融数据12 天前更新

关于 camt-exceptions

camt-exceptions 是面向金融工作流的 ISO 20022 E&I 消息生成与校验 MCP 服务,支持 camt.056 取消付款请求和 camt.029 调查结果。生成的 XML 会依据随附的官方 XSD 校验。

主要功能

  1. 01生成 camt.056 和 camt.029 XML
  2. 02按官方 XSD 校验生成内容
  3. 03校验原始 XML
  4. 04查询消息类型及必填字段
  5. 05支持 stdio、HTTP 和 SSE 传输

适用场景

  1. 01生成银行间付款取消请求
  2. 02生成调查处理结果消息
  3. 03检查 E&I XML 是否符合模式

MCP 相关

作为 MCP 服务提供 4 个工具:列出消息类型、查询必填字段、生成消息和校验 XML。支持 stdio、Streamable HTTP 与 SSE 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sebastienrousseau-camt-exceptions": {
"command": "uvx",
"args": [
"camt-exceptions"
]
}
}
}
启动命令uvx camt-exceptions

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicamt-exceptions0.0.20

工具

4

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

camt-exceptions:ISO 20022 异常与调查,生成并通过 XSD 验证

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

camt-exceptions 演示

生成并验证 ISO 20022 异常与调查(E&I)camt 消息——通过 MCP 服务实现。 起步支持 camt.056(金融机构间付款取消请求):银行发送此消息,以撤回或取消已发出的付款,例如重复付款、金额错误或欺诈撤回。返回结果前,会使用随包提供的官方 XSD 进行验证。

最新版本:v0.0.20:支持生成并验证 camt.056 和 camt.029,通过 stdio、流式 HTTP 或 SSE 提供 4 个 MCP 工具,分支覆盖率达 100%,适用于 Python 3.10+。这是 ISO 20022 MCP 套件的一部分。其他 E&I 消息(camt.029、camt.026、camt.027、camt.087)也可接入同一引擎。

为什么需要 E&I

付款出错时,需要通过异常与调查消息进行处理——而这正是 ISO 20022 中工具支持最少的领域。单是 camt.056 就能满足最常见的需求:“我需要取消/撤回这笔付款。” 这个库让 Agent 只需一次调用即可完成操作,并确保消息符合架构要求,其功能深度与套件中其他贷记转账生成器相当。

安装

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

MCP 客户端配置(例如 Claude Desktop):

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

快速开始 — 取消付款

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

传输方式

一条命令行,三种传输方式:

命令传输方式端点协议修订版本
camt-exceptions-mcpstdio客户端启动进程2026-07-28、2025-11-25
camt-exceptions-mcp --transport streamable-http流式 HTTPhttp://127.0.0.1:8000/mcp2026-07-28(无状态,server/discover)和 2025-11-25(initialize、Mcp-Session-Id)共用同一端点;响应以服务器发送事件的形式流式传输,GET 会打开服务器到客户端的流
camt-exceptions-mcp --transport sseHTTP+SSE(2024-11-05)http://127.0.0.1:8000/sse 和 /messages/面向仍使用较旧传输方式的客户端

--host 和 --port 用于更改绑定地址(默认值分别为 127.0.0.1 和 8000)。HTTP 传输方式本身不提供身份验证:请绑定到环回地址;或者在绑定到可路由地址前,将服务置于你信任的网关之后。每个版本都会使用 scout 在两个协议时期通过流式 HTTP 进行验证,并通过 MCP SDK 客户端验证 SSE;请参阅 ADR 0001。

{
  "mcpServers": {
    "camt-exceptions": { "url": "http://127.0.0.1:8000/mcp" }
  }
}

工具

  • list_message_types — 列出支持的 E&I 消息类型及名称。
  • get_required_fields — 获取消息类型必需的顶层字段。
  • generate_message — 根据记录生成经过验证的 E&I XML 消息(返回前会使用随包提供的 XSD 进行验证)。
  • validate_xml — 根据消息类型对应的随包提供的 XSD 验证原始 XML。

支持的消息

消息名称状态
camt.056.001.12金融机构间付款取消请求✅
camt.029.001.14调查结果处理✅
camt.026无法应用计划中
camt.027未收到款项索赔计划中
camt.087付款修改请求计划中

每种新消息都接入同一引擎:将其官方 XSD 和 template.xml 打包,并在 MESSAGE_TYPES 中注册。生成的输出在返回前始终 经过 XSD 验证,因此正确性由机器检查,而非口头断言。

注意:E&I 系列的付款状态和退回消息 — pacs.002(付款状态报告)和 pacs.004(付款退回)— 已由 pacs008-mcp 生成,并通过 XSD 验证。

套件

这是一个供应商中立、原生采用 Python 的 ISO 20022 MCP 服务系列的一部分:

文档

开发

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

许可证

根据您的选择,采用 Apache License, Version 2.0 或 MIT License 许可。随附的 ISO 20022 消息架构 (*.xsd)版权归 ISO 20022 所有,并依据 ISO 20022 条款重新分发;这些架构 与 iso20022.org 发布的相同。


mcp-name: io.github.sebastienrousseau/camt-exceptions

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。