mcpField
P
pacs008-mcp

pacs008-mcp

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

关于 pacs008-mcp

pacs008-mcp 将 `pacs008` 库封装为 ISO 20022 `pacs.008` 金融机构间转账工具,面向需要处理转账消息的 AI Agent。它涵盖消息生成、解析、方案规则校验及地址检查,并支持转换旧版 SWIFT MT103 记录。

主要功能

  1. 01发现 pacs 消息类型与方案
  2. 02校验记录、方案规则及原始 XML
  3. 03生成并解析 pacs 消息
  4. 04将 SWIFT MT103 转为记录
  5. 05分类、校验与修复邮政地址
  6. 06批量校验付款方与收款方地址

适用场景

  1. 01生成并检查 pacs.008 转账 XML
  2. 02解析入站 ISO 20022 消息
  3. 03迁移 SWIFT MT103 转账数据
  4. 04检查地址是否符合结构化地址政策

MCP 相关

这是一个 MCP 服务,将 `pacs008` 库的能力作为类型化工具提供给客户端,可通过 stdio、Streamable HTTP 或 SSE 连接。

配置

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

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

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

安装包
pypipacs008-mcp0.0.16

工具

16

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

此工具无需参数。

详细介绍

pacs008-mcp:用于 ISO 20022 FI-to-FI 信用转账的 MCP 服务

pacs008-mcp 横幅

构建 软件包注册表 文档 OpenSSF 记分卡 OpenSSF 最佳实践 许可证:Apache-2.0 或 MIT Python 3.10 或更高版本 Glama MCP 服务列表

pacs008-mcp 演示

一个 Model Context Protocol 服务,它将 pacs008 ISO 20022 FI-to-FI 客户信用转账库作为工具提供给 AI Agent 和助手——可发现消息类型和支付方案配置文件,根据 JSON Schema 和支付渠道的使用指南验证记录,生成经过验证的 XML,根据随附的 XSD 验证原始 XML,并解析入站消息;这些功能都可通过你喜爱的 MCP 客户端使用。

最新版本:v0.0.15:提供 16 个 MCP 工具,支持 stdio、可流式传输的 HTTP 或 SSE;所有工具均由 pacs008 库提供支持,适用于 Python 3.10+。validate_xml 现在会拒绝 DTD 实体并返回错误负载,所有 CI 和映像安装均已固定哈希值。

目录

概览

Model Context Protocol(MCP)是一种开放标准,让 AI Agent 和助手能够以统一的方式发现并调用外部工具。pacs008-mcp 是一个 MCP 服务,可将 pacs008 库转化为一组一流的 Agent 工具,让助手能够直接在对话中生成、验证和解析 ISO 20022 pacs.008 FI-to-FI 客户信用转账 XML 消息,以及相关的 pacs.002/.004 状态和退回消息。

每个工具都是对 pacs008 库的轻量型、有类型约束的封装——与 CLI 和 REST API 使用同一个软件包——因此所有接口的行为都一致。工具会返回可序列化为 JSON 的数据;发生验证错误时,会返回 {"error": ...} 负载,而不会抛出异常。

flowchart LR
    A["MCP client<br/>(Claude Desktop, IDE, agent)"] -->|stdio| B["pacs008-mcp"]
    B -->|delegates to| C["pacs008 library"]
    C -->|render + validate| D["ISO 20022 pacs XML"]

安装

pacs008-mcp 可在 macOS、Linux 和 Windows 上运行,需要 Python 3.10+ 和 pip。它会自动安装核心 pacs008 库和 MCP SDK。

python -m pip install pacs008-mcp

**注意:**由于核心 pacs008 库尚未发布到 PyPI,请先从 源代码安装:

python -m pip install "git+https://github.com/sebastienrousseau/pacs008.git"
python -m pip install pacs008-mcp

快速开始

通过 stdio 启动服务(默认传输方式):

pacs008-mcp

在任意 MCP 客户端(例如 Claude Desktop)中注册该服务,只需将其添加到 客户端的配置中:

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

传输方式

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

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

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

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

工具

所有工具都封装了 pacs008 库,因此其行为与 CLI 和 REST API 完全一致。

  • list_message_types — 列出 20 种受支持的 ISO 20022 pacs 消息类型
  • list_schemes — 列出已注册的方案/使用指南配置
  • get_scheme — 检查方案配置的规则
  • get_required_fields — 获取消息类型所需的输入字段
  • get_input_schema — 获取消息类型的完整输入 JSON Schema
  • validate_records — 根据消息类型的架构验证扁平记录
  • validate_scheme — 根据方案的使用指南验证记录
  • generate_message — 生成经过验证的 pacs XML 消息
  • validate_xml — 根据内置 XSD 验证原始 XML 字符串
  • parse_message — 解析并分类传入的 ISO 20022 消息
  • convert_mt103 — 将旧版 SWIFT MT103 转换为适用于 pacs.008 的记录(MT→MX 迁移)
  • classify_address — 将邮政地址分类为结构化/混合/非结构化
  • validate_address — 根据地址策略验证单个邮政地址
  • repair_address — 将旧版非结构化地址行升级为混合/结构化形式
  • validate_addresses — 批量验证所有支付记录中的各方地址
  • verify_bic_online — 检查 BIC 格式,并在已配置的 BIC 目录中查询(需要 online extra)

