mcpField
S
structured-address-fix-mcp

structured-address-fix-mcp

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

关于 structured-address-fix-mcp

structured-address-fix-mcp 是面向金融团队的 MCP 服务,用于按方案政策检查 ISO 20022 邮政地址,并为 2026 年 11 月切换做准备。它可分类和评估地址,并为地址及支付报文提出带说明和置信度的修复方案。

主要功能

  1. 01分类邮政地址结构
  2. 02按方案政策评估地址
  3. 03修复地址及支付报文
  4. 04预览报文补丁操作
  5. 05将自由文本地址解析为字段

适用场景

  1. 01检查地址是否符合 2026 年切换要求
  2. 02查找 pacs.008 或 pain.001 中的地址问题
  3. 03应用前预览拟议更改

MCP 相关

它向 MCP 客户端提供地址分类、评估和修复工具,支持 stdio、streamable HTTP 和 SSE。

配置

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

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

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

安装包
pypistructured-address-fix-mcp0.0.6

工具

13

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

此工具无需参数。

详细介绍

structured-address-fix-mcp:适用于 ISO 20022 邮政地址的 MCP 服务

PyPI Version Python Versions License Tests Quality OpenSSF Scorecard Documentation Glama MCP server score

structured-address-fix-mcp 演示

一个 Model Context Protocol 服务,将 structured-address-fix ISO 20022 邮政地址库作为工具提供给 AI Agent 和助手 — 可判定地址的结构类型、依据方案策略评估地址,并将其(或整条 pacs.008 / pain.001 消息)修复为 2026 年 11 月切换要求的结构化格式,所有操作都可通过你喜爱的 MCP 客户端完成。

2026 年 11 月 14 日的临界期限。 从这一天起,CBPR+、HVPS+、T2、CHAPS 和 Fedwire 将不再接受完全非结构化的邮政地址:如果付款方或收款方的地址是自由文本块,支付指令就会被拒绝。structured-address-fix-mcp 将就绪情况检查和修复功能交到你的 Agent 手中 — assess_message 会标记有问题的参与方,remediate_message 会提出合规格式, get_cutover_date 会报告强制生效日期。v0.0.6,支持 stdio、可流式传输的 HTTP 和 SSE 传输方式,提供 13 个工具,要求 Python 3.12+。

目录

概览

Model Context Protocol(MCP)是一项开放标准,可让 AI Agent 和助手以统一方式发现并调用外部工具。 structured-address-fix-mcp 是一个 MCP 服务,可将 structured-address-fix 库转化为一组一流的 Agent 工具, 让助手能够直接在对话中读取邮政地址 — 或 ISO 20022 pacs.008 / pain.001 消息中的每个地址参与方 — 并使其符合将于 2026 年 11 月 14 日起强制执行的结构化地址规则。

其核心功能是一站式修复工作流:评估消息,找出地址将在临界期限被拒绝的参与方,并输出合规格式,同时解释每项更改并对其进行置信度评分。

每个工具都是对 structured_address_fix.services 的轻量类型化封装 — CLI 也使用这一统一共享的门面,因此所有接口的行为都一致。工具会返回可序列化为 JSON 的数据;出错时会返回 {"error": ...} 负载,而不会抛出异常。

flowchart LR
    A["MCP client<br/>(Claude Desktop, IDE, agent)"] -->|stdio, streamable HTTP or SSE| B["structured-address-fix-mcp"]
    B -->|delegates to| C["structured_address_fix.services"]
    C -->|classify + assess + remediate| D["ISO 20022 postal addresses<br/>(pacs.008 / pain.001)"]

ISO 20022 MCP 套件

structured-address-fix-mcp 是一组协调配合、供应商中立的 MCP 服务中的邮政地址专家,专为 ISO 20022 迁移而打造。 套件中的依赖范围保持一致,因此这些服务可以在同一个 Python 环境中顺利共存:先从一个服务开始,随着工作流扩展,再添加其他服务。

