0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

freee-mcpで確定申告を自動化したら、トークン代がfreeeの月額より高くなりそうだった話【CLI Skill付き】

0
Last updated at Posted at 2026-03-06

はじめに — 便利すぎて見落としていたコスト

前回の記事で、freee-mcpを使って確定申告の経費登録を8時間→30分に短縮した話を書きました。

便利。最高。もう手入力には戻れない。

…と思っていたのですが、ふとトークン消費量を確認して目が覚めました。

270個のAPIツール定義が、毎ターン注入される

freee-mcpをClaude Codeに接続すると、270個のAPIツール定義がコンテキストに載ります。毎ターンです。

会計API(31エンドポイント)、人事労務API(27エンドポイント)、請求書API、工数管理API、販売API — 経費登録に必要なのはほんの一部なのに、全API分のスキーマがall-or-nothingで注入されます。

2026年3月時点で、API絞り込み設定は未対応です。

勘定科目一覧、1回のレスポンスで108,734文字

さらに衝撃だったのがレスポンスサイズです。

GET /api/1/account_items(勘定科目一覧): 108,734文字

10万文字超え。 1回のAPI呼び出しで、文庫本1冊分のテキストがコンテキストに流れ込みます。

取引一覧も全2,902件。limit を指定しないと全件返ってきます。

経費1件あたりのトークンコスト

実測してみました。

方式 入力トークン(推定) 出力トークン(推定) 備考
MCP経由 1件 ~15,000〜20,000 ~300 270 APIツール定義がinputに毎回載る
CLI Skill 1件 ~2,000〜3,000 ~50 curlコマンド+jqフィルタのみ
CLI Skill 12件一括 ~3,000〜4,000 ~500 forループで1回のBash呼び出し

MCP経由だと、経費1件登録するだけで約17,500トークンを消費します。そのうち大半はAPIツール定義のオーバーヘッドです。

freee月額 vs トークン代

Claude Sonnet 4の入力トークン単価は $3/MTk(100万トークンあたり$3)です。

シナリオ トークン数 コスト 備考
MCP経由で10件/月 175,000 $0.53(約79円) 個人事業主の現実的な件数
MCP経由で年間 2,100,000 $6.3(約945円) 12ヶ月分
freeeスターター 月額1,480円 年間17,760円

MCP経由のトークン代だけで、年間約945円。freeeの月額1ヶ月分に迫ります。

かなり安いですが、複雑な気持ちになりました。経費登録を自動化して時間を節約したのに、トークン代という新しい経費が生まれている。しかもこれ、経費登録するたびに増えていく経費です。経費を登録するために経費が発生する — なんとも皮肉な話ですが、確定申告で計上できるのがせめてもの救いです。

解決策: CLI Skill化でトークン90%以上削減

MCP経由の問題は明確です:

  1. 270 APIツール定義のオーバーヘッド — 毎ターン注入、絞り込み不可
  2. レスポンスの冗長性 — 全フィールドが返却される

解決策として、必要なAPIだけをCLI Skill化しました。

Before: MCP経由

Claude → Skill呼び出し(APIリファレンス注入) → MCP Tool → freee API
         ↑ 270 API分のスキーマが毎回注入

After: CLI Skill

Claude → Bash(curl + jq) → freee API
         ↑ 必要なエンドポイントだけ、レスポンスもjqでフィルタ

実測比較

API MCP経由 CLI Skill(jqフィルタ) 削減率
取引一覧(3件) ~3,000文字 ~200文字 93%減
勘定科目一覧 108,734文字 ~200文字 99.8%減
取引登録レスポンス ~800文字/件 ~80文字/件 90%減

勘定科目一覧は500分の1になりました。 CLI Skillでは必要なフィールド(ID・名前・カテゴリ)だけをjqで抽出するので、10万文字が200文字になります。

コスト比較

方式 経費10件/月 年間コスト
MCP経由 $0.53(79円) 945円
CLI Skill $0.08(12円) 138円
CLI 一括 $0.01(2円) 19円

CLI一括登録なら、年間のトークン代は19円。MCP経由の約50分の1です。

OAuthトークンの再利用

CLI Skill化で気になるのが認証ですが、freee-mcpのOAuthトークンをそのまま再利用できます。

# freee-mcpのトークンファイル
~/.config/freee-mcp/tokens.json

ここに保存されたアクセストークンをcurlで使えば、追加の認証フローは不要です。

実際に作ったCLI Skill

Claude Codeの .claude/skills/ に以下のSkillを作りました。freee APIをcurlで直接呼び出すシンプルなSkillです。

# 共通変数
ACCESS_TOKEN=$(jq -r .access_token ~/.config/freee-mcp/tokens.json)
COMPANY_ID=$(jq -r .currentCompanyId ~/.config/freee-mcp/config.json)

# GETの例(取引一覧を3件取得)
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://api.freee.co.jp/api/1/deals?company_id=$COMPANY_ID&limit=3" \
  | jq '.deals[] | {id, issue_date, amount, status}'

# POSTの例(経費登録)
curl -s -X POST -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "company_id": "'$COMPANY_ID'",
    "issue_date": "2025-07-15",
    "type": "expense",
    "details": [{
      "account_item_id": YOUR_ACCOUNT_ITEM_ID,
      "tax_code": 136,
      "item_id": YOUR_ITEM_ID,
      "amount": 8432,
      "description": "電気代7月分"
    }],
    "payments": [{
      "date": "2025-07-15",
      "from_walletable_type": "wallet",
      "from_walletable_id": YOUR_WALLET_ID,
      "amount": 8432
    }]
  }' "https://api.freee.co.jp/api/1/deals" \
  | jq '{id: .deal.id, date: .deal.issue_date, amount: .deal.amount}'

ポイントは jqで必要なフィールドだけ返すこと。freee APIのレスポンスは全フィールド返却されるため、そのままだと勘定科目一覧で10万文字超えます。jqフィルタで {id, name, category} だけ抽出すれば200文字に収まります。

まとめ

freee-mcpは間違いなく便利です。確定申告の経費登録が8時間→30分になった体験は本物です。

ただし、MCP経由のトークン消費には注意が必要です:

  • 270個のAPIツール定義が毎ターン注入される
  • 勘定科目一覧は1回で10万文字超え
  • 経費登録を月30件続けると年間2,835円のトークン代

確定申告のように使うAPIが限定的な場合は、CLI Skill化でトークン消費を90%以上削減できます。

そして次の記事では、freee-mcpを使っていて気づいたさらに致命的な問題について書きます。MCPには、そもそもファイルが送れないのです。

→ 次回:「個人事業主がfreee-mcpで確定申告しようとしたら、MCPには領収書すら送れなかった話」


📘 CLAUDE.mdのセキュリティ設計やClaude Codeの実践ノウハウは、『実践Claude Code(Kindle版)』で体系的にまとめています。

📘 MCPのセキュリティ・トークンコスト・ワークアラウンドについては、『MCP実践セキュリティ(Kindle版)』で体系的にまとめています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?