mcpField
S
statement-of-account

statement-of-account

远程服务
mcp.zovo.one金融数据21 天前更新

关于 statement-of-account

statement-of-account 是读取发票、贷项通知单和押金记录的 MCP 服务,可生成客户对账单、账龄分析和催款文本或 PDF。它只读本地账簿,不回写数据,也不添加未约定费用。

主要功能

  1. 01按期间汇总客户余额与交易
  2. 02按逾期天数划分未付金额
  3. 03生成可粘贴的对账单文本
  4. 04生成 A4 对账单 PDF
  5. 05起草不同语气的催款文本
  6. 06汇总各客户应收账款

适用场景

  1. 01向客户发送期间账目明细
  2. 02识别逾期账款并安排跟进
  3. 03查看所有客户的应收账龄

MCP 相关

作为 MCP 服务向客户端提供对账单、账龄、报告和催款文本工具,并提供来源资源与 chase_overdue 提示词。

配置

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

服务地址https://mcp.zovo.one/mcp/statement-of-account
一键复制安装命令
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/statement-of-account需要授权
安装包
mcpbstatement-of-account.mcpb0.22.5

工具

8
参数类型必填说明
tostring是期间的最后一天,YYYY-MM-DD,包含当天
fromstring是期间首日,格式为 YYYY-MM-DD。此日期之前的所有项目均计入期初余额
clientstring是发票服务端中的客户 ID、精确客户名称,或包含此文本的名称
currencystring否仅当客户的单据涉及多种货币时才需要。不同货币的金额绝不会相加

详细介绍

mcp-statement-of-account

theluckystrike/mcp-statement-of-account MCP 服务

已收录于 官方 MCP 注册表(io.github.theluckystrike/statement-of-account)。 给客户端发送一份能回答“我到底欠你多少钱”的文件。此 MCP 服务会读取你在这套工具中已有的账簿、发票、贷项通知单和押金,并按指定期间生成对账单:期初余额、你开具的每张发票、收到的每笔付款、开出的每张贷项通知单,以及期末余额。它会将尚未结清的款项按逾期 0–30 天、31–60 天、61–90 天和超过 90 天进行账龄划分,让你一眼看出哪个客户端有问题;它可以将对账单生成为可直接粘贴的文本,或采用与发票相同样式的 A4 PDF;还可以起草催款信,语气分为友好、坚定或最终催款。它绝不会回写你的发票,也绝不会凭空捏造滞纳金。

由 theluckystrike 构建。

@theluckystrike/mcp-statement-of-account 尚未发布到 npm,因此目前运行 npx -y @theluckystrike/mcp-statement-of-account 会返回 404。在此之前,可使用 .mcpb 一键安装包,或克隆并构建。

安装

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "statement-of-account": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-statement-of-account"]
    }
  }
}
Claude Code
claude mcp add statement-of-account -- npx -y @theluckystrike/mcp-statement-of-account
Cursor

~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目级),与 Claude Desktop 使用相同条目。

工具

工具功能
statement_build生成单个客户端某一期间的对账单:期初余额、已开具发票、已收款项、贷项通知单、已抵扣押金和期末余额。所有金额均以最小货币单位表示并经过格式化
statement_aging截至指定日期的应收款,按逾期 0–30 天、31–60 天、61–90 天和超过 90 天分类;可查询单个客户端或所有客户端,并按币种区分
statement_text将同一份对账单生成为纯文本,按日期顺序列出各笔变动,可直接粘贴到电子邮件中
statement_pdf将同一份对账单生成为 A4 PDF,标题为 STATEMENT OF ACCOUNT,页面布局与发票和贷项通知单相同
dunning_text生成 1 级(友好)、2 级(坚定)或 3 级(最终催款)的催款信,附上逾期款项清单和银行账户信息
statements_report一次查看所有客户端:按币种列出未结款项和账龄,并显示账簿中逾期时间最长的发票
license_status查看免费版或 Pro 版状态,以及升级方式
license_activate激活 Pro 密钥

此外还有 statement://sources 资源,用于说明此服务能够读取三个存储源中的哪些,以及每个存储源包含多少行;还有 chase_overdue 提示词。

免费版与 Pro 版

免费版Pro 版
生成对账单每个自然月 5 份不限
重新生成已生成的对账单不限不限
statement_aging不限不限
statement_text可以可以
dunning_text 1 级和 2 级可以可以
dunning_text 3 级(最终催款)不可以可以
statement_pdf不可以可以
statements_report不可以可以
PDF 页脚署名显示移除

