mcpField
C
chargescout

chargescout

本地服务
github.com/GillMacedo金融数据02 周前更新

关于 chargescout

chargescout 是本地运行的 MCP 服务和命令行工具,用于分析银行或信用卡账单 CSV,识别定期扣款、价格上涨和可能的重复收费。它无需账户或网络连接,适合个人、小企业和自由职业者审查支出。

主要功能

  1. 01识别周期性扣款及周期
  2. 02估算年度支出
  3. 03提示价格上涨和重复收费
  4. 04检查 CSV 列与行数
  5. 05支持 JSON 输出

适用场景

  1. 01审查个人或企业订阅支出
  2. 02寻找可能已停止的订阅
  3. 03检查账单中的涨价或重复收费

MCP 相关

MCP 服务提供订阅查找和 CSV 检查工具。查找工具会将商户名称和金额返回给 MCP 客户端;处理在本地进行,项目不使用网络。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"gillmacedo-chargescout": {
"command": "npx",
"args": [
"-y",
"chargescout"
]
}
}
}
启动命令npx -y chargescout

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

安装包
npmchargescout0.2.0

工具

2

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

参数类型必填说明
pathstring是银行或信用卡账单 CSV 的路径
limitnull|integer否返回的最多发现数,默认值为 100。0 表示仅返回汇总
columnsobject否字段对应的列名(date、amount、credit、debit、description),在检测失败时使用
date_formatstring否dmy 或 mdy,仅在工具报告日期有歧义时需要
positive_outboolean否如果文件像许多信用卡账单一样将扣费显示为正数,则设置此项

详细介绍

chargescout:在银行账单中查找订阅和定期扣费

npm CI MIT license MCP Registry

查看你正在支付的所有订阅、每年的费用、价格上涨的项目,以及被重复扣费的情况,无需关联银行账户或上传任何内容。适用于小型企业、自由职业者以及任何想要审查支出的人。

订阅追踪工具通常需要你的银行登录信息,并收取月费。chargescout 会读取银行或信用卡导出的 CSV 文件,找出每周、每月、每季度或每年重复发生的扣费。它既是 MCP 服务,也是单个 Go 二进制文件,无需账户、API 密钥,也不会访问网络。

可以向你的 Agent 提出的问题

  • “我正在支付哪些订阅费用?”
  • “我的定期扣费每年要花多少钱?”
  • “哪些订阅涨价了?”
  • “有什么项目被重复扣费了吗?”
  • “我的企业可以取消哪些项目来省钱?”

安装

作为 Claude Code 插件安装,它会添加 MCP 服务和一项技能,用来告知 Claude 何时使用该工具。你需要安装 Node,它会通过 npx 运行此服务:

claude plugin marketplace add GillMacedo/chargescout
claude plugin install chargescout@chargescout-marketplace

其他 MCP 客户端:

{
  "mcpServers": {
    "chargescout": {
      "command": "npx",
      "args": ["-y", "chargescout", "serve"]
    }
  }
}

也可以使用 Go 1.27 或更高版本构建二进制文件:

go install github.com/GillMacedo/chargescout@latest

用法

无需安装即可运行 npx chargescout find statement.csv。此示例使用 examples/ 中虚构的账单:

$ go run . find examples/statement.csv
SAMPLE POWER CO  83.30  monthly  999.60/year  last 2026-09-12  active  (likely)
  ! amount varies, so this may be a usage-based bill
MOCK ACCOUNTING SOFTWARE  60.00  quarterly  240.00/year  last 2026-08-25  active  (likely)
SAMPLE STREAM  18.99  monthly  227.88/year  last 2026-09-03  active
  ! price went up from 15.99 to 18.99 on 2026-06-03
PLACEHOLDER DOMAINS ANNUAL  120.00  yearly  120.00/year  last 2026-09-14  active  (likely)
EXAMPLE CLOUD STORAGE  9.99  monthly  119.88/year  last 2026-09-07  active
  ! possible double charge of 9.99 on 2026-06-08
FICTIONAL GYM MEMBERSHIP  45.00  monthly  540.00/year  last 2026-05-21  may have stopped
SKIPPED row 59: no valid date or amount
6 recurring charges, 5 active, costing 1707.36 a year

如果文件中的扣费以正数显示(许多信用卡账单都是如此),请添加 --positive-out;如果需要机器可读的输出,请添加 --json。账单越长,结果越准确;最好提供一整年的记录。

