mcpField
I
iso20022-mcp

iso20022-mcp

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

关于 iso20022-mcp

iso20022-mcp 是面向金融消息处理工作流的 ISO 20022 MCP 网关,适合需要通过单一入口使用多个消息族工具的 Agent。它按消息类型路由搜索、描述、校验、生成和解析请求,并可选安装各族后端服务。

主要功能

  1. 01搜索消息类型与服务目录
  2. 02查询必填字段和输入 Schema
  3. 03校验记录与消息格式
  4. 04生成 ISO 20022 XML
  5. 05解析 pacs 与 camt 入站 XML
  6. 06按消息族路由至后端服务

适用场景

  1. 01查找适用的 ISO 20022 消息类型
  2. 02生成并校验支付消息 XML
  3. 03解析 pacs 或 camt 入站消息

MCP 相关

这是一个 MCP 服务,向客户端提供 7 个路由元工具,可通过 stdio、Streamable HTTP 或 SSE 使用。它将调用转发到已安装的消息族后端服务。

配置

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

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

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

安装包
pypiiso20022-mcp0.0.18

工具

7

收录的工具列表 · 更新于 3 天前

参数类型必填说明
querystring否用例、消息类型或关键词。留空 = 全部。

详细介绍

iso20022-mcp 标志

iso20022-mcp

一个 MCP 服务,包含七个元工具,可将请求路由到所有 ISO 20022 消息系列。

构建 软件包仓库 文档 OpenSSF 记分卡 许可证:Apache-2.0 或 MIT Python 3.10 或更高版本 OpenSSF 最佳实践 Glama MCP 评分

iso20022-mcp 演示:先显示命令行帮助,然后通过 list_families 显示各个系列及其服务是否已安装


目录

快速开始

  • 安装 — 各系列对应的 pip extras、uvx、MCP 客户端配置
  • 要求 — 工具链最低要求、平台
  • 快速入门 — 通过一个服务进行搜索、描述、验证、生成和解析

iso20022-mcp 生态系统

库参考

运维


安装

作为 Python 库
pip install "iso20022-mcp[all]"

最新版本:v0.0.18:通过 stdio、可流式传输的 HTTP 或 SSE(可选使用 HTTPS)提供 7 个路由元工具,核心轻量(仅依赖 mcp), 后端系列服务作为可选 extras 提供;每次 validate/generate 失败时, 都会返回可执行的结构化错误信息,支持 Python 3.10+。

核心轻量。按需添加所需系列的 extras:

pip install "iso20022-mcp[pacs,camt]" # just interbank + statements
pip install iso20022-mcp              # core only; families report as not installed
uvx --from "iso20022-mcp[all]" iso20022-mcp   # run without installing

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

{
  "mcpServers": {
    "iso20022": {
      "command": "iso20022-mcp"
    }
  }
}

要求

  • Python 3.10 或更高版本;CI 已在 Linux 上使用 3.10、3.11、3.12、3.13 和 3.14 进行测试(工具链政策)。
  • mcp 1.x 系列需为 1.30 或更高版本,或 2.x 系列需为 2.2 或更高版本。受 GHSA-84m7-p3x7-pcfv 影响的版本无法解析。
  • 各系列服务均为可选扩展:pain、pacs、camt、acmt 或 all。

快速开始

search(query="reconciliation")
  → [{ "message_type": "camt.053", "family": "camt", "package": "camt053-mcp" }]

describe(message_type="pacs.008")           # required fields + input schema
validate(message_type="pacs.008", records=[…])
generate(message_type="pain.001", records=[…])   # → { "xml": "<Document>…" }
  # bare "pain.001" resolves to pain.001.001.09; on failure the payload is
  # { "error": "Missing required fields for pain.001.001.09: …" } listing
  # every missing or invalid field at once — fix them all and retry once
parse(message_type="camt.053", xml="<Document>…")
  # parse covers pacs + camt only; pain and acmt are outbound-only

