#2では、手順をスキルにして、頼むのはスキル名1行だけになりました。
ただ、毎回Claude Codeを開いて頼むところは同じです。
やることが決まっている定型処理なら、スクリプトにしてしまえば、動かすのにClaude Codeは要らなくなります。
#3と#4は少々エンジニア寄りの話なので、難しいと感じたら#2までの方法で全く問題ないと思います。

広告

スクリプトとは

Claude Codeに毎回頼むのではなく、Claude Codeに書いてもらったプログラムを自分で実行する方法です。
書くのはClaude Code、動かすのは自分です。
Claude Codeを通さないので、決まった処理は毎回同じ結果になります。
Claude Codeの判断が減るので、トークン(AIの利用量)もかかりません。
ついでに、freeeのAPIに直接つなぐので、MCPではできないファイルのアップロードもできます。

前提

  • #1・#2と同じ個人事業主のfreee。Claude Code(Fable 5.1)
  • 領収書は100円ショップのレシート。スマホで撮って、PCのフォルダに receipt.jpg として置きました
  • スクリプトからfreeeのAPIを使うには、freeeの開発者向け画面で「アプリ」を作る必要があります(後述)

スクリプトを作ってもらう

Claude Codeにこう指示。

私

receipt.jpg をfreeeのファイルボックスにアップロードして、取引登録までやるスクリプトを作って。実行する環境の準備も含めてお願い。登録する前に内容を確認できるようにして

5分で「スクリプト一式と実行環境の準備が完了しました」と返ってきました。
下記、Claude Codeがやったこと。

  • #2で作ったスキルの手順書と、事業所の設定(口座・勘定科目・税区分)を読む
  • freee公式のAPI仕様書を取ってきて、アップロードのAPIの形式を確認
  • Pythonの仮想環境を作って、必要なライブラリを入れる
  • スクリプトを書いて、freeeにはつながない偽のAPIで通しテスト

できたのは、本体のスクリプト1本、環境準備のシェル、設定ファイル、手順書(README)でした。

freee_receipt.py    本体(auth / register の2つのコマンド)
setup.sh            環境準備(Python の仮想環境を作って、必要なライブラリを入れる)
requirements.txt    必要なライブラリの一覧
config.json         事業所の口座・勘定科目・税区分と、発行元から勘定科目を推定するルール
.env.example        Client ID / Secret を書く設定ファイルの雛形(実際の値は .env に)
README.md           手順書
.freee_token.json   認可したときに自動で作られるファイル(freee用のアクセストークン)

freee側でアプリを作る

ここだけは自分の作業でした。Claude Codeからはこう頼まれました。

Claude Code

あなたにやってもらうこと
1. freeeの開発者向け画面(app.secure.freee.co.jp/developers/applications)でプライベートアプリを作成し、会計の「ファイルボックス・取引・取引先・メモタグ・勘定科目・口座」を参照・更新で許可する。コールバックURLは既定のまま
2. 表示された Client ID / Secret を .env に記入する
3. 初回だけ認可する(python freee_receipt.py auth)
4. 登録する(python freee_receipt.py register receipt.jpg)

1〜3の手順は、画面つきで補足記事にまとめました。初回だけの作業です。

スクリプトで取引登録する

1〜3までの準備ができたら、ターミナルを開き、4を実行します。
ターミナルの開き方がわからなければ、Claude Codeに「ターミナル開いて」と言ってみましょう。
Claude Codeの画面の右側にターミナルが開くので、上記4のコマンドを叩きます。

python freee_receipt.py register receipt.jpg

叩くと、確認画面が出て止まります(発行元や金額は、引数で渡さなければfreeeのOCR結果を待って埋めます)。

ターミナルでコマンドを叩くと、登録内容の確認画面が出て止まる
ターミナルでコマンドを叩くと、登録内容の確認画面が出て止まる

実行から確認画面まで約10秒。y を押すと数秒で登録され、証憑の紐付けまで確認して終わりました。

freeeに登録された取引の画面
freeeに登録された取引の画面

Claude Codeを閉じていても、コマンド1行で登録まで終わります。
動いているのはスクリプトで、Claude Codeはもう間にいません。
Claude Codeを閉じていても、Macのターミナルから同じコマンドを打てば動きます。
ターミナルで叩けばClaude Codeは不要でも、「ターミナル???」って思ってしまったあなたは、スクリプトの実行もスキルに組み込んでしまいましょう。

#1・#2 との違い

#1 MCPにそのまま頼む #2 スキルで頼む #3 スクリプト
領収書のアップロード スマホのfreeeアプリ スマホのfreeeアプリ スクリプトがPCから上げる
指示 毎回文章で /freee-receipt-register コマンド1行
動くもの Claude Code Claude Code プログラム
Claude Codeが必要なとき 毎回 毎回 作るときだけ
内容の判断 Claude Codeが画像を見て決める 手順書どおりにClaude Codeが決める 設定ファイルの対応表で決める。判断がいる領収書には向かない
初回の準備 MCPの接続 スキルを作る freeeのアプリ作成と認可

まとめ

定型処理はスクリプトにして、Claude Codeなしでも動くようにする。判断がいるものは、スキルにしてClaude Codeに頼む。という分け方になりました。
スクリプトを書くのは大変そうに見えますが、書いたのはClaude Codeで、私がやったのは次の3つだけです。

  • スクリプトを作ってと依頼
  • freeeの画面操作(APIを利用するための手続き)。手順はコチラ
  • コマンドを叩いて y を押した

コマンドを叩くのも面倒だったので、スキルに組み込むことにしました。#4:スクリプトの実行もスキルに組み込んで、チャットでOKと言うだけ

参考