ClaudeちゃんがNotionに家計簿を作ってくれた話

## はじめに

あっという間に2024年も終わりです。

エンジニアリング部門に異動するというまさかの変化があり、こうしてアドベントカレンダーを書くことになりました。

人事労務→組織開発・人事企画→バックオフィス責任者→経営企画・総務→コーポレートエンジニア＆AI推進と色々やってきましたが、トップクラスの器用貧乏人材である私としてもエンジニアになるという最大の変化の年になりました。

SUPER STUDIOに入社したのは2019年ですが「伸びてる市場で伸びてる会社に入って、あれこれやりまくれれば成長できるやろ」くらいに思っていたんですが、ここまであれこれやるとは…

そして、2024年は世界的にも「AIの民主化」という大きな変化がありました。

わたしも縁あってAI推進ユニットという最新の取り組みを推進させてもらえる部署に携わらせていただいています。

SF映画でしか聞いたことがなかった「AIと一緒に仕事をする」という言葉が一気に現実味を帯びてきているわけですが、Anthoropic社が提供するClaudeとNotionを組み合わせることで、実際にAIと一緒に仕事をすることを体感でき、非常に感動したので、このアドベントカレンダーにご紹介できればと思います。

### 試したきっかけは「ボーナスあるからって金使いすぎた…」

毎年年末のボーナス時期は財布の紐が消えてしまいます。

ふるさと納税の駆け込み寄付でそこそこまとまったお金が飛んでいきます。

腰痛いし仕事への投資だからという体の良い言い訳をしながらスタンディングデスクを買ったり。

そしてキーボードにハマってしまい、[Rainy75](https://amzn.asia/d/5evxC6E)と[REALFORCE RC1](https://www.amazon.co.jp/REALFORCE-%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%85%8D%E5%88%97-Bluetooth-C1HJ11/dp/B0DH8B3MB4?th=1)を一気に買ってしまったり。

その他色々と昔からの散財癖が爆発しました。

気づいたらカードの請求がやばくなっていそうだけど、雑すぎる私はなにを買ったのか現状把握をちゃんとしていません。

問題解決には、兎にも角にもまずは現状把握。今回の金使いすぎ問題にも現状把握が重要です。

ただ、このデータたちを集めるのがまじでめんどくさい。家計簿アプリなんか入力がちゃんとできないから続いたことがないのに、できるわけがありません。

そんな中で目についたのがこちらの記事。
https://qiita.com/suekou/items/44c864583f5e3e6325d9#comments

MCPを活用したClaude・Notionの活用方法を非常にわかりやすく解説してくださっているんですが、Claudeにスクショ渡したらいい感じにNotionで家計簿作ってくれるやん！ということでやり始めました。

## セットアップ

### 使用するもの

- Claude Desktop App：Anthropicが提供するClaudeのデスクトップアプリで現状はこちらがないとMCPは使えない
- Notion API：データベースの操作やページの作成に使用
- MCP：ClaudeとNotionを接続するためのツール

### Notionデータベース

事前にNotionにデータベースを作っておく必要があります。
今回使用したNotionデータベースは以下のような構造です。

![スクリーンショット 2024-12-31 16.33.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/7c099b5e-c766-a89f-4267-82057525b501.png)


### 準備の仕方

もうこちらの記事がわかりやすすぎるので、こちらの記事を見てください。駆け出しエンジニアの私でもすぐに私用PCにて準備することができました。
事前に作っておいたNotionデータベースのIDなどが必要になりますよ。

https://qiita.com/suekou/items/44c864583f5e3e6325d9#comments

## 実装のポイント

### 1. Claudeによる画像解析とデータ抽出

Claudeは画像を見せると、その内容を理解して構造化されたデータとして返してくれます。今回でいうと、クレジットカードの利用明細やレシートの画像から以下のような情報を抽出できます：

- 商品名or店名
- 購入日
- 金額
- 支払い方法
- 合計金額

### 2. Notionデータベースへの登録

抽出したデータは、ClaudeアプリからMCP・Notion APIを使って直接データベースに登録します。実際の登録データの例：

```jsx
{
  properties: {
    // タイトル（主キー）
    タイトル: {
      title: [{ text: { content: string } }]
    },
    // 収支区分
    収支: {
      select: {
        name: "収入" | "支出"
      }
    },
    // 日付
    日付: {
      date: {
        start: "YYYY-MM-DD"
      }
    },
    // 金額
    金額: {
      number: number
    },
    // カテゴリー
    カテゴリー: {
      select: {
        name: string
      }
    },
    // 支払い方法
    支払い方法: {
      select: {
        name: `楽天カード`
	    }
	  }
  }
}

```

### 3. データの整合性と分類の工夫

1. **カテゴリーの自動分類**
    - Claudeが商品名や金額から適切なカテゴリーを判断
    - 過去の分類パターンを参考にした推論
2. **データの正確性確保**
    - 日付フォーマットの統一
    - 金額の正確な抽出
    - 重複登録の防止

この実装により、以下のようなワークフローが実現できました：

1. レシートの画像をClaudeに送信
2. Claudeが内容を解析して構造化データを生成
3. 適切なカテゴリーを判断して分類
4. NotionのAPIを使ってデータベースに登録

## 実際の使用例

### 1. テキストベースでの指示による登録

まずはテキストベースで指示してみました。

初手から買いすぎてますね〜

![スクリーンショット 2024-12-31 16.46.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/1690ecba-a4ac-d046-9e89-3909d6f8f65b.png)

このような入力に対して、Claudeは自動的に必要な情報を抽出し、Notionデータベースに以下のような形で登録します：

```jsx
{
  properties: {
    収支: {
      select: {
        name: "支出"
      }
    },
    日付: {
      date: {
        start: "2024-12-08"
      }
    },
    金額: {
      number: 57000
    },
    タイトル: {
      title: [{
        text: {
          content: "バブアコート"
        }
      }]
    },
    カテゴリー: {
      select: {
        name: "その他支出"
      }
    }
    支払い方法: {
      select: {
        name: `楽天カード`
	    }
	  }
  },
  database_id: "データベースのIDが入ります"
}

```

![スクリーンショット 2024-12-31 17.07.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/8733425d-3327-d865-2e47-3b64b173d12f.png)


### 2. クレジットカードアプリのスクリーンショットからの一括登録

指示するのがめんどくさかったので、次はクレジットカードの利用明細画面のスクリーンショットから、複数の取引を一括で登録してもらいました。

以下はPayPayカードの請求明細ページ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/07b76a84-1f49-5edd-239b-68324726af0d.png)