先使用 search 或 list_families 查找消息类型,再通过 describe 查看其必填字段和输入架构,然后调用 validate、generate 或 parse。每次调用都会根据消息类型的前缀路由至相应的系列服务。


iso20022-mcp 生态系统

iso20022-mcp 是 ISO 20022 MCP Suite 的通用消息工具包:由八个协同工作的、厂商中立的 MCP 服务组成,涵盖 ISO 20022 银行对账单工作流和 2026 年 11 月结构化地址切换,并提供用于就绪度评分、清算配置文件检查和审计证据的编排层。整个套件的依赖范围保持一致,因此各服务可以在同一个 Python 环境中顺利共存:从一个开始,随着工作流扩展再添加其他服务。

组件用途使用场景
camt053-mcpISO 20022 camt.053/camt.052 银行对账单:解析、验证、筛选、反向处理;MT940/MT942 迁移;CBPR+ 就绪度;日记账导出(24 个工具、4 个提示词、3 个资源)你需要端到端处理银行与客户之间的对账单;这是套件的旗舰组件
iso20022-mcp统一网关:将 search / describe / validate / generate / parse 元工具路由至 pain · pacs · camt · acmt 系列(7 个元工具)你希望通过一个入口访问所有消息系列:本软件包
reconcile-mcp将预期的 pain.001 付款与实际观察到的 camt.053 条目进行匹配:精确匹配、部分匹配、一对多、多对一,并为每次匹配评分和说明原因(7 个工具)你需要可解释的对账单与付款核对
bankstatementparser-mcp多格式对账单导入:ISO 20022 CAMT.053 和 pain.001、SWIFT MT940、OFX/QFX、CSV(5 个工具、1 个提示词、1 个资源)你的对账单采用混合格式或旧格式
structured-address-fix-mcp面向 2026 年 11 月结构化地址切换的 ISO 20022 邮政地址分类、评估和修正(9 个工具)你需要在 2026 年 11 月 14 日前准备好债务人/债权人地址
iso20022-readiness-suite-mcp编排:检测、验证、清算配置文件检查和就绪度评分,以及修正和 pacs.002 响应模拟(4 个工具)你希望通过一个高级入口获取整个套件的就绪度信息
iso20022-bank-profile-mcp管理、验证和提供银行清算配置文件及规则包(CBPR+、SEPA_Instant、FedNow、Generic)(4 个工具)你需要根据所在机构的市场惯例检查付款
iso20022-evidence-pack-mcp将发现结果、修正差异和模拟响应汇编为密封的审计证据包,可使用 Ed25519 签名(6 个工具)你需要具备防篡改能力的审计或认证材料
pain001-mcp、pacs008-mcp、acmt001-mcp、camt-exceptions此网关所路由到的各系列专用服务,以扩展形式安装iso20022-mcp[all] 会为你安装这些服务;请参阅功能

功能一览

领域功能状态
发现在整个目录中使用 search、list_families、list_servers已发布;核心安装即可使用
架构describe 返回必填字段和输入 JSON Schema已发布;需要安装相应系列的附加包
验证validate 根据消息类型的架构检查记录已发布;适用于所有系列
生成generate 为 pain、pacs、acmt 和 camt.056/camt.029 生成经验证的 XML已发布
解析parse 读取传入的 pacs 和 camt XML已发布;pain 和 acmt 仅支持出站
传输stdio、可流式传输的 HTTP 和 SSE,可选 HTTPS已发布;自 0.0.18 起支持 HTTPS

生态系统对比

此网关的替代方案是让 Agent 直接连接每个系列的服务。 以下数据于 2026-10-20 通过 stdio 使用 list_tools 测得:

项目需配置的服务数Agent 可见的工具数估算目录 token 数
iso20022-mcp17~2,200
直接连接全部四个系列的服务473~36,400

证据和完整对比表请参见 docs/COMPARISON.md。


基准测试

路由耗时仅为微秒级;每个进程首次调用某个系列时,会执行一次延迟导入。使用 benches/bench_gateway.py --quick 测得。

