关于 bankstatementparser-mcp
bankstatementparser-mcp 将 bankstatementparser 库封装为读取银行对账单的 MCP 服务,适用于需要在对话中解析和核验账单的 Agent。它支持多种标准及常见格式,并以行内内容作为输入。
主要功能
- 01检测账单格式
- 02解析交易并生成摘要
- 03验证账单内容
- 04支持 CAMT、MT940、OFX、CSV
- 05提供格式资源和分析提示词
适用场景
- 01解析不同来源的银行账单
- 02检查账单是否可正常解析
- 03提取交易及账单摘要
- 04引导 Agent 分步骤分析账单
MCP 相关
该 MCP 服务向客户端开放五种账单处理工具、一个支持格式资源和一个分析提示词。工具接收行内账单内容并返回可序列化的数据,可通过 stdio、Streamable HTTP 或 SSE 使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
bankstatementparser-mcp
一个 Model Context Protocol 服务,将 bankstatementparser 库作为一流的 Agent 工具开放,用于读取银行对账单。
目录
快速入门
- bankstatementparser-mcp 是什么? — 它解决的问题
- ISO 20022 MCP 套件 — 四个协同工作的服务及各自的适用场景
- 安装 — PyPI、virtualenv、Docker
- 快速开始 — 30 秒内在 Claude Desktop 中注册
- 传输方式 — 通过一条命令行使用 stdio、可流式传输的 HTTP(2026-07-28 和 2025-11-25)以及 SSE
库参考
运维
- 不适合使用 bankstatementparser-mcp 的场景 — 明确说明适用边界
- 开发 — 质量门禁、make 目标
- 安全 — 沙箱策略
- 文档 — 示例、指南
- 贡献 — 如何提交更改
- 许可证 — Apache-2.0
什么是 bankstatementparser-mcp?
模型上下文协议(MCP)是一项开放标准,可让 AI Agent 以统一的方式发现并调用外部工具。bankstatementparser-mcp 是一款 MCP 服务,可将 bankstatementparser 库转化为原生 Agent 工具,让助手能够直接在对话中读取、验证和汇总 银行对账单,支持 ISO 20022 CAMT.053、SWIFT MT940、OFX/QFX 和 CSV 等格式。
每个工具都是对 bankstatementparser 解析器核心(create_parser、detect_statement_format)的轻量封装,因此其结果与 CLI 完全一致。由于 MCP 客户端无法访问服务端的文件系统,这些工具接收 内联对账单内容(以及文件名提示),并在单次调用期间将其写入私有临时文件。工具会返回可序列化为 JSON 的数据。
| 关注点 | bankstatementparser-mcp 的处理方式 |
|---|---|
| 传输方式 | 默认使用 stdio;HTTP 可使用 --transport streamable-http(在同一端点支持 2026-07-28 和 2025-11-25)或 --transport sse |
| 输入模型 | 内联内容 + 文件名提示;无需共享文件系统 |
| 格式保真度 | 工具将处理委托给 bankstatementparser 的 create_parser 流程 |
| 格式检测 | detect_format 与库的 detect_statement_format 保持一致 |
| 验证 | validate_statement 是一次试运行,会返回结构化结果 |
| 隔离 | 每次调用都会将内容写入私有临时文件,并在退出时删除 |
ISO 20022 MCP 套件
bankstatementparser-mcp 是由八个相互协作、与供应商无关的 MCP 服务组成的套件中的 数据接入层。这些服务共同覆盖 ISO 20022 银行对账单工作流和 2026 年 11 月的结构化地址切换,包括对账单深度解析、全目录路由、对账、多格式接入和地址修复。套件中的依赖版本范围保持一致,因此这些服务可以在同一个 Python 环境中顺利共同安装:先从一个服务开始,再根据工作流的需要逐步添加其他服务。
| 服务端 | 范围 | 功能面 | 安装 | 适用场景 |
|---|---|---|---|---|
camt053-mcp | ISO 20022 camt.053/camt.052 银行对账单:解析、验证、筛选、反转;MT940/MT942 迁移;CBPR+ 就绪情况;日记账导出 | 24 个 MCP 工具 · 4 个提示词 · 3 个资源 | pip install camt053-mcp | 你需要端到端处理银行对客户的对账单——这是该套件的旗舰产品 |
iso20022-mcp | 统一网关:search / describe / validate / generate / parse 元工具,可路由至 pain · pacs · camt · acmt 系列 | 7 个元工具 | pip install "iso20022-mcp[all]" | 你希望通过一个入口访问所有消息系列 |
reconcile-mcp | 将预期的 pain.001 付款与实际收到的 camt.053 记录进行匹配——支持精确匹配、部分匹配、一对多、多对一,并为每个匹配评分和说明 | 7 个 MCP 工具 | pip install reconcile-mcp | 你需要可解释的对账单/付款核对 |
bankstatementparser-mcp | 多格式对账单导入:ISO 20022 CAMT.053 和 pain.001、SWIFT MT940、OFX/QFX、CSV | 5 个 MCP 工具 · 1 个提示词 · 1 个资源 | pip install bankstatementparser-mcp | 你的对账单格式混杂或较旧——这个软件包 |
structured-address-fix-mcp | ISO 20022 邮政地址分类、评估和修复,助力满足 2026 年 11 月结构化地址切换要求;另含高层编排层——就绪度评分、清算配置检查,以及审计证据(pacs.008 / pain.001 中的债务人和债权人地址) | 9 个 MCP 工具 | pip install structured-address-fix-mcp | 你需要确保债务人/债权人地址在 2026 年 11 月 14 日切换前就绪 |
iso20022-readiness-suite-mcp | 编排网关:检测 → 结构验证 → 清算配置检查 → 就绪度评分;另含自动修复和 pacs.002 银行响应模拟——一个基于基础服务端构建的元客户端 | 4 个 MCP 工具 | pip install iso20022-readiness-suite-mcp | 你希望通过一个高层入口访问整个套件的就绪度检查/编排功能 |
iso20022-bank-profile-mcp | 管理、验证并提供银行专属清算配置/规则包(CBPR+、SEPA_Instant、FedNow、Generic);管理高级规则包的使用权限 | 4 个 MCP 工具 | pip install iso20022-bank-profile-mcp | 你需要根据本机构的市场惯例检查付款 |
iso20022-evidence-pack-mcp | 将就绪度检查结果、修复差异和模拟响应汇编成密封的审计证据包,可使用 Ed25519 签名 | 6 个 MCP 工具 | pip install iso20022-evidence-pack-mcp | 你需要具备防篡改能力的审计/认证材料 |
一句话概括:camt053-mcp 是银行对账单领域的旗舰产品
(最全面的 camt.05x 功能面,支持 stdio 和经身份验证的可流式 HTTP);
iso20022-mcp 是通用消息工具包(通过少量操作覆盖整个目录);
reconcile-mcp 是对账工作流(我们预期收到的款项实际到账了吗?);
bankstatementparser-mcp 是导入层(输入多种格式,
输出统一的交易结构);structured-address-fix-mcp 是邮政地址
专业工具(确保债务人/债权人地址在 2026 年 11 月切换前就绪)。
安装
| 渠道 | 命令 | 备注 |
|---|---|---|
| PyPI | pip install bankstatementparser-mcp | 会安装 bankstatementparser >= 0.0.28 和 MCP SDK |
| 源码 | git clone https://github.com/sebastienrousseau/bankstatementparser-mcp && cd bankstatementparser-mcp && poetry install | 用于开发 |
| Docker(GHCR) | docker pull ghcr.io/sebastienrousseau/bankstatementparser-mcp:latest | 支持多架构(linux/amd64、linux/arm64);通过 stdio 运行 bankstatementparser-mcp;使用 --transport streamable-http --host 0.0.0.0 并发布端口 8000 即可启用 HTTP |
需要 Python 3.10 或更高版本。支持 macOS、Linux 和 Windows。
使用隔离的虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
python -m pip install -U bankstatementparser-mcp
快速开始
将服务注册到任意 MCP 客户端(以下示例使用 Claude Desktop):
{
"mcpServers": {
"bankstatementparser": { "command": "bankstatementparser-mcp" }
}
}
就这样。重启客户端后,Agent 即可使用这些工具。
默认情况下,服务通过 stdin/stdout 使用 JSON-RPC — 它旨在由 MCP 客户端启动,而非用于交互式操作。如需共享部署,请参阅传输方式。
传输方式
一条命令行,三种传输方式:
| 命令 | 传输方式 | 端点 | 协议版本 |
|---|---|---|---|
bankstatementparser-mcp | stdio | 客户端启动该进程 | 2026-07-28、2025-11-25 |
bankstatementparser-mcp --transport streamable-http | Streamable HTTP | http://127.0.0.1:8000/mcp | 2026-07-28(无状态,server/discover)和 2025-11-25(initialize、Mcp-Session-Id)共用同一端点;响应以服务器发送事件的形式流式传输,GET 会打开服务器到客户端的流 |
bankstatementparser-mcp --transport sse | HTTP+SSE(2024-11-05) | http://127.0.0.1:8000/sse 和 /messages/ | 适用于仍使用旧版传输方式的客户端 |
--host 和 --port 用于更改绑定地址(默认值分别为 127.0.0.1 和 8000)。HTTP 传输方式本身不提供身份验证:请绑定到 loopback 地址,或在绑定到可路由地址之前,将服务置于可信网关之后。每个版本都会通过 passmcp 在两个协议版本下验证 Streamable HTTP,并通过 MCP SDK 客户端验证 SSE;请参阅 ADR 0001。
{
"mcpServers": {
"bankstatementparser": { "url": "http://127.0.0.1:8000/mcp" }
}
}
工具
所有工具都委托给 bankstatementparser 解析器核心,因此其行为与该库完全一致。
list_supported_formats— 列出解析器可读取的所有银行对账单格式detect_format— 检测内嵌载荷所使用的对账单格式parse_statement— 将对账单解析为结构化交易记录和摘要validate_statement— 试运行检查对账单能否顺利解析summarize_statement— 仅返回对账单摘要(不含逐笔交易记录)
此外还提供一个资源和一个提示词:
- 资源
bankstatementparser://formats— 受支持格式及其文件扩展名的只读目录 - 提示词
analyze_statement— 引导式多步骤提示词,指导 Agent 读取并核对对账单
支持的格式:camt(ISO 20022 CAMT.053,.xml)、pain001(ISO 20022 pain.001,.xml)、csv(.csv)、ofx(.ofx)、qfx(.qfx)和 mt940(SWIFT MT940,.mt940 / .sta)。
使用工具
这些工具是 bankstatementparser_mcp.server 模块中的普通函数,因此可以在进程内调用:
from bankstatementparser_mcp.server import (
detect_format,
parse_statement,
summarize_statement,
)
csv = (
"date,description,amount,currency,balance\n"
"2023-01-02,Salary,500.00,EUR,1500.00\n"
"2023-01-03,Groceries,-40.50,EUR,1459.50\n"
)
# 1. Detect the format from the filename hint + content.
print(detect_format(csv, "statement.csv"))
# -> csv
# 2. Parse the statement into structured rows + a summary.
parsed = parse_statement(csv, "statement.csv")
print(parsed["transaction_count"], parsed["columns"])
# 3. Read just the opening/closing balances.
print(summarize_statement(csv, "statement.csv"))
资源和提示词也都是普通函数:formats_resource 对应 bankstatementparser://formats,而 analyze_statement 会返回引导式多步骤提示词。
from bankstatementparser_mcp.server import (
analyze_statement,
formats_resource,
)
print(formats_resource()) # the supported-formats catalogue
print(analyze_statement("statement.csv")) # the guided analysis prompt
可在 examples/ 文件夹中查看可运行的演示,包括 04_resource_and_prompt.py。
何时不应使用 bankstatementparser-mcp
- 你使用的不是支持 MCP 的 Agent。 请直接使用
bankstatementparserCLI 或库——它提供相同的功能,调用链更简单。 - 你需要批量解析磁盘上已有的文件。 该库的 CLI 可直接读取路径,避免 MCP 工具使用的内联内容往返传输。
开发
bankstatementparser-mcp 使用 Poetry 和
mise。
git clone https://github.com/sebastienrousseau/bankstatementparser-mcp.git
cd bankstatementparser-mcp
mise install
poetry install
Makefile 用于协调质量检查关卡(与 CI 保持同步):
| 目标 | 执行内容 |
|---|---|
make check | 所有检查关卡(提交前必须运行) |
make test | pytest --cov=bankstatementparser_mcp --cov-branch --cov-fail-under=100 |
make lint | ruff check + black --check |
make type-check | mypy --strict |
make docs | interrogate --fail-under=100(文档字符串覆盖率) |
当前状态(v0.0.28):行覆盖率和分支覆盖率均为 100%,强制覆盖率下限为 100%;mypy --strict 检查通过,interrogate 覆盖率为 100%。
安全
- 工具不会持久写入文件系统。 每次调用都会将内联内容写入私有临时文件,并在调用返回后立即删除。
validate_statement的验证失败会以结构化的{"is_valid": false, "error": ...}负载形式返回,而不会返回堆栈跟踪。- 依赖项通过
poetry.lock固定版本,并在 CI 中使用pip-audit和 Bandit 进行审计。
如需报告漏洞,请使用 GitHub 私密漏洞报告, 而非公开议题。
文档
- 可运行示例:
examples/ - 发布历史: CHANGELOG.md
- MCP 规范: modelcontextprotocol.io
贡献
欢迎贡献——请参阅
贡献指南。
感谢所有帮助构建 bankstatementparser-mcp 的
贡献者。
相关 MCP 服务
ISO 20022 MCP Suite 的四个核心服务已在上文 ISO 20022 MCP Suite 中进行比较。更广泛的 服务系列——面向银行和金融服务 AI Agent 的开源、Apache-2.0 许可 MCP 服务——还包括:
| 服务 | 用途 |
|---|---|
pain001-mcp | 生成和验证 ISO 20022 pain.001 支付文件(v03–v12、pain.008、SEPA),并进行规则手册检查 |
pacs008-mcp | 生成、验证、解析并进行方案检查的 ISO 20022 pacs.008 FI-to-FI 信用转账,以及 2026 年 11 月地址检查 |
acmt001-mcp | 生成和验证 ISO 20022 acmt 账户管理消息 |
noyalib-mcp | 无损 YAML 1.2 解析、格式化和验证(Rust,100% 符合规范) |
MCP 注册表
mcp-name: io.github.sebastienrousseau/bankstatementparser-mcp
生态系统
bankstatementparser 是模块化金融生态系统的一部分。可选的配套包提供专用加载器、写入器、AI Agent、语言服务器和传输协议适配器:
| Package | GitHub 仓库 | PyPI | 角色 | 描述 |
|---|---|---|---|---|
bankstatementparser | sebastienrousseau/bankstatementparser | 核心引擎 | 统一解析 CAMT(052/053)、PAIN.001、CSV、OFX、QFX、MT940 和 PDF 对账单 | |
bankstatementparser-mcp | sebastienrousseau/bankstatementparser-mcp | AI 协议 | Model Context Protocol(MCP)服务,向大模型和 AI Agent 提供对账单工具 | |
bankstatementparser-lsp | sebastienrousseau/bankstatementparser-lsp | 开发者工具 | Language Server Protocol(LSP),提供实时 SWIFT MT940 对账单验证和诊断 | |
bankstatementparser-transport-ebics | sebastienrousseau/bankstatementparser-transport-ebics | 传输 | 通过 EBICS 3.0(H005)和 2.5(H004)协议自动获取银行对账单 | |
bankstatementparser-writer-xlsx | sebastienrousseau/bankstatementparser-writer-xlsx | 输出写入器 | 将解析后的银行交易格式化并导出为经过样式设置的 Microsoft Excel(.xlsx)工作簿 | |
bankstatementparser-writer-qif | sebastienrousseau/bankstatementparser-writer-qif | 输出写入器 | 将交易序列化为标准 Quicken Interchange Format(.qif)交换文件 | |
bankstatementparser-writer-ofx | sebastienrousseau/bankstatementparser-writer-ofx | 输出写入器 | 将交易序列化为标准 Open Financial Exchange(.ofx)XML/SGML 文件 | |
bankstatementparser-writer-swift | sebastienrousseau/bankstatementparser-writer-swift | 输出写入器 | 将交易导出为 SWIFT MT940 客户对账单和 MT942 临时报告 | |
bankstatementparser-loader-bai2 | sebastienrousseau/bankstatementparser-loader-bai2 | 输入加载器 | 解析 BAI2 现金管理和账户余额对账单 | |
bankstatementparser-loader-mt942 | sebastienrousseau/bankstatementparser-loader-mt942 | 输入加载器 | 解析 SWIFT MT942 临时交易报告,并核对贷记/借记汇总 | |
bankstatementparser-loader-cfonb | sebastienrousseau/bankstatementparser-loader-cfonb | 输入加载器 | 解析法国 CFONB 120 / AFB120 固定宽度 120 字节银行对账单文件 | |
bankstatementparser-loader-camt054 | sebastienrousseau/bankstatementparser-loader-camt054 | 输入加载器 | 导入 ISO 20022 CAMT.054 实时借记/贷记通知流 XML | |
bankstatementparser-loader-sepa | sebastienrousseau/bankstatementparser-loader-sepa | 输入加载器 | 导入 ISO 20022 SEPA PAIN.002 支付状态报告和 PAIN.008 直接借记授权 | |
bankstatementparser-loader-bacs | sebastienrousseau/bankstatementparser-loader-bacs | 输入加载器 | 解析英国 BACS Standard 18 / Faster Payments 固定宽度 106 字节传输文件 |
许可证
根据 Apache License, Version 2.0 授权。 提交以供纳入的任何贡献均应按照上述许可授权, 且不附加任何条款。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。