上記のようなものを4つくらいまとめて添付して登録してもらいました。


いい感じに登録してくれたんですが、いくつか登録しそこねることもあったので、抜けているところをチェックして登録のし直しをお願いしたりしました。

![スクリーンショット 2024-12-31 17.11.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/644619c2-8663-e220-b8ee-5a05a10c6899.png)


### 入力精度向上のためのコツ

入力が抜けてしまうところが何個かあったので、指示を行う際にちょっと工夫してみたら精度あがりました。

```
この画像の内容を確認して。1つ1つ注意深く確認してすべての項目を入力してください。
```

15件の明細に対してしっかり15件の入力をしてくれました。

![スクリーンショット 2024-12-31 17.16.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/dcac6ed7-81ca-697c-44d2-b10227f62cab.png)


このように「1つ1つ注意深く確認」するよう指示することで：
- すべての項目を読み取り
- 見落としやすい小さな金額も確実に登録
- 日付や店舗名の読み取り精度が向上
- 合計金額の計算ミスを防止

項目が多い明細でも正確に入力してくれるようになったので、プロンプトを工夫することは大事なのを実感できました。

## 家計簿完成

こうして、ほぼClaudeちゃんが家計簿を作ってくれました。（総額は恥ずかしいので出しませんｗ）
![スクリーンショット 2024-12-31 17.20.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3969776/4bc301da-0a5e-0b4f-ad79-03a3350760a1.png)


## まとめ

ClaudeとNotionを組み合わせたら家計簿が簡単に作れたよって話を書いてみました。

個人的にはAIが色々やってくれる感覚をリアルに体感できて非常に楽しい体験だったので、ぜひ皆さんもめんどくせーなーというものをAIにやってもらうことをしてみてはいかがでしょうか？

来年は、社内のめんどくさいを1つでも多くなくせるよう頑張っていこうと思っていますので、ご期待ください。