判定方式

发现结果规则
定期扣费同一商户有 4 笔或更多扣费,且间隔和金额稳定
可能有 3 笔扣费、间隔一年的 2 笔扣费,或金额在大多数周期中会变化但整体规律的账单
可能已停止截至账单末尾,下一笔扣费已逾期。此类项目不会计入总额

大多数扣费间隔必须符合周期,金额波动不得超过 25%,因此日常购物不会被报告。同一家公司的两项套餐会分别列出。

MCP 工具

工具功能
subscriptions_find返回定期扣费、年度费用和提醒;长结果会受到条数限制
subscriptions_inspect_csv显示检测到的列和行数,不显示行内容

这两项工具都只读。subscriptions_find 会将商户名称和金额返回给 MCP 客户端,因此这些信息会传送给你使用的 AI 模型。CLI 会将所有内容保留在你的计算机上。

常见问题

如何查找遗忘的订阅? 将银行或银行卡交易记录导出为 CSV,然后运行 npx chargescout find statement.csv。

我必须连接银行账户吗? 不需要。它只会读取你提供的文件,而且不包含任何网络代码。

它能取消订阅吗? 不能。它会显示已有的订阅,你需要联系各个服务提供商取消。

它适用于我的银行吗? 它可以读取 CSV 导出文件,并识别多种语言中的常见列名;你也可以通过 --columns date=When,amount=Sum,description=What 指定其他列名。目前尚未针对各家银行的实际导出文件进行测试。

限制

  • 这款工具可以帮助你查看支出,但不构成财务建议。请对照账单核实结果。
  • 它只能读取 CSV,因此需要先转换 PDF 账单。
  • 商户名称来自银行的交易描述,因此同一家公司可能会显示为两个名称,且这些名称不会关联起来。
  • 它可能会漏掉时间间隔不规律的扣款,也可能会将稳定的非订阅支出(例如房租或定期购物)报告为订阅。
  • 年度费用是最近一次扣款金额乘以每年的扣款次数,因此只是估算值。
  • 它假定金额有两位小数,且不会转换货币。
  • 目前仅在模拟数据上进行过测试,未使用实际导出文件。如果你的文件无法正常使用,请提交问题,并附上列标题,而不是你的数据。

参与贡献

欢迎大家贡献,无论是个人还是与 AI Agent 合作的人。请参阅 CONTRIBUTING.md。适合新手的事项:

  • 添加更多银行和语言的列名
  • 添加更多银行卡处理商前缀,以便清理商户名称
  • 将不同名称对应的同一商户关联起来
  • 添加 --out,将结果写入 CSV
  • 添加插件图标
拉取请求的处理方式
  1. 提交 PR。 Fork 这个仓库,在分支上进行开发,并确保每个 PR 只包含一项更改。标题应说明用户会看到什么变化,因为它会成为变更日志中的条目:feat: 会列在“新增”下,fix: 会列在“修复”下。
  2. 自动检查。 代码更改需要附带测试,并且 make test 必须通过。超过 30 行的更改需要关联一个已开启的问题(Closes #<number>),且 PR 最多只能包含 800 行更改。如果缺少任何内容,系统会通过评论告知你需要修复什么。
  3. 审核。 Claude 会自动审核每个 PR。代码 PR 还会接受安全审核,并在沙箱中进行测试。审核完成后会合并 PR,或要求你进行修改。涉及 CI、Agent 设置、npm 或 Python 依赖、供应商代码或构建文件更改的 PR 无法通过这种方式合并,系统会通过评论说明。安全审核未通过的内容也同样无法合并。
  4. 发布。 影响用户安装内容的合并更改会在约两小时内发布为新版本,并附带 GitHub Release;如果项目有 npm 包,也会一并发布。文档和 CI 更改会等到下一次发布。

AI 披露

本项目大部分由 Claude Code 生成,并经维护者审核。

关于我

我是 Giulliano Macedo,在 GoTech Solutions 开发开发者工具。欢迎关注或联系我:

如果 chargescout 找到了你忘记的一笔扣款,点个星标可以帮助其他人发现它。


采用 MIT 许可证。

由 Giulliano Macedo、GoTech Solutions 构建 · LinkedIn · X

评论

支持 Markdown

第一次接触 MCP?

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

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