2026 年 11 月结构化地址截止日期

2026 年 11 月 14 日,SWIFT CBPR+、HVPS+、TARGET2 RTGS、CHAPS、Fedwire 和 Lynx 将停用完全非结构化邮政地址——在此日期之后,任何包含仅有非结构化邮政地址的跨境或大额支付都会在支付通道被拒绝。上文提到的四种地址工具封装了 pacs008 库的 standards.address 模块,帮助 Agent 提前做好准备:classify_address 可显示地址当前所处的状态,validate_address / validate_addresses 会执行策略(默认采用截止日期规则 hybrid_or_structured,拒绝非结构化地址),而 repair_address 会运行适用于特定国家/地区的启发式规则(GB、US、DE、FR、JP,以及尽力而为的回退方案),将旧版地址行转换为混合格式。 修复步骤仍处于实验阶段——提交给下游系统前,请先审核其输出。

使用工具

你可以直接通过服务实例在进程内调用这些工具,无需传输层。这与 Agent 通过 stdio 收到的内容一致。此代码片段的可运行版本位于 examples/mcp_tools.py。

import asyncio

from pacs008_mcp.server import server

record = [
    {
        "msg_id": "MSG001",
        "creation_date_time": "2026-01-15T10:30:00",
        "nb_of_txs": "1",
        "settlement_method": "CLRG",
        "interbank_settlement_date": "2026-01-15",
        "end_to_end_id": "E2E001",
        "interbank_settlement_amount": "1000.00",
        "interbank_settlement_currency": "EUR",
        "charge_bearer": "SHAR",
        "debtor_name": "Debtor Corp",
        "debtor_agent_bic": "DEUTDEFF",
        "creditor_agent_bic": "COBADEFF",
        "creditor_name": "Creditor Ltd",
    }
]


async def main() -> None:
    async def call(name, args):
        result = await server.call_tool(name, args)
        content = result[0] if isinstance(result, tuple) else result
        return content[0].text if content else ""

    print(await call("list_schemes", {}))
    xml = await call("generate_message",
                     {"message_type": "pacs.008.001.08", "records": record})
    print(xml[:46])  # -> <?xml version="1.0" encoding="UTF-8"?> ...


asyncio.run(main())

直接运行:

python examples/mcp_tools.py

开发

pacs008-mcp 使用 Poetry 和 mise。

git clone https://github.com/sebastienrousseau/pacs008-mcp.git && cd pacs008-mcp
mise install
poetry install
poetry shell

此软件包依赖核心 pacs008 库。在该库发布到 PyPI 之前, 请先从源代码安装: pip install "git+https://github.com/sebastienrousseau/pacs008.git"。

Makefile 负责协调质量检查(与 CI 保持同步):

make check        # all gates (REQUIRED before commit)
make test         # pytest, 100% line+branch coverage
make lint         # ruff + black
make type-check   # mypy --strict
make doc-coverage # interrogate, 100% docstrings
make mutate       # mutmut over the tool handlers, gated
make docs         # Sphinx site, warnings are errors

文档


相关 MCP 服务

属于 ISO 20022 MCP Suite——面向银行和金融服务 AI Agent 的开源 Apache-2.0 许可 MCP 服务:

服务用途
pain001-mcp生成并验证 ISO 20022 pain.001 支付文件(v03–v12、pain.008、SEPA),并检查规则手册
camt053-mcp解析并对账 ISO 20022 camt.053 银行对客户对账单——已支持 CBPR+/HVPS+
acmt001-mcp生成并验证 ISO 20022 acmt 账户管理消息
bankstatementparser-mcp将银行对账单(BAI2、MT940/MT942、CAMT.053、OFX、CSV)解析为结构化交易
noyalib-mcp无损解析、格式化和验证 YAML 1.2(Rust,100% 符合规范)

MCP 注册表

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


许可证

根据 Apache License, Version 2.0 授权。提交以供纳入的任何贡献均应按上述条款授权,不附加其他条款。

贡献

欢迎贡献——请参阅贡献指南。感谢所有贡献者。

致谢

基于 pacs008 ISO 20022 FI-to-FI 客户信用转账 库和 Model Context Protocol Python SDK 构建。

评论

支持 Markdown

第一次接触 MCP?

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

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