mcpField
B
bank-statement-pdf

bank-statement-pdf

远程服务
mcp.zovo.one金融数据2今天更新

关于 bank-statement-pdf

bank-statement-pdf 的名称指向 PDF,但所提供的项目文档描述的是将银行 CSV 导入本地账本的 MCP 服务。它支持交易分类、按币种汇总、检测周期性支出及核对收据。

主要功能

  1. 01导入并去重银行 CSV
  2. 02按规则分类交易
  3. 03按币种汇总收支
  4. 04检测周期性支出
  5. 05将扣款与收据核对
  6. 06以 JSON 在本地保存账本

适用场景

  1. 01查看月度收入与支出
  2. 02查找订阅及年度费用
  3. 03找出缺失收据或未到账款项
  4. 04导入支持银行的对账单

MCP 相关

提供导入、搜索、分类、汇总、导出和核对交易的工具,以及月度汇总资源和月末复核提示词。MCP 客户端可借此管理本地银行账本。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.zovo.one/mcp/bank-statement-pdf
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.zovo.one/mcp/bank-statement-pdf需要授权
安装包
mcpbbank-statement.mcpb0.21.0

工具

15
参数类型必填说明
bankenum否银行配置文件。默认值为 "auto":由表头决定。"generic" 会跳过配置文件检测,仅使用表头启发式规则auto | revolut | wise | mbank | pko | ing | n26 | generic
pathstring是使用 bank_upload 上传的对账单名称
accountstring否此账户的名称,例如 "business EUR"。默认值:去掉扩展名的文件名。之后导入同一账户时会与该账户的数据去重
currencystring否文件未指定币种时,适用于各行的币种。默认使用共享业务配置文件的 default_currency,否则使用 EUR;响应会说明实际使用的币种
overwriteboolean否导入前删除此账户已存储的所有交易,而不是合并。银行重新签发了更正后的导出文件时使用

详细介绍

mcp-bank-statement

已收录于 官方 MCP Registry(io.github.theluckystrike/bank-statement-csv-categorize-reconcile-ledger)。

银行对账单演示

从银行导出 CSV,说一句“导入这个”,这个月的账目就一目了然。这个 MCP 服务会将银行导出文件转换为本地账本:它能在银行打印的任意前置信息下方找到标题行,判断哪一列是日期、哪一列是金额,以及资金流向,并按文件本身的区域格式读取金额,因此 mBank 的 1 234,56 和美国银行的 1,234.56 都会转换为相同的数字。借记在导入时存为负数,贷记存为正数,仅处理一次,因此后续流程无需猜测。重新导入相同的导出文件不会添加任何内容:每一行都会根据日期、金额、货币和描述生成哈希,并附带出现序号,因此同一天两笔相同金额的咖啡仍会作为两笔交易保留,而再次导入同一个文件则不会新增交易。你的规则会在交易导入时对其分类;汇总会按货币报告收入、支出和净额,绝不会混合不同货币;recurring_detect 会找出订阅项目及其年费;reconcile_expenses 会将银行借记与 mcp-expense-tracker 中的收据进行匹配,让你查看哪些借记没有收据,以及哪些收据没有出现在银行账单中。所有内容都是保存在你自己机器上的普通 JSON 文件;任何内容都不会上传。

在聊天中将银行 CSV 转换为已分类、已对账的月度账目,无需会计 SaaS。

支持的银行配置:Revolut、Wise、mBank、PKO BP、ING、N26,以及仅根据标题行工作的通用读取器。

无需特别处理即可读取的文件格式:UTF-8 和 UTF-16(任意字节序,包括 Windows 版 Excel 保存的格式)、 CRLF、LF 和仅 CR 的换行符、包含逗号、引号和换行符的带引号字段、1.234,56 和 1,234.56、 会计格式的括号 (12.50) 和尾随负号 12.50-(两者均为负数),以及同一文件中的多种货币。值为 - 或空白的单元格会被跳过,并列入 skipped_lines,而不会被读取为零。如果日期列存在歧义(例如 03/04/2026,且 没有任何大于 12 的值),响应中会说明所采用的日期顺序,而不会默默猜测。

60 秒安装

@theluckystrike/mcp-bank-statement 的 npm 发布尚未完成。在此之前,可使用一键安装包 .mcpb,或克隆并构建; 以下两种方式均已验证。

一键安装(.mcpb):从最新版本下载 bank-statement.mcpb,然后在 Claude Desktop 中双击: https://github.com/theluckystrike/mcp-servers/releases/latest

(claude_desktop_config.json):

{
  "mcpServers": {
    "bank-statement": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-bank-statement"]
    }
  }
}

Claude Code:

claude mcp add bank-statement -- npx -y @theluckystrike/mcp-bank-statement

