chargescout について
chargescoutは、銀行やカードの明細CSVを解析し、定期的な請求、値上げ、重複請求の可能性を検出するローカル実行のMCPサーバー兼CLIです。アカウントやネットワーク接続は不要で、個人、小規模事業者、フリーランスの支出確認に向いています。
主な機能
- 01定期請求と間隔の検出
- 02年間費用の推定
- 03値上げと重複請求の通知
- 04CSV列と行数の確認
- 05JSON出力への対応
活用シーン
- 01個人や事業のサブスクリプション確認
- 02停止した可能性のある契約の発見
- 03明細の値上げや重複請求の確認
MCP 対応
MCPサーバーはサブスクリプション検索とCSV構造確認のツールを提供します。検索結果の加盟店名と金額はMCPクライアントに返されます。解析はローカルで行われ、ネットワークは使用しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | 銀行またはカード明細 CSV のパス |
| limit | null|integer | いいえ | 返す検出結果の最大数。デフォルトは 100 です。0 の場合は合計のみ返します。 |
| columns | object | いいえ | 検出に失敗した場合に指定する、各フィールドに対応する列名(date、amount、credit、debit、description) |
| date_format | string | いいえ | dmy または mdy。ツールが日付を曖昧と報告した場合にのみ必要です。 |
| positive_out | boolean | いいえ | 多くのカード明細と同様に、ファイルで請求額が正数として表示される場合に設定します。 |
詳細
chargescout:銀行明細からサブスクリプションと定期的な請求を見つけます
支払っているサブスクリプション、その年間費用、値上がりしたサービス、二重請求された項目をすべて確認できます。銀行口座を連携したり、何かをアップロードしたりする必要はありません。小規模事業者、フリーランサー、支出を監査したいすべての方に適しています。
通常、サブスクリプション追跡サービスでは銀行へのログイン情報が必要で、月額料金がかかります。chargescout は銀行やカードの CSV エクスポートを読み取り、毎週、毎月、四半期ごと、または毎年繰り返される請求を見つけます。MCP サーバーであり、単一の Go バイナリとして動作するため、アカウントも API キーもネットワークアクセスも不要です。
エージェントに質問できること
- 「支払っているサブスクリプションは何ですか?」
- 「定期的な請求の年間費用はいくらですか?」
- 「値上がりしたサブスクリプションはどれですか?」
- 「何か二重請求されていませんか?」
- 「費用を節約するために、事業で何を解約すべきですか?」
インストール
Claude Code プラグインとしてインストールすると、MCP サーバーと、いつ使うべきかを Claude に伝えるスキルが追加されます。サーバーを npx で実行するため、Node が必要です。
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 月次 999.60/年 最終 2026-09-12 有効 (可能性あり)
! 金額が変動するため、従量課金の請求である可能性があります
MOCK ACCOUNTING SOFTWARE 60.00 四半期 240.00/年 最終 2026-08-25 有効 (可能性あり)
SAMPLE STREAM 18.99 月次 227.88/年 最終 2026-09-03 有効
! 2026-06-03 に 15.99 から 18.99 に値上がりしました
PLACEHOLDER DOMAINS ANNUAL 120.00 年次 120.00/年 最終 2026-09-14 有効 (可能性あり)
EXAMPLE CLOUD STORAGE 9.99 月次 119.88/年 最終 2026-09-07 有効
! 2026-06-08 に 9.99 の二重請求の可能性があります
FICTIONAL GYM MEMBERSHIP 45.00 月次 540.00/年 最終 2026-05-21 停止した可能性あり
スキップした行 59:有効な日付または金額がありません
定期的な請求が 6 件、そのうち 5 件が有効で、年間費用は 1707.36 です
ファイルで請求が正の数として表示されている場合(多くのカード明細が該当します)は --positive-out を追加します。機械可読な出力には --json を指定します。明細が長いほど結果の精度が上がり、1 年分の履歴が理想的です。
判定方法
| 検出内容 | ルール |
|---|---|
| 定期的 | 同じ加盟店から、一定の間隔と金額で 4 回以上請求されている |
| 可能性あり | 3 回の請求、1 年間隔での 2 回の請求、またはほとんどのサイクルで金額が変わる一定の請求 |
| 停止した可能性あり | 明細の最終日までに次の請求期限を過ぎています。合計には含まれません |
ほとんどの請求間隔がサイクルに合致し、金額の変動が 25%以内である必要があるため、日常的な買い物は報告されません。同じ会社の 2 つのプランは別々に扱われます。
MCP ツール
| ツール | 機能 |
|---|---|
subscriptions_find | 定期的な請求、年間費用、アラートを返します。結果が長い場合に備えて上限を設定できます |
subscriptions_inspect_csv | 行の内容を表示せずに、検出した列と行数を表示します |
どちらも読み取り専用です。subscriptions_find は加盟店名と金額を MCP クライアントに返すため、使用する AI モデルにそれらの情報が渡ります。CLI の場合、すべてのデータはお使いのマシン内にとどまります。
FAQ
忘れていたサブスクリプションを見つけるにはどうすればよいですか? 銀行口座またはカードの取引履歴を CSV としてエクスポートし、npx chargescout find statement.csv を実行してください。
銀行口座を接続する必要がありますか? いいえ。指定したファイルを読み取るだけで、ネットワーク関連のコードはありません。
サブスクリプションを解約できますか? いいえ。利用状況を表示するだけなので、各サービスのプロバイダーで解約してください。
自分の銀行でも使えますか? CSV エクスポートを読み取り、複数の言語で一般的な列名を認識します。また、--columns date=When,amount=Sum,description=What のように指定して、ほかの列名にも対応できます。各銀行の実際のエクスポートでのテストはまだ行われていません。
制限事項
- 支出の確認に役立てるためのものであり、金融に関する助言ではありません。結果を取引明細と照合してください。
- CSV のみを読み取るため、PDF の明細は先に変換する必要があります。
- 加盟店名は銀行の明細に記載された説明から取得されるため、同じ会社が異なる名前で表示され、それらが関連付けられないことがあります。
- 不規則な間隔で発生する請求を見落としたり、家賃や定期購入など、サブスクリプションではない一定額の支出を報告したりすることがあります。
- 年間費用は直近の金額に年間の請求回数を掛けて算出するため、概算です。
- 小数点以下は 2 桁と想定しており、通貨換算は行いません。
- これまでのテストは架空のデータのみを対象としており、実際のエクスポートでは行っていません。うまく動作しない場合は、データではなく列ヘッダーを添えて issue を作成してください。
貢献
個人の方も、AI エージェントと協働している方も、貢献を歓迎します。CONTRIBUTING.md をご覧ください。初めて取り組む方におすすめの issue:
- さらに多くの銀行や言語の列名を追加する
- 加盟店名の整理に、さらに多くのカード処理会社の接頭辞を追加する
- 異なる名前で表示される同じ加盟店を関連付ける
- 結果を CSV に書き出す
--outを追加する - プラグインアイコンを追加する
プルリクエストの進め方
- PR を作成します。 リポジトリをフォークし、ブランチで作業して、変更は 1 つに絞ってください。タイトルはユーザーにとって何が変わるのかが分かるものにしてください。タイトルは変更履歴の行として使われます。
feat:は Added に、fix:は Fixed に記載されます。 - 自動チェック。 コードの変更にはテストが必要で、
make testに合格する必要があります。30 行を超える変更には、リンクされたオープン issue(Closes #<number>)が必要です。また、PR の変更行数は最大 800 行です。不足がある場合は、修正内容をコメントでお知らせします。 - レビュー。 Claude が各 PR を自動でレビューします。コードの PR にはセキュリティレビューも行われ、サンドボックスでテストされます。その後、レビューによって PR がマージされるか、変更が求められます。CI、エージェント設定、npm または Python の依存関係、ベンダーコード、ビルドファイルを変更する PR は、この方法ではマージできません。その旨をコメントでお知らせします。セキュリティレビューで承認されなかったものも同様です。
- リリース。 ユーザーがインストールするものに影響するマージは、約 2 時間以内に新しいバージョンとしてリリースされ、GitHub Release と、プロジェクトにある場合は npm パッケージも更新されます。ドキュメントや CI の変更は次回のリリースまで保留されます。
AI に関する開示
このプロジェクトの大部分は Claude Code によって生成され、メンテナーがレビューしました。
自己紹介
私は Giulliano Macedo です。GoTech Solutions で開発者向けツールを開発しています。活動をフォローしたり、お問い合わせいただいたりできます:
- GitHub:GillMacedo
- LinkedIn:giulliano
- X:@giumacedo
chargescout が忘れていた請求を見つけるのに役立ったら、スターを付けていただけると、ほかの人にも見つけてもらいやすくなります。
MIT ライセンスです。
Giulliano Macedo(GoTech Solutions)が開発 · LinkedIn · X
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。