场景结果环境
family_for 路由0.54 µsApple A18 Pro,Python 3.12.15,mcp 2.3.0
search_catalog7.29 µsApple A18 Pro,Python 3.12.15,mcp 2.3.0
首次调用 pain.001(冷导入)528 msApple A18 Pro,Python 3.12.15,全新解释器
后续调用 pain.001(热调用)5.04 µsApple A18 Pro,Python 3.12.15

方法和完整结果请参见 docs/BENCHMARKS.md。


功能

7 个路由元工具:

  • search — 按用例/关键词查找消息类型(“reconciliation”、“pacs.008”)。(系列:全部 — 目录)
  • list_families — 列出系列、其功能以及已安装的后端包。(系列:全部)
  • list_servers — 完整套件映射:系列 + E&I 消息 + 专用服务(reconcile、agent-payment bridge)。(系列:全部)
  • describe — 返回消息类型的必填字段和输入 JSON Schema。(系列:全部)
  • validate — 根据消息类型的架构验证记录。(系列:全部)
  • generate — 根据记录生成经过验证的 ISO 20022 XML 消息。(系列:pain · pacs · acmt)
  • parse — 将传入的 ISO 20022 XML 消息解析为结构化数据。(系列:pacs · camt)

操作会根据功能支持情况执行:对 camt.053 对账单(一种传入格式)调用 generate 时,会返回清晰易懂的错误,而不是含糊地失败;对于每种“未安装软件包”的情况,都会明确告知需要执行哪条 pip install 命令。

路由支持的各系列均具备以下三项易用性保障:

  • 可操作的结构化错误。 后端服务引发的任何错误—— 不仅限于它返回的错误——都会以 {"error": "<Type>: <message>"} 负载的形式传递给 Agent,而不是显示不透明的 工具执行失败。对于 pain 生成,错误会一次性列出所有 缺失或无效字段,因此修正后重试一次即可。
  • message_type 系列别名。 仅提供系列名称时,会由后端服务解析为具体版本:pain.001 → pain.001.001.09、pain.008 → pain.008.001.02。如果已知完整版本类型,仍建议优先使用。
  • 预先说明各系列的解析支持范围。 parse 仅支持传入系列:pacs(例如 pacs.008)和 camt(例如 camt.053)。发起系列 pain 和 acmt 仅支持出站——此处没有对应的解析器,因此不要尝试对 pain.001 或 acmt.001 执行生成→解析往返;请改用 validate (或后端服务的 XSD 验证)。
路由
前缀系列后端服务generateparse
pain客户贷记转账发起pain001-mcp✅—
pacs金融机构间客户贷记转账pacs008-mcp✅✅
camt银行对客户对账单camt053-mcp—✅
acmt开户指令acmt001-mcp✅—
camt.056/camt.029取消 / 解决(E&I)camt-exceptions✅—

generate("camt.056.001.12", …) 会路由到 camt-exceptions。网关还会通过 search 和 list_servers 提供专用服务 — reconcile-mcp 和 ap2-iso20022 — 供发现使用 (它们通过各自的工具调用)。

网关会延迟且按需导入每个后端服务 — 核心仅依赖 mcp,并在首次使用时加载相应系列的服务。消息 类型根据其前缀匹配(pacs.008.001.08 → pacs)。pain 附加依赖要求 pain001-mcp >= 0.0.56,该版本提供了便于大模型使用的 generate 接口(字段别名、计算得出的 nb_of_txs / ctrl_sum、一次性返回所有字段错误),网关的保证正是基于此构建的。


配置

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

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

--host 和 --port 用于更改绑定地址(默认值分别为 127.0.0.1 和 8000)。在 mcp 1.x 和 2.x 中,--ssl-certfile cert.pem --ssl-keyfile key.pem 均可让任一 HTTP 传输方式改用 HTTPS。HTTP 传输方式本身不提供身份验证:请绑定到环回地址,或在绑定到可路由地址之前,将服务置于你信任的网关之后。每个版本都会通过 passmcp 在两个协议时期的 Streamable HTTP 上进行验证,并通过 MCP SDK 客户端在 SSE 上进行验证;详见 ADR 0001。