(.cursor/mcp.json):

{
  "mcpServers": {
    "bank-statement": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-bank-statement"]
    }
  }
}

上述 npx 方式将在软件包发布后立即可用。在此之前,请使用上面的一键安装包 .mcpb,或使用以下三个命令从源代码构建:

git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers
npm install
npm run build -w packages/mcp-license -w servers/spreadsheet -w servers/bank-statement

然后将客户端的 command 指向 node,并传入一个参数:servers/bank-statement/dist/index.js 的绝对路径。

要以 Pro 模式运行,请在同一配置块中设置 MCP_LICENSE_KEY,或使用你的密钥调用一次 license_activate。

工具

工具功能说明
statement_import将银行 CSV 读入账本。可在任意前置内容下方检测标题行,以及日期、描述、金额(或借方和贷方)和币种列、日期顺序和数字区域格式。会报告检测到的内容、存储的内容、与已有数据重复的行数,以及跳过的每一行及其原因
transactions_list列出指定日期范围内的交易,可按账户、类别或 uncategorized 筛选,并按币种汇总
transactions_search查找描述、交易对手、类别或账户中包含查询词的交易。仅支持子字符串匹配,绝不使用正则表达式
category_rules设置或列出交易分类规则。拒绝空匹配,因为这会将同一类别套用到整个账本。普通匹配为不区分大小写的子字符串;regex: true 仅在模式不会导致指数级回溯时才会编译,并会拒绝 (a+)+,将其作为子字符串处理。设置规则后,会将其重新应用于已存储的交易
transaction_categorize按 ID 为交易设置类别。除非所有 ID 都存在,否则不会进行任何更改
statement_summary汇总指定范围内的收入、支出和净额,可按类别、月份、账户或交易对手分组,并始终按币种分别统计
reconcile_expenses将银行借记与 mcp-expense-tracker 中的收据匹配:币种相同、金额相同且日期在指定范围内。报告匹配项、没有收据的银行记录,以及尚未入账的收据。只读取费用账本,绝不修改
recurring_detect查找订阅和定期扣款:交易对手相同、金额基本不变、周期稳定。报告周期、典型金额、下一个预计日期和年化费用。两笔扣款只能确定一个间隔,因此会暂不提供年化费用(cadence_confirmed: false),直到第三笔扣款确认周期
statement_export将指定范围写入 csv 或 json,并返回路径。采用原子写入,因此失败时不会留下不完整文件。允许替换现有文件,并会报告(overwrote_existing_file)
accounts_list列出已导入的账户,包括银行、币种、交易数量、日期范围和最新余额
license_status显示免费或 Pro 模式
license_activate激活 Pro 密钥(离线验证)

资源 bank://month 返回本月的收入、支出和净额,按类别分组并按币种分别统计。 提示词 monthly_review 会执行整个月末检查:汇总、未分类记录、订阅和对账。

免费版与 Pro 版

免费版Pro 版
账户2 个不限
可读取的历史记录最近 12 个月全部
分类规则5 条不限
导入、列表、搜索、汇总是是
reconcile_expenses是,每次最多 31 天任意日期范围
recurring_detect是,最近 3 个月、最多 5 笔扣款完整历史记录、所有扣款
statement_export否是

无论使用哪个版本,导入时都会存储每一行:如果导入时静默丢弃记录,账本就会与银行记录不一致。免费版的限制针对的是可读取的内容。

获取 Pro:https://mcp.zovo.one/buy/bank-statement,此服务一次性付费 $19,所有服务一次性付费 $39,终身有效。 密钥均离线验证;不会向任何地方发送数据。

搭配使用

  • mcp-expense-tracker,记录收据和里程;reconcile_expenses 会读取该账本,并告诉你哪些银行借记没有对应的收据。
  • mcp-spreadsheet,此服务使用电子表格服务自带的 RFC 4180 读取器和区域数字解析器来解析银行 CSV,因此 1 234,56 在两者中的含义相同。可用它拆分导出的日期范围。
  • mcp-invoice,处理收入:开具发票,然后在按交易对手分组的 statement_summary 中查看款项到账情况。

隐私

所有内容都保留在你的设备上。银行对账单会在本地解析,并存储在 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/bank-statement/ 下的纯 JSON 文件中。此服务完全不会发起网络请求,无论是用于许可、解析还是其他任何用途。删除该目录即可重置。

由 theluckystrike 构建。支持:[email protected]

将这些文档用作 MCP 服务

任何 MCP 客户端(Claude、Cursor、Windsurf、VS Code)都可以通过 GitMCP 直接读取此代码库的文档,无需安装:

评论

支持 Markdown

第一次接触 MCP?

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

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