账龄查询有意设置为免费且不限量。“谁欠我钱”是此服务存在的全部意义,隐藏这项功能的免费版只是演示,而不是工具。额度限制针对的是实际发送给客户端的对账单,并按不同对账单计数:相同客户端、期间和币种的对账单,无论重新生成多少次,都永久免费。

获取 Pro 版,一次性付费,终身使用此服务。密钥可离线验证。

数字的来源

这里没有任何数据需要重复录入。服务会读取三个存储,不会向其中任何一个写入数据:

存储服务从中获取的内容
invoices.jsonmcp-invoice发票、到期日以及每张发票已支付的金额
credit-notes.jsonmcp-billing-docs贷项通知单,已按负数存储
deposits.jsonmcp-deposits定金的应用情况,以及仍被保留的金额

从未安装过的存储只会被视为不存在,报表会在不使用它的情况下生成。 如果某个存储存在于磁盘上,却无法读取,那就完全是另一回事;每项数据都会如实报告这一情况,因为无法计算的余额绝不能显示成无欠款的余额。服务唯一拒绝在缺少它时运行的存储是发票账簿。

一项经过验证的洞见

用今天的付款数据计算过去日期的账龄,不只是略有偏差,而是会悄无声息地得出空结果。 账龄的常见计算方式是“逐张发票计算,减去已付金额,再按到期日分组”。没人考虑过的是,这个减法也要按日期计算。在 test/_client.mjs 中的示例月份,按 2026-06-10 计算账龄时,两种规则得出的结果如下:

规则未结余额逾期金额
截至 2026-06-102,500.00 EUR500.00 EUR,逾期 31 天
按今天的 paid_minor 计算1,700.00 EUR0.00 EUR

这种简单规则少算了 800.00,占 2,500.00 欠款的三分之一;而在发票已逾期一个月的日期,它却报告没有任何逾期金额,因为两天后到账的付款已经从中扣除。这种错误难以察觉:答案看起来整齐,分组金额也能加总,而且由于输入数据不断变化,下个月就无法复现。因此,statement_aging 中的每项数据都会按所查询的日期计算,两个方向都一样:之后开具的发票不计入账簿,之后支付的款项尚未发生,之后开具的贷项通知单也尚未发出。

测量还揭示了第二点:发票上的 paid_minor 和 payments[] 不必一致,而且两者经常不一致。invoice_mark_paid 会同时写入两者,但 deposit_apply 只会增加 paid_minor,不会附加付款记录;在该字段出现之前创建的发票也没有付款记录。如果根据 payments[] 重建收款记录,示例月份 900.00 收款中就会漏掉 300.00,也就是三分之一的现金,而系统不会在任何地方报错。paid_minor 被视为权威数据,付款记录则只用于归属。

本服务遵循的规则

  • 押金是一笔只流转一次的款项。 计入押金时,付款就已记入发票,因此对账单会在发票中计入这笔款项,并将其单独列为“其中:已抵扣押金”,而不会再次将其作为抵扣项。仍由本服务持有的押金款项会作为备忘项目列出,绝不会计入余额:在抵扣前,这笔钱属于客户。
  • 不同币种绝不相加。 一份对账单只使用一种币种;如果客户的账单涉及两种币种,会询问客户选择哪一种。本服务没有汇率,因此将 EUR 账本和 USD 账本合并成一个数字,只会是凭空捏造。
  • 到期日当天不算逾期。 发票在到期日次日才进入 0-30 天账龄区间。未结清但尚未到期的款项会列在各账龄区间旁边,既不会计入区间,也不会被隐藏。
  • 贷项通知单只会冲减其指定的发票。 未结余额最低为零;超出的部分会列为未抵扣贷项,不会悄悄用来冲销客户从未同意抵扣的发票。
  • 催款通知不会凭空捏造费用。 三个催款级别只在语气和期限上有所不同,除此之外没有区别。本服务不保存合同条款、法定利率或司法管辖区信息,因此任何级别都不会提及滞纳金、利率或法律费用。最不该放入虚构数字的地方,就是催款通知。
  • 如果客户没有任何逾期款项,则拒绝发送催款通知,并说明哪些款项未结清但尚未到期。

隐私

所有数据都保留在你的机器上。发票、贷项通知单和押金从 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/ 中读取;本服务自行建立的对账单登记簿写入 .../mcp-servers/statement-of-account/,不会向任何地方发送数据。本服务完全不进行网络调用。许可证密钥会离线验证。

许可证

MIT。支持邮箱:[email protected]

由 theluckystrike 构建。

将这些文档用作 MCP 服务

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

评论

支持 Markdown

第一次接触 MCP?

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

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