{
  "mcpServers": {
    "iso20022": { "url": "http://127.0.0.1:8000/mcp" }
  }
}

运行 iso20022-mcp --help 查看所有选项。


示例

  • examples/mcp_tools.py:使用核心安装进行发现,然后调用路由后的 describe、validate、generate 和 parse(安装 pip install -e ".[all]" 后运行 python examples/mcp_tools.py)。
  • benches/bench_gateway.py:查看网关在各系列服务之上增加了什么。
  • 如需使用专用引擎,将 camt.053 对账单与预期的 pain.001 付款进行匹配,请参见 reconcile-mcp。

何时不应使用 iso20022-mcp

  • 你需要某个系列的专用工具。 网关提供各系列共有的操作。例如,camt053-mcp 的 MT940 迁移或日记账导出功能仅在该服务上提供:请直接连接该服务。
  • 你需要对 pain 或 acmt 进行往返解析。 这里仅支持向外生成,不提供解析器。
  • 你需要银行、结算引擎或付款审批人。 此工具会路由和验证消息;它不会将任何内容发送到任何地方,也不提供银行认证。
  • 你需要为 HTTP 传输方式启用身份验证。 内置功能不提供身份验证;请在前面部署一个带身份验证的网关。

开发

git clone https://github.com/sebastienrousseau/iso20022-mcp
cd iso20022-mcp
python -m venv .venv && . .venv/bin/activate
make dev
make check                         # lint, mypy strict, tests, version agreement
python benches/bench_gateway.py --quick

make check 会运行 ruff、black、严格模式下的 mypy、pytest(后端均使用伪实现),并执行要求行覆盖率和分支覆盖率达到 100% 的门槛,以及版本一致性检查。 CI 还会运行 CodeQL、OpenSSF Scorecard、reuse lint、MCP Inspector、Hypothesis 属性测试,以及对每个工具进行 Atheris 模糊测试(每次变更运行两分钟,每周运行 30 分钟)。请参阅 DEVELOPMENT.md 和 CONTRIBUTING.md。


安全

工具均为只读、幂等且采用封闭世界设计:没有工具会打开路径、URL 或套接字,而且每次调用都会通过一个注册表表格进行路由,因此调用方输入不会传递给导入操作。Stdio 是默认方式;HTTP 传输绑定到环回地址,可提供 HTTPS 服务,且自身不带身份验证。发布版本从签名标签可复现地构建,并提供 SLSA 来源证明和可供验证的 sigstore 签名。威胁模型和证据见安全保证案例和安全审查。该项目已获得 OpenSSF 最佳实践 通过徽章。

请按照 SECURITY.md 报告漏洞。


文档

用户手册 · API 参考:工具 · 开发者指南 · 架构 · 系列项目图 · 变更日志 · 路线图


稳定性保证

本项目尚未达到 1.0 版本,版本号以 0.0.1 为步长递增。破坏性变更的判定范围是 Agent 所看到的 MCP 接口:工具名称、参数以及返回内容的结构(包括 {"error": ...} 载荷)。即使 Python 签名没有变化,对其中任一项的修改也属于破坏性变更,并会在变更日志中说明。生成的 XML 来自系列服务,并遵循各自的稳定性规则。Python 最低版本仅会按照工具链政策所述进行调整。


许可证

本项目采用双许可证,您可以选择以下任一许可证:

依赖项各自遵循其许可证。

徽标名为“Computer connected”,由 glyph.faisalovers 创作,来自 Noun Project,依据 CC BY 3.0 授权,并针对浅色和深色主题重新着色。


mcp-name: io.github.sebastienrousseau/iso20022-mcp

评论

支持 Markdown

第一次接触 MCP?

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

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