服务范围安装适用场景
structured-address-fix-mcp针对 2026 年 11 月结构化地址截止期限的 ISO 20022 邮政地址分类、评估与修正pip install structured-address-fix-mcp你需要让债务人/债权人地址做好应对截止期限的准备——本软件包
pacs008-mcp生成、验证、解析并按业务规则检查 ISO 20022 pacs.008 FI-to-FI 信用转账,并提供 2026 年 11 月地址检查pip install pacs008-mcp你需要端到端处理 pacs.008 消息
pain001-mcp生成并验证 ISO 20022 pain.001 付款发起文件(v03–v12、pain.008、SEPA),并检查规则手册pip install pain001-mcp你需要生成对外付款文件
camt053-mcpISO 20022 camt.05x 银行对账单:解析、验证、筛选、反向转换;MT94x 迁移;CBPR+ 准备情况pip install camt053-mcp你需要处理银行对客户的对账单
iso20022-readiness-suite-mcp编排网关:检测 → 验证 → 清算配置检查 → 准备度评分,并支持修正和 pacs.002 模拟——基于基础服务构建的元客户端pip install iso20022-readiness-suite-mcp你希望通过一个高层入口,获取套件的准备度评估/编排功能
iso20022-bank-profile-mcp管理、验证和提供特定银行的清算配置/规则包;并控制高级规则包的使用权限pip install iso20022-bank-profile-mcp你需要根据本机构的市场惯例检查付款
iso20022-evidence-pack-mcp将准备度发现、修正差异和模拟响应汇编为密封的审计证据包,可使用 Ed25519 签名pip install iso20022-evidence-pack-mcp你需要具备篡改可见性的审计/认证材料

该套件还包括 iso20022-mcp 网关(可在整个消息目录中统一使用 search / describe / validate / generate / parse 元工具),以及 acmt001-mcp(账户 管理)。pacs008-mcp 会对消息进行地址问题检查;而 structured-address-fix-mcp 则是专门针对各方案政策,对地址本身进行分类、评估和修正的工具。

安装

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

python -m pip install structured-address-fix-mcp
使用隔离的虚拟环境(推荐)
python -m venv venv
source venv/bin/activate        # macOS/Linux
venv\Scripts\activate           # Windows
python -m pip install -U structured-address-fix-mcp

快速开始

10 分钟安装 → 配置 MCP 客户端 → 开始首次对话的教程,请参阅 docs/quickstart.md。

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

structured-address-fix-mcp

将其添加到客户端配置,即可在任意 MCP 客户端(例如 Claude Desktop)中注册:

{
  "mcpServers": {
    "structured-address-fix": { "command": "structured-address-fix-mcp" }
  }
}

默认情况下,该命令通过 stdin/stdout 进行 MCP 通信——它旨在由 MCP 客户端启动,而非供交互式使用。如需共享部署 或 HTTP 客户端,请参阅传输方式。之后,Agent 可以按需调用下方的工具来评估和修正邮政地址。

传输方式

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

命令传输方式端点协议修订版本
structured-address-fix-mcpstdio客户端启动进程2026-07-28、2025-11-25
structured-address-fix-mcp --transport streamable-httpStreamable HTTPhttp://127.0.0.1:8000/mcp2026-07-28(无状态,server/discover)和 2025-11-25(initialize、Mcp-Session-Id)共用同一端点;响应以服务器发送事件的形式流式传输,GET 用于打开服务器到客户端的流
structured-address-fix-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": {
    "structured-address-fix": { "url": "http://127.0.0.1:8000/mcp" }
  }
}

工具

所有工具都委托给共享的 structured_address_fix.services 层,因此 其行为与 CLI 完全相同。工具返回可序列化为 JSON 的数据;遇到领域错误、 验证错误或值错误时,会返回 {"error": ...} 负载。

  • list_policies — 列出所有可用的地址政策(规则手册)及其层级(例如 cbpr-2026、sepa、hvps-plus、generic-structured)
  • classify_address — 将邮政地址分类为结构化、混合式或非结构化(快速检查其形式)
  • assess_address — 根据某项政策评估单个地址并返回检查结果
  • assess_message — 根据某项政策评估 pacs.008 / pain.001 消息中的每个收件方
  • remediate_address — 提出符合要求的地址形式,并提供修改前后的内容以及带置信度评分的补丁操作
  • remediate_message — 评估并修正消息中的每个收件方;可选地应用这些操作并返回修补后的 XML
  • preview_patch — 返回修正消息时将应用的补丁操作(试运行)
  • explain_finding — 说明某个检查结果代码(例如 SAF001)的含义以及解决方法
  • get_cutover_date — 返回具有约束力的 2026 年 11 月结构化地址切换日期及设定该日期的方案
  • normalize_country_code — 将国家名称或代码解析为 ISO 3166-1 alpha-2 代码;接受英文名称、本地自称(Deutschland、España、Nippon)和常见别称(UK、USA、Holland、UAE)
  • split_street_and_building — 将街道地址行拆分为街道名称、建筑物和子建筑物,同时处理数字在前的格式(10 Downing Street)以及在欧洲大陆许多地区使用的数字在后的格式
  • validate_postal_policy — 根据国家格式政策验证地址的 post_code(美国 ZIP / ZIP+4、英国字母数字格式等)
  • parse_address_libpostal — 将自由文本地址解析为 ISO 20022 邮政字段;若安装了可选的 postal 扩展,则使用 libpostal 的统计解析器,否则使用确定性回退方案

