freeeで領収書を元にClaude Codeで取引登録を行う方法 #2:手順をスキルにして、次からは頼むだけ
私の経験に基づく記録ですので、これを推奨するものでも、動作を保証するものでもありません。あくまでも参考情報としてご覧ください。
#1では、領収書の取引登録をClaude Codeに頼んで、確認してから登録してもらえました。
毎回同じ指示をするのがだるいなあ、と思ったら、スキルという方法で定型化すると楽になります。
スキルとは
Claude Codeに手順書を持たせておく仕組みです。
作業フォルダに .claude/skills/スキル名/SKILL.md というファイルを作って手順を書いておくと、/スキル名 と打ったとき、または内容に合う頼み方をしたときに、Claude Codeがそれを読んでから動きます。
手順書は自分で書くこともできますが、綺麗に書く自信がなかったのでClaude Code自身に書いてもらいました。私が書いたのは、頼むときの1行だけです。
スキルの作り方と、CLAUDE.md との使い分けは私のClaude Codeスキルの作り方にまとめました。
前提
- #1 と同じ環境。個人事業主のfreee、freee公式MCP、Claude Code(Fable 5.1)
- 領収書は #1 と同じタクシーのもの。#1で登録した取引を消して、未登録に戻して使いました
スキルを作ってもらう
Claude Codeにこう指示。
freeeにアップロードした領収書ファイルを登録するスキルを作って。
10分ほどで「スキルが完成しました」と返ってきました。
下記、Claude Codeがやったこと。
- 私のfreeeの勘定科目・口座・税区分・過去の支出取引を読んで、記帳のクセ(現金で当日決済・課対仕入10%など)を把握
- ファイルボックスの領収書の画像を見て、手順を作成
- できた手順で、登録はせずに提案まで出す試運転を3回して、手順を修正
できたのは、手順書(SKILL.md)1本と、参照ファイル2本(私の事業所の設定・「タクシーなら旅費交通費」のような対応表 references/account-mapping.md)でした。
参照ファイルは頼んでいないのですが、設定ファイルとして勝手に作ったみたいです。
スキルの中身
できた手順書(SKILL.md)の抜粋です。長いので、丸括弧の行は私が要約したものです。
---
name: freee-receipt-register
description: freee会計のファイルボックスにアップロード済みの領収書を読み取り、支出取引として登録して証憑を紐付けるスキル。「アップロードした領収書を登録して」「ファイルボックスの未登録分を処理して」などと頼まれたら必ずこのスキルを使う。
---
# freee ファイルボックスの領収書を取引登録する
## なぜ丁寧にやるか
取引登録は会計帳簿への書き込みで、間違えると確定申告の数字がずれる。
OCR が読んだ金額・日付・発行元は間違っていることがあるし、同じ「交通費」でも私用なら経費にならない。
だから「機械的に全部登録」ではなく、領収書の画像を実際に見て、ユーザーに一覧で確認してもらってから書き込む。
## 手順
### 0. 事業所を確定する
(事業所IDを確認。合っていれば references/ の設定ファイルを読み、勘定科目・口座・税区分の取得は省略してよい)
### 1. 未登録の領収書を集める
(/api/1/receipts を category=without_deal で取得。アップロード日で絞る。0件なら報告して終わり)
### 2. 1件ずつ中身を確認する
(画像を必ず見る。OCRと食い違ったら画像を正とする。明らかに経費でないものは「対象外候補」にする)
### 3. 仕訳を組み立てる
(発行日・取引先・勘定科目・税区分・金額・摘要・支払口座・証憑ID・メモタグを決める。勘定科目は references/account-mapping.md の対応表で)
### 4. 確認してもらう
書き込む前に、提案を1つの表にして見せる。
この段階までは一切書き込まない。ユーザーが「ドライラン」「提案だけ」と言ったらここで終わる。
### 5. 登録する
(まだ無いメモタグ・取引先があれば先に作ってIDを取り、取引を POST。1件ずつ呼び、失敗しても残りを止めず、最後にまとめて報告する)
### 6. 検証して報告する
(取引を再取得して領収書が紐付いていることを確認。未登録の残件も再確認。取引IDと確認用URLを報告する)
## やらないこと
- ローカルファイルのアップロード(Remote MCP では POST /api/1/receipts が使えない)
- 収入側の取引(自分が発行した領収書)
- 領収書ファイルの削除・「無視」への変更
- 経費申請フローへの投入
スキルで登録する
指示はスキル名だけです。
/freee-receipt-register
ファイルボックスの未登録領収書は1件でした。画像を確認したところ、OCR結果(発行元・日付・金額)と一致しています。
| 項目 | 内容 |
|---|---|
| 発行日 | 2026-01-05 |
| 発行元 | ◯◯交通株式会社 |
| 勘定科目 | 旅費交通費 |
| 税区分 | 課対仕入10% |
| 金額 | ¥2,100 |
| 支払 | 現金(発行日に決済済み) |
| 摘要 | タクシー移動 |
このまま登録してよいですか。修正があれば内容を教えてください。
登録して
登録が完了し、検証も済みました。取引を再取得し、領収書が紐付いていることを確認しました。ファイルボックスの未登録を再取得したところ0件で、残件はありません。
「登録する前に確認して」と言わなくても、確認してから登録するようになりました。
提案までは45秒、「登録して」から報告までは45秒でした(登録後の紐付け確認まで含む)。
自分でやった場合と同じくらいの速さかな?と思いましたが、複数件をまとめて行うなら、指示してほったらかしにできるのが強いなと思いました。
#1 との違い
| #1 MCPにそのまま頼む | #2 スキルで頼む | |
|---|---|---|
| 指示 | 「freeeにファイルをアップロードしたから、内容を確認して取引登録して。登録する前に確認して。」 | /freee-receipt-register |
| 確認のタイミング | 指示に書いたので確認された | 手順書に入っているので毎回確認される |
| 事業所の設定 | 毎回freeeを読みに行く | 参照ファイルに書いてあるので読み直さない |
| 登録後 | 「登録しました」 | 紐付けと残件を確認して報告 |
領収書が10枚あっても、指示は同じはずです。
まとめ
手順書の「やらないこと」にもあるとおり、MCP接続では今のところファイルボックスへのアップロードができない仕様です。
#3では、ファイルアップロードも自動化するために、スクリプトを使って登録する方法を書きました。
- freee公式MCP(GitHub): https://github.com/freee/freee-mcp
- Claude Code のスキル(公式ドキュメント): https://code.claude.com/docs/ja/skills