chiebukuro-mcp シリーズの続きです。
マネーフォワードMEを使ってずいぶん経つのでデータが集まっています。月次の資産推移、投信の銘柄別保有数、日々の入出金などと、過去の行動と付き合わせると面白いのではと、わたしの Claude 用の知恵袋 MCP サーバー chiebukuroに入れて、カレンダーや健康データと突き合わせた横断分析ができるようにしました。
MoneyForward ME には家計簿データの CSV エクスポート機能と、資産推移の CSV エクスポート機能があります。これを月に1〜2回手動でダウンロードし、取り込みスクリプトで SQLite に投入する。ポートフォリオの詳細は画面からコピペで拾って JSON にして投入します。
やったこと
chiebukuro-mcp に moneyforward DB を新設しました。テーブルは7つ。
| テーブル | 内容 | 取得方法 |
|---|---|---|
| transactions | 入出金明細 | CSV エクスポート |
| asset_history | 月次資産推移 | CSV エクスポート |
| portfolio_deposits | 預金・現金・暗号資産 | 画面からコピペ → JSON |
| portfolio_funds | 投資信託(銘柄別) | 同上 |
| portfolio_pension | 年金 | 同上 |
| portfolio_points | ポイント・マイル | 同上 |
| portfolio_other | その他の資産 | 同上 |
入出金は CSV の ID 列を PRIMARY KEY にした INSERT OR IGNORE で重複排除。何度投入しても同じ結果になります。
資産内訳は取得時点のスナップショットを snapshot_date 付きで累積していく設計にしました。日を追うごとにデータが積み上がり、投信の保有口数推移や評価額の変遷が追えるようになります。
取り込みスクリプト
CSV は Shift_JIS で出てくるので、スクリプト側で UTF-8 に自動変換して読み込みます。UTF-8 の CSV をそのまま渡しても動くようにしてあります。
ruby scripts/import_moneyforward_transactions.rb <db_path> <csv_path> ruby scripts/import_moneyforward_asset_history.rb <db_path> <csv_path> ruby scripts/import_moneyforward_portfolio.rb <db_path> <json_path>
ポートフォリオの JSON は、画面の表をコピペして食わせて整形します。銘柄名・保有口数・平均取得単価・基準価額・評価額・損益率。
横断クエリ
投入したデータを、既存の Google カレンダーや Things3 の DB と突き合わせてみました。
月次の資産変動と、その月にどんなイベントがあったか、タスクをどれだけ消化したか。並べてみると、旅行月はタスク消化が減る(当然)、カンファレンス前後は活動が活発になる、といったパターンが見えました。