评估/修正工具共享的可选参数:policy_id (默认为 cbpr-2026)、as_of(用于决定截止日期措辞的 YYYY-MM-DD 日期;默认为今天)以及 country_hint(当地址本身不含国家信息时,假定使用的 ISO 3166-1 alpha-2 代码)。

使用工具

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

import asyncio

from structured_address_fix_mcp import server

# A fully unstructured address: two free-text lines, no structured fields.
# At the 14 Nov 2026 cliff this form is rejected across the major schemes.
unstructured = {
    "address_lines": ["10 Downing St", "London SW1A 2AA"],
    "country": "GB",
}


async def main() -> None:
    async def call(name, args):
        result = await server.server.call_tool(name, args)
        # mcp 2.x returns a CallToolResult (read .content); 1.x
        # returns the content list, or a (content, meta) tuple.
        content = getattr(result, "content", None)
        if content is None:
            content = result[0] if isinstance(result, tuple) else result
        return content[0].text if content else ""

    # When does the cliff bite?
    print(await call("get_cutover_date", {}))
    # -> {"date": "2026-11-14", "scheme": "SWIFT CBPR+ UG2026"}

    # What shape is this address in right now?
    print(await call("classify_address", {"address": unstructured}))
    # -> {"classification": "unstructured"}

    # Propose the compliant form, with each change explained.
    print(await call("remediate_address",
                     {"address": unstructured, "policy_id": "cbpr-2026"}))
    # -> {"policy_id": "cbpr-2026", "findings": [...], "suggestions": [...],
    #     "is_compliant_before": false, "is_compliant_after": true, ...}


asyncio.run(main())

直接运行:

python examples/mcp_tools.py

相关 MCP 服务

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

服务用途
pacs008-mcp生成、验证、解析并检查 ISO 20022 pacs.008 FI-to-FI 信用转账是否符合方案要求 + 2026 年 11 月地址 lint 检查
pain001-mcp生成并验证 ISO 20022 pain.001 支付文件(v03–v12、pain.008、SEPA),并进行规则手册检查
camt053-mcp解析、验证、筛选并逆向转换 ISO 20022 camt.05x 银行对账单;支持 MT94x 迁移和 CBPR+ 就绪检查
acmt001-mcp生成并验证 ISO 20022 acmt 账户管理报文
iso20022-mcp统一网关:可在 pain · pacs · camt · acmt 系列中执行 search / describe / validate / generate / parse

哪些情况下不应使用 structured-address-fix-mcp

  • 你没有 MCP 客户端。 此服务只有与支持 MCP 的宿主(Claude Desktop、IDE 插件、Agent 框架)配合使用才有意义。对于脚本或 CI 场景,structured-address-fix CLI 可以覆盖相同用途,且无需承担 stdio 协议开销。
  • 你需要经过身份验证的多租户服务。 HTTP 传输方式(传输方式)本身不提供身份验证,并且默认绑定到环回地址;请将其置于你信任的网关后方。OAuth 2.1 资源服务身份验证和租户范围控制已列入路线图,但尚未包含在此版本中。
  • 你需要流式响应。 工具调用返回完整值,而非数据流。大型报文会在一次调用中完成评估和修复,不会拆分为多个响应。
  • 你需要构建 pacs.008 / pain.001 报文。 这不在本服务范围内;本服务只修复报文中的地址。请使用 pacs008-mcp 或 pain001-mcp 来生成和验证报文本身。

开发

structured-address-fix-mcp 使用 Poetry 和 mise。

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

注意: 此服务依赖核心 structured-address-fix 库。在该库发布到 PyPI 之前,开发依赖组会从同级目录检出(../structured-address-fix)安装该库;请参阅 CONTRIBUTING.md。

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

make check        # all gates (REQUIRED before commit): lint + type-check + test + examples
make test         # pytest
make lint         # ruff + black
make type-check   # mypy --strict
make security     # bandit

安全

structured-address-fix-mcp 是一个轻量封装——每个工具都会委托给 structured_address_fix.services,XML 解析的纵深防御(defusedxml)由该模块负责。工具会捕获文档所述的领域错误、验证错误和值错误,并按照套件惯例返回 {"error": ...} 封装;绝不会将原始异常传递给 MCP 客户端。有关漏洞报告流程、支持的版本以及完整的供应链安全措施(SLSA L3 来源证明、PEP 740 证明、SBOM,以及 NIST SP 800-218 SSDF 实践映射),请参阅 SECURITY.md。漏洞应通过 GitHub 私密漏洞报告渠道提交,而非发布到公开议题中。

文档


MCP Registry

mcp-name: io.github.sebastienrousseau/structured-address-fix-mcp


许可证

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

贡献

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

致谢

本项目基于 structured-address-fix ISO 20022 邮政地址库和 Model Context Protocol Python SDK 构建。

评论

支持 Markdown

第一次接触 MCP?

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

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