Claude Code 支出追踪:连接、导入与对账
通过一个链接把 Claude Code 接入 Expense Budget Tracker,预览并批准银行对账单导入,核对余额,无需关联银行账户也能更新预算。
一份只有四行的银行对账单,即使最终差额是 €0.00,预算仍然可能是错的。比如,一笔 €54.20 的超市消费本该归入日常杂货,却被记到了旅行分类。账户余额不会受影响,分类报表却会相差 €54.20。
真正实用的 Claude Code 支出追踪方案需要通过两项检查:账本中的资金变动要能解释银行余额,账本中的分类也要与审核后的对账单一致。文件解析、计算和 API 调用可以交给 Claude Code;账户与分类由你选择,待写入的记录由你检查,具体写入内容也由你批准。
在本文这套方案中,Expense Budget Tracker 不会持续连接银行,也没有上传对账单的流程。你需要自行导出对账单,将文件放到 Claude Code 有权读取的位置,再通过托管的 Agent API 发送你已批准的记录。如果你的首要需求是不让应用持续访问银行账户,可以阅读无需连接银行账户的预算应用,了解更完整的取舍。

通过一个服务发现链接连接 Claude Code
按照 Anthropic 的官方快速入门安装并登录 Claude Code。CLI 参考文档介绍了工作目录和额外文件访问权限的用法。
在存放对账单的目录中启动 claude,或者用当前环境支持的方式授予 Claude Code 访问该目录的权限。然后粘贴下面这段提示词:
通过这个服务发现链接连接到 Expense Budget Tracker:
https://app.expense-budget-tracker.com/api/agent
使用 GET 获取链接内容,读取返回的 JSON,并按照其中当前有效的操作 URL 执行。不要
猜测或硬编码 API 流程。询问我的 Expense Budget Tracker 邮箱,并启动邮箱 OTP 流程。
请求成功后,如果我没看到邮件,提醒我检查垃圾邮件;再向我索取 8 位验证码,并按照
返回的验证操作继续执行。
验证完成后,请我批准一个不在聊天记忆和源代码管理中的持久存储位置,用来保存返回的
ApiKey。加载我的账户上下文,列出工作区,请我确认目标工作区,将其保存为这个密钥的
默认工作区,并检查实时 schema。执行一次小型只读查询,确认所选工作区。不要写入
财务数据。
应用级 Agent 链接会返回实时服务发现文档。目前,文档会给出 https://api.expense-budget-tracker.com/v1/ 作为 API 基础地址,并附带身份验证和 SQL 操作 URL。你只需粘贴应用域名下的链接;Claude Code 应当跟随服务返回的 URL,而不是记住内部调用顺序。
注册和登录使用同一套邮箱流程。你提供 8 位验证码后,Claude Code 会收到一个长期有效的 ApiKey。请批准一个明确的存储位置,例如已排除在源代码管理之外的密钥文件。绝不要把密钥写进 CLAUDE.md,也不要提交到代码仓库。AI Agent 设置说明了底层身份验证和工作区选择流程。
别混淆 Agent API 和 MCP 两种接入方式
“Claude 支出追踪器”可能指两种不同的集成方式。本文介绍的是在终端中通过 Agent API 使用 Claude Code。Claude 网页版和 Claude Desktop 则可以使用托管的远程 MCP 连接器。
| 通过 Agent API 使用 Claude Code | 通过 MCP 使用 Claude 或 Claude Desktop | |
|---|---|---|
| 适用场景 | 在终端中处理有权访问的本地文件,并直接发送 HTTP 请求 | 在支持 MCP 的 Claude 客户端中对话 |
| 起点 | https://app.expense-budget-tracker.com/api/agent |
https://mcp.expense-budget-tracker.com/mcp |
| 身份验证 | 邮箱 OTP,随后获得长期有效的 ApiKey |
浏览器 OAuth |
| 数据接口 | 服务发现 URL 指向 query 和 execute 端点 | sql_query 和可选的 sql_execute 工具 |
| 对账单访问 | 当前 Claude Code 会话有权访问的文件和目录 | 远程连接器无法访问本地文件 |
两套凭据不能互换。如果你使用的是 Claude 网页版或桌面应用,请按照 Claude 支出追踪器 MCP 指南操作。如果任务从 Claude Code 能够访问的文件开始,就使用下文的 Agent API 工作流。
另外还有两点需要说清楚:
- 模型提供商的数据处理流程与 Expense Budget Tracker 的 API 和存储相互独立。在共享对账单数据前,请查看 Claude Code 数据使用文档,以及你的 Claude Code 安装所配置的提供商条款。
- 自托管指南中的本地 Docker Compose 配置会启动 Web 应用、身份验证服务、数据库和汇率工作进程,但不包含本文使用的托管 Agent API。代码仓库中的 AWS 部署是另一套配置,其中包含公开的机器 API。
明确限定导入范围
第一次导入只处理一个账户、一种货币和一个已经结束的对账周期。CSV 很方便,因为每一行都容易检查。如果使用其他导出格式,先让 Claude Code 确认它能在你的环境中读取该文件,并展示解析后的各行。不要只看文件名就认定格式受支持。
你需要向 Claude Code 提供六项信息:
- 对账单在本地的路径。
- 银行账户,以及追踪器中与它对应的账户。
- 账户货币。
- 第一笔和最后一笔已入账交易的日期。
- 期初余额,或上一次确认无误的余额。
- 银行对账单的期末余额。
待入账交易要等正式入账后再导入。源文件保持不变,让 Claude Code 另行生成预览。
下面这组规则适合写进财务目录中的本地 CLAUDE.md:
# Expense Budget Tracker 工作流
- 从 https://app.expense-budget-tracker.com/api/agent 开始,并按照服务发现文档操作。
- 编写 SQL 前,确认目标工作区并检查实时 schema。
- 所有检查和对账都使用读取操作。
- 写入前,展示源数据合计、潜在重复项、完整 SQL 和预计受影响行数。
- 等待我明确批准完整的更改集。
- 仅通过写入操作执行获批的 INSERT、UPDATE 或 DELETE。
- 每次写入后,都通过新的读取操作验证结果。
- 绝不要虚构余额调整记录,也不要擅自处理分类不明确的交易。
- 将 ApiKey 保存在此文件和源代码管理之外。
你还可以加入长期稳定的信息,例如实际账户名称、分类规则、转账惯例和报表货币。除非本文中的示例分类与你的账本完全吻合,否则不要直接照搬。
先完整预览,再导入对账单
连接成功后,粘贴下面这段提示词,并替换方括号中的内容:
将 [本地对账单路径] 导入 [追踪器账户],已入账日期范围为 [开始日期] 至
[结束日期],货币为 [货币]。期初余额为 [金额],银行对账单的期末余额为 [金额]。
先确认所选工作区并检查实时 schema。只使用读取操作,检查目标账户、现有分类,以及
日期与该对账周期重叠的账本记录。确认你能读取并解析本地文件,而且可以在不写入任何
数据的情况下生成完整预览。
针对源文件中的每一行,展示源标识符或行号、入账日期、带正负号的金额、货币、目标账户、
建议的交易类型、建议的分类和重复状态。标出转账、退款、报销、手续费、外币记录、
不熟悉的交易对方和分类不明确的记录。
然后展示源文件行数和带正负号的金额合计、所有待写入的账本记录、潜在重复项、准备发送的
完整 SQL,以及预计受影响行数。到此停止,等待我明确批准完整的更改集。
在你批准更改之前,数据库操作始终保持只读。Claude Code 应检查实时 schema,而不是照抄文章中的列名;它还要找到匹配的账户,并查询同一日期范围内已有的记录。日期和金额相同,只能说明某笔交易可能重复,不能证明它就是重复记录。两笔真实发生的消费完全可能在这两个字段上相同。
四行对账单示例
假设一份活期账户对账单的期初余额为 €1,250.00,其中有四笔已入账记录:
| 行 | 入账日期 | 描述 | 带正负号的金额 | 建议类型 | 建议分类 | 审核备注 |
|---|---|---|---|---|---|---|
| 1 | 2026-08-31 | 工资 | +€2,000.00 | 收入 | 工资 | 明确 |
| 2 | 2026-09-02 | 超市 | −€54.20 | 支出 | 日常杂货 | 如不熟悉该商户,请核实 |
| 3 | 2026-09-03 | 转入储蓄账户 | −€300.00 | 转账 | — | 确认另一个账户 |
| 4 | 2026-09-04 | 咖啡馆 | −€8.40 | 支出 | 餐饮 | 明确 |
四笔金额按正负号相加,合计为 +€1,637.40。再加上 €1,250.00 的期初余额,预期期末余额就是 €2,887.40。这个例子一屏就能看完;记录再多,预览仍然必须覆盖源文件中的每一行,并明确标出所有不确定之处。
转账需要确认另一个账户,因为自己的账户之间转钱不算支出。退款和报销也必须保留真实的交易类型。如果分类无法确定,就把它标出来等待决定,不要替用户选择看起来最可能的分类。
批准一组明确的更改
逐项检查工作区、账户、日期范围、行数、带正负号的合计、潜在重复项和分类。批准具体的预览和 SQL,不要只笼统地说“全部导入”。
Agent API 将读取和写入分开。Claude Code 通过服务发现文档中的读取操作执行一条 SELECT 或 WITH ... SELECT,只有得到明确批准后,才通过写入操作执行 INSERT、UPDATE 或 DELETE。表和列以实时 schema 为准;API 参考文档介绍了 SQL 契约与限制。
长 INSERT 和 UPDATE 要先小规模试跑,再分批执行
执行较长的 INSERT 或 UPDATE 前,实时服务发现说明要求 Agent 发送一份 SQL 结构相同的代表性试跑请求:INSERT 使用 1–3 行字面量数据,UPDATE 只针对一行明确的目标记录。你的批准同时覆盖这次试跑,以及已审核更改集中的剩余记录。
试跑成功后,Claude Code 应立即继续按顺序分批执行,每批不超过 100 条记录,并在执行过程中逐批验证。一次已获批准的 247 行导入,如果先用 3 行试跑,剩余批次就是 100、100 和 44 行。如果范围改变、出现新的不确定性或执行失败,就需要重新批准。对于同一组已批准更改中的常规后续批次,不必再次批准。
受限 SQL 不支持 ON CONFLICT,因此必须明确处理重复项。读取结果最多返回 100 行。Claude Code 应检查响应中的行数和截断元数据,在 SQL 中汇总合计值,并将详细验证拆成范围更小、顺序明确的多次读取。被截断的响应不能视为完整的导入检查。
重新读取已保存的记录
API 返回成功,只能证明请求执行过,不能证明保存的每一个值都与预览一致。再次查询受影响的账户和周期,并逐项比较:
- 插入的行数
- 日期、带正负号的金额和货币
- 账户归属
- 交易类型和分类
- 潜在重复项
- 各批次合计,以及整份对账单的合计
如果发现任何差异,先回到只读诊断。再次写入前,要先审核一项明确的修正。银行对账单导入指南更深入地说明了周期重叠、退款和转账的处理方式。
余额和分类要分开核对
余额对账要确认的是:在同一段已入账日期范围内,账本中保存的资金变动能否解释银行对账单的期末余额。
对于普通存款账户:
预期期末余额 = 期初余额 + 已入账流入 − 已入账流出
如果使用带正负号的资金变动:
预期期末余额 = 期初余额 + 已入账资金变动的带符号总和
信用卡等负债账户可能采用另一套正负号规则。Claude Code 应在计算比较结果前,说明它识别到的规则。
接着使用这段提示词:
只使用读取操作。将 [账户] 在 [已入账开始日期] 至 [已入账结束日期] 期间的数据,
与银行期末余额 [金额和货币] 对账。说明期初边界、正负号规则、已保存的记录数,以及
带正负号的资金变动合计。
展示预期期末余额、银行期末余额和准确差额。如果差额不为零,列出可能遗漏、重复、
被排除、日期错误或正负号错误的记录。不要插入余额调整记录,也不要更改任何数据。
余额检查完成后,单独审核各分类的合计。列出未分类记录、被计入支出的转账,以及
与已批准预览不一致的分类。
在四行示例中,€1,250.00 + €1,637.40 = €2,887.40。如果银行对账单的期末余额也是 €2,887.40,余额差额就是 €0.00。
差额为零,只能说明所选日期边界内的账户计算正确,不能证明分类也正确。把 €54.20 的超市记录从日常杂货改到旅行,余额差额仍然是零,但分类合计会在两个分类之间偏移 €54.20。因此,分类审核必须作为单独的验收步骤。
如果差额不为零,请检查期初余额、遗漏或重复的记录、转账、待入账项目、正负号、日期和货币。绝不要添加一笔虚构的余额调整交易来消除差额。对账指南更详细地介绍了这套诊断流程。
完成对账后再更新预算
只有当记录能正确回读、账户对账无误,而且分类合计也合理时,才进入预算调整。Claude Code 预算追踪器可以将实际收支与 budget_lines 比较,并准备建议的更改。某一个异常月份不应自动决定下一期预算。
确认工作区并检查当前 schema。使用读取操作,将 [完整周期] 的实际收入和支出与对应的
预算行进行比较。根据已保存的交易类型排除转账,并单独展示未分类活动。
针对每一项预算更改建议,展示分类、当前金额、实际金额、建议金额、差额和原因。
然后展示完整 SQL 和预计受影响行数。在我批准具体预算行之前,不要写入。
批准后,只通过写入操作处理这些预算行,再通过新的读取操作验证结果。
报告所有与已批准方案不一致的已保存值。
大额支出可能只是一次例外。看似超支,也可能其实是转账或退款被分错了类。Claude Code 可以计算差额并准备 SQL;下个月各项预算该定多少,仍然由你决定。
每份对账单都按同一顺序处理
处理每份对账单时,都遵循以下固定顺序:
- 从
https://app.expense-budget-tracker.com/api/agent开始,并按照服务发现文档操作。 - 加载账户上下文,确认工作区,并检查实时 schema。
- 向 Claude Code 提供一份它有权访问的对账单文件,并明确余额边界。
- 读取日期范围重叠的账本数据,准备完整的导入预览。
- 批准一组明确的更改。
- 对较长的插入操作,先用 1–3 行试跑,再按顺序分批执行,每批不超过 100 行。
- 重新读取每个已保存批次,并与预览比较。
- 不添加余额调整记录,将账户与银行期末余额对账。
- 即使余额差额为零,也要审核各分类合计。
- 所有预算行更改都要单独准备、批准和验证。
先从一个账户和一个已经结束的周期开始。等这份对账单在账本中对账无误,预算也审核完成后,再对下一个账户重复这套流程。重复的文件处理和 API 调用交给 Claude Code;每一项财务决定都会在记录发生变化前清楚呈现给你。