はじめに

2024年の12月ごろまで、家計管理にMoneyForwardを使っていた。クレジットカードを連携させれば、使った金額が自動で記録される。

利用した明細には「食料品」や「日用品」などのカテゴリが付与されるのだが、この分類が結構粗いのだ。クレジットカードの利用店舗名からカテゴリを推測するしかないため、Amazonでの購入を過去に一度「日用品」にしたら、以降のAmazon注文は全部「日用品」だ。直したければ手作業で一つずつやるしかない。

今まで定期的に行っていたが、めんどくさがって放置し、気がついたら300件ほど未分類の明細が溜まっていることもある。この分類をAIで自動化できないかと考えてみた。

まずClaude Codeにブラウザ操作をさせて、MoneyForwardのUIを直接叩く方法を試した。

  • 明細のカテゴリ操作をAIに行わせるのは難しかった
  • ログインが前提であるため、Claude Code on the Webみたいなリモート環境から使うことはできない

GUIの操作は自動化の基盤にするには脆すぎる。GUIは人間のために作られたもので、プログラムが安定的に叩くのは難しい。

つまりAPIが必要なのである。GUIしかないシステムは、人間が張り付いてないと回らない。

  • ZaimはAPIがあるが、試してみたところ不十分だった

なので自分で作ることにした。

家計簿を自作する

Cloudflare Workers + Cloudflare D1でAPIファーストの家計簿管理システムを作った。

  • すべての操作がAPIで完結する。基本的なCRUD = 取引の登録、カテゴリの変更、支出の集計の全てがAPIでできる。
  • 未分類項目の集計は全てAIが自動的にやってくれる。毎月(よく忘れる)締めの作業が存在しなくなった

ついでに反映速度が早くなった

  • クレジットカードは利用のたびに通知メールが届き、通知メールの内容を取得し、パースできればリアルタイムに利用情報を取得できる
  • Claude Code on the WebのSchedule機能でスケジュール実行を仕込み、Gmail MCP Serverで三井住友カードの利用通知メールから取引を取り込んでいる。市販の家計簿管理アプリで1週間待っていた情報が、翌朝には入るようになった

しかし銀行残高やSBI証券の資産残高は今の所Moneyforwardで連携する以外の取得方法はなさそうだった。一般コンシューマーが使えるAPIが存在しないのだから仕方ないね。

XMoneyが大暴れして既存の金融業界をぶち壊してくれないかな…

https://x.com/XMoney

おわりに

GUIは人間のためのインターフェースであり、AIにとって使いやす操作対象とは言いづらい。充実したAPIはAIエージェントが利用するためのソフトウェアには必要なのだろう。