Claude

Claude Codeで会計事務所の業務を革命する完全ガイド【2026年最新】|仕訳自動化・MCP連携・無人化まで徹底解説

2026年3月5日 71分で読める AQUA合同会社
Claude Codeで会計事務所の業務を革命する完全ガイド【2026年最新】|仕訳自動化・MCP連携・無人化まで徹底解説


Claude Codeで会計事務所の業務を革命する完全ガイド【2026年最新】

更新|読了目安: 30分

Claude Codeは会計処理をしない。会計処理をする「マシン」を組み上げる。AIチャットに「この仕訳を教えて」と聞けば、1回だけ答えてくれます。Claude Codeに同じことを頼むと、通帳CSVを読み込むスクリプトを生成し、仕訳ルールをCLAUDE.mdに定義し、バリデーションをHooksで自動化し、Gitで監査証跡を残し、cronで毎朝無人実行する「システム」を構築します。そしてミスが見つかるたびにCLAUDE.mdが更新され、同じ間違いは二度と起きない。この「自己改善する会計システム」こそがClaude Codeの本当の革命です。

1. Claude Codeが会計業務の自動化に最適な理由

会計業務の自動化に必要なのは「質問に答えるAI」ではなく「システムを構築するAI」です。1件の仕訳を教えてもらっても、翌月もまた同じ作業が待っています。必要なのは、通帳CSVを自動で読み込み、仕訳に変換し、検証し、会計ソフトに投入し、監査証跡を残す「永続的な仕組み」です。

Claude Codeはこの「仕組みを構築する」能力に特化したCLIツールです。以下の成熟度モデルで、各段階の位置づけを確認してください。


会計事務所AI活用の成熟度モデル Level 0〜4 手作業(Level 0)からAI質問(Level 1)、パイプ処理(Level 2)、スクリプト化(Level 3)、自律システム(Level 4)への進化を示す5段階の成熟度モデル図解 会計事務所AI活用の成熟度モデル 低い 自動化レベル 高い Level 0 手作業 Excelに手入力 コピー&ペースト 目視チェック AI不使用 Level 1 AI質問 AIチャットに 1件ずつ聞く コピペで転記 一問一答 Level 2 パイプ処理 cat csv | claude -p CSV一括変換 プロトタイピング Claude Code Level 3 スクリプト化 再利用可能な変換 スクリプトを生成 APIコストゼロ運用 Claude Code Level 4 自律システム cron + Hooks + Git + MCP + CLAUDE.md 自己改善ループ Claude Code Claude CodeはLevel 2〜4をカバーし、会計業務の「自律システム構築」まで到達できる。 Level 2(パイプ処理)はプロトタイピング。Level 3(スクリプト生成)が本番運用の核心。 Level 4(自律システム)では、CLAUDE.md + Hooks + Git + cron + MCPが複合し、 「使えば使うほど賢くなる自己改善型の会計処理マシン」が完成する。

機能 Claude Codeでできること 会計業務での活用例
ローカルファイルの直接操作 PC上のファイルを直接読み書き 通帳CSVを直接読み込んで仕訳変換
スクリプト生成&即時実行 Python・シェルを生成して即実行 銀行CSV→freee形式の変換スクリプトを自動生成
パイプ処理(stdin/stdout) Unixパイプで他コマンドと連携 CSVの前処理→仕訳変換→検証を一行で実行
ヘッドレス(無人)実行 cron・CI/CDから自動起動 毎朝6時に自動で仕訳ドラフトを生成
Hooks(自動検証) 処理前後に検証スクリプトを挿入 交際費/会議費の自動判定、貸借一致チェック
MCPサーバー連携 外部API・DBと直接接続 freee APIから残高取得、仕訳を直接投入
Git統合 変更履歴を自動管理・コミット 全仕訳の変更履歴を監査証跡として保存
プロジェクトルール(CLAUDE.md) 永続的な業務ルールを定義 科目体系・仕訳パターン・事務所ルールを永続化
核心: Claude Codeは「1回聞く」ツールではなく「永続的に動くシステムを構築する」ツールです。「仕訳を教えて」ではなく「仕訳を自動処理するマシンを作って」– この発想の転換が会計業務では決定的な違いになります。

Claude Codeのインストール

Claude Codeを使い始めるには、Node.js(v18以上)をインストールした上で、以下のコマンドを実行します:

# Claude Codeをグローバルインストール
npm install -g @anthropic-ai/claude-code

# インストール確認
claude --version

# 初回起動(Anthropicアカウントでの認証が必要)
claude

初回起動時にブラウザが開き、Claude Pro以上のプラン(月額3,400円〜)でログインすると利用可能になります。詳しい導入手順は「Claude Code 初心者完全ガイド」をご参照ください。

本記事のコード例は技術的に見えますが、Claude Codeに「このスクリプトを作って」と自然言語で指示すれば自動生成されます。コードを読む必要はありません。社内にエンジニアがいれば導入はさらにスムーズです。

2. CLAUDE.mdで「事務所の全ノウハウ」を言語化する

Claude Codeの最大の武器の一つがCLAUDE.mdです。これはプロジェクトのルートに置くマークダウンファイルで、Claude Codeが毎回の起動時に自動的に読み込む「永続的な指示書」です。一般的なAIの指示機能は文字数制限がありますが、CLAUDE.mdには実質的な制限がなく、事務所の全ノウハウを詳細に記述できます。

しかしCLAUDE.mdの本当の力は「指示書」としての機能ではなく、「自己改善するルールブック」としての機能です。

自己改善ループ: 同じミスは二度と起こさない


CLAUDE.md自己改善ループの仕組み AIが仕訳を生成し、Hooksがミスを検知し、CLAUDE.mdにルールを追加し、同じ間違いが二度と起きないサイクルを示す図解 CLAUDE.md 仕訳ルールを定義 「交際費は5,000円基準」 参照 Claude Code ルールに従い仕訳を生成 スクリプトを実行 出力 Hooks検証 貸借一致・税率チェック 不正なら書込ブロック ミス! ミスパターン記録 「接待の1人4,800円を 交際費にしたが会議費」 → 人数で割って判定 CLAUDE.mdを更新 → 二度と再発しない このループが回るたびに、システムは「ベテラン税理士」に近づいていく

このループが重要な理由は、人間の引き継ぎでは失われる「暗黙知」が、CLAUDE.mdに明文化されて永続的に残るからです。新人が同じミスを繰り返す問題が、仕組みとして解消されます。

CLAUDE.mdの設計パターン: マスター + クライアント別

会計事務所では、事務所全体のルール(マスター)クライアント固有のルールを階層的に管理するのが最適です。

# ディレクトリ構成
accounting-office/
├── CLAUDE.md # マスタールール(全クライアント共通)
├── clients/
│ ├── client-a-corp/
│ │ ├── CLAUDE.md # A社固有ルール
│ │ ├── bank-csv/ # 通帳CSV
│ │ ├── journals/ # 仕訳データ
│ │ └── reports/ # 月次レポート
│ ├── client-b-shop/
│ │ ├── CLAUDE.md # B店固有ルール
│ │ └── ...
│ └── client-c-clinic/
│ ├── CLAUDE.md # Cクリニック固有ルール
│ └── ...

マスターCLAUDE.md の全文例

# 会計事務所マスタールール

## 基本方針
- 全ての仕訳は必ず貸借一致を検証すること
- 消費税率は取引日基準で判定(2019/10/1以降: 10%、軽減8%)
- 勘定科目は「弥生会計」準拠の体系を使用

## 勘定科目体系
| コード | 科目名 | 区分 |
|--------|--------|------|
| 1101 | 現金 | 資産 |
| 1102 | 普通預金 | 資産 |
| 1103 | 当座預金 | 資産 |
| 4101 | 売上高 | 収益 |
| 5101 | 仕入高 | 費用 |
| 5201 | 給与手当 | 費用 |
| 5301 | 旅費交通費 | 費用 |
| 5302 | 通信費 | 費用 |
| 5303 | 消耗品費 | 費用 |
| 5310 | 支払手数料 | 費用 |

## 仕訳パターン辞書
- "ATM手数料" → 支払手数料 / 普通預金
- "振込手数料" → 支払手数料 / 普通預金
- "利息" → 普通預金 / 受取利息
- "給与" → 給与手当 / 普通預金
- "Amazon" → 消耗品費 / 普通預金(要確認フラグ)

## 条件分岐ルール(判断に迷うケース)
- 飲食費の交際費/会議費判定:
- 1人あたり金額 = 合計金額 ÷ 参加人数
- 5,000円以下 → 会議費(損金算入可)
- 5,000円超 → 交際費(中小企業: 年800万円まで損金算入)
- 参加人数が不明な場合 → 「要確認」フラグを付与し、交際費として仮計上
- 外注費と給与の区分:
- 請求書あり + 源泉徴収なし → 外注費
- 判断できない場合 → 「要確認」フラグ付きで外注費として仮計上
- 前払費用:
- 支払期間が12ヶ月超 → 必ず期間按分確認フラグを付与
- 保険料・家賃は特に注意

## フォールバックルール
- 既知パターンに一致しない取引 → 「要確認」フラグ付きで「雑費」に仮計上
- 金額100万円以上の取引 → 必ず「要確認」フラグを付与
- 新規取引先 → 初回は必ず「要確認」フラグ

## 過去ミスの教訓(絶対に繰り返さない)
- 2025/06: 社会保険料の預り金を法定福利費に誤計上 → 必ず預り金で処理
- 2025/09: 前払費用の期間按分を忘れた → 12ヶ月超の支払いは必ず按分確認
- 2025/11: 交際費5,000円基準を超えた飲食費を会議費に → 参加人数で割る
- 2026/01: 軽減税率8%対象の食品仕入を10%で処理 → 食品関連は税率を必ず確認

## 出力フォーマット
- CSV: UTF-8 BOM付き(Excel対応)
- 日付形式: YYYY/MM/DD
- 金額: カンマなし整数

クライアント別CLAUDE.md の例

# A社(製造業) - 固有ルール

## 基本情報
- 法人番号: T1234567890123
- 決算期: 3月末
- 消費税: 本則課税(一般課税)
- 適格請求書発行事業者

## A社固有の仕訳パターン
- "ヤマト運輸" → 荷造運賃 / 普通預金
- "東京電力" → 水道光熱費 / 普通預金
- "ASKUL" → 消耗品費 / 普通預金
- "三井住友カード" → 未払金計上(明細で個別仕訳)

## 注意事項
- 外注費と給与の区分に注意(実態判定が必要なケースあり)
- 製造原価と販管費の区分を厳密に
- 棚卸資産の評価方法: 総平均法

このようにCLAUDE.mdに条件分岐ルール・フォールバックルール・過去のミスパターンを蓄積することで、Claude Codeは「新人スタッフ」ではなく「ベテラン税理士のような判断基準」で仕訳を処理できるようになります。そしてミスが見つかるたびにCLAUDE.mdが進化し、システム全体が賢くなっていく — これが他のAIツールにはない、Claude Code固有の価値です。

CLAUDE.mdの配置場所: CLAUDE.mdはプロジェクトのルートディレクトリに直接配置します(.claude/フォルダの中ではありません)。クライアント別のCLAUDE.mdも同様に、各クライアントディレクトリの直下にCLAUDE.mdとして置きます。Claude Codeはカレントディレクトリから親ディレクトリに向かって全てのCLAUDE.mdを読み込むため、マスタールールとクライアント固有ルールが自動的に統合されます。

3. パイプ処理は「プロトタイピング」 — 制限と正しい使い方

Claude Codeのパイプ処理cat file | claude -p)は強力ですが、万能ではありません。ここではパイプ処理の正しい位置づけと、実務で直面する制限を正直に解説します。

パイプ処理の正しい位置づけ: プロトタイピングツール

パイプ処理は「この変換、Claude Codeでできるかな?」を素早く確認するプロトタイピングツールです。本番運用のメイン手段ではありません。

# プロトタイプ: まずは動くか確認する
cat mizuho_202603.csv | claude -p "このCSVを仕訳データに変換して。CLAUDE.mdのルールに従うこと" > journal_draft.csv

# 動いたら → セクション4のスクリプト生成に進む(これが正しいワークフロー)

パイプ処理の3つの制限

制限 具体的な問題 対処法
コンテキストウィンドウ Claude Codeのコンテキストは約20万トークン。1万件の取引を含むCSV(約2MB)は入りきらない 大量データは分割処理するか、スクリプト生成(セクション4)に移行
毎回APIコスト発生 1回の変換で数百〜数千トークン消費。月次で12回×10社=120回実行するとコストが積み上がる パイプで検証→スクリプト化で以降コストゼロに
結果の再現性 AIの出力は毎回微妙に異なる。同じCSVでも実行のたびに科目判定が変わる可能性がある 確定的な処理はスクリプトに落とし込む

日本の銀行CSVの現実的な課題

cat bank.csv | claude -p」と書くのは簡単ですが、実際の銀行CSVには以下の課題があります:

銀行 エンコーディング 主なカラム 注意点
みずほ銀行 Shift-JIS 日付, お取り扱い内容, お支払金額, お預り金額, お取引後残高 照会期間最大3ヶ月。みずほダイレクト通帳申込者のみCSV可
三菱UFJ銀行 Shift-JIS 日付, 摘要, 摘要内容, 支払金額, 預り金額, 差引残高 PC版のみCSVダウンロード可能
三井住友銀行 Shift-JIS 年月日, お引出し, お預入れ, お取り扱い内容, 残高 Webブラウザ版のみ(アプリ不可)
ゆうちょ銀行 Shift-JIS 取扱日, 入払種別, 取扱内容, 金額, 残高, 入出金明細ID CSV形式が複数存在。照会期間最大2ヶ月

最大の問題はShift-JISエンコーディングです。Claude Codeのパイプに直接流すと文字化けする可能性があります。

# 間違い: 文字化けする可能性がある
cat mizuho_202603.csv | claude -p "仕訳に変換して"

# 正しい: UTF-8に変換してからパイプに流す
iconv -f SHIFT_JIS -t UTF-8 mizuho_202603.csv | claude -p "仕訳に変換して" > journal_draft.csv

# さらに正しい: ヘッダー行を確認してから処理する
iconv -f SHIFT_JIS -t UTF-8 mizuho_202603.csv | head -3 # まずカラム構成を確認
iconv -f SHIFT_JIS -t UTF-8 mizuho_202603.csv | claude -p "みずほ銀行のCSV(カラム: 日付,お取り扱い内容,お支払金額,お預り金額,お取引後残高)を仕訳に変換して" > journal_draft.csv

パイプ処理が有効な場面

制限を理解した上で、パイプ処理が最も効果的な場面があります:

# 1. 少量データの素早い変換(100件以下)
iconv -f SHIFT_JIS -t UTF-8 mizuho_202603.csv | claude -p "仕訳CSVに変換" > journal.csv

# 2. 仕訳の検証(生成済みデータのチェック)
cat journal.csv | claude -p "貸借一致を検証し、エラーがあれば報告して" > validation.txt

# 3. 月次サマリーの生成(集計・分析)
cat journal.csv | claude -p "勘定科目ごとの月次集計表をMarkdownで作成して" > monthly_summary.md

# 4. 新しい変換パターンのプロトタイピング
iconv -f SHIFT_JIS -t UTF-8 smbc_202603.csv | head -20 | claude -p "このCSVのカラム構成を分析して、仕訳変換ルールを提案して"

正しいワークフロー: パイプ処理で「動くこと」を確認したら、すぐにセクション4のスクリプト生成に移行してください。パイプ処理を本番運用で毎月繰り返すのは、コスト的にも再現性の面でも非効率です。パイプはプロトタイプ、スクリプトが本番 — この使い分けがClaude Code活用の鍵です。

4. スクリプト生成 — Claude Codeの真の価値はここにある

これがこの記事の核心です。パイプ処理は便利ですが、毎回APIトークンを消費し、結果の再現性も保証されません。Claude Codeの真の価値は、「1回きりの処理」ではなく「再利用可能なスクリプトを生成して永続的に残す」ところにあります。

AIチャットに「仕訳を教えて」と聞くのは毎月タクシーを呼ぶこと。Claude Codeにスクリプトを作らせるのは自分の車を手に入れることです。一度作れば、毎月の「乗車料金」はゼロになります。

反復改善ループ: 生成→テスト→修正→完成

Claude Codeのスクリプト生成は「一発で完璧」ではありません。対話的に改善していくのが正しいワークフローです。

# ステップ1: 初回生成
claude "みずほ銀行のCSV(Shift-JIS)をfreeeインポート形式(UTF-8 BOM付き)に
変換するPythonスクリプトを作って。
要件:
- Shift-JIS→UTF-8変換
- カラム: 日付,お取り扱い内容,お支払金額,お預り金額,お取引後残高
- CLAUDE.mdの仕訳パターン辞書に基づく勘定科目推定
- 推定できない取引は '要確認' フラグを付与
- freee収支形式CSV出力(収支区分,管理番号,発生日,勘定科目,税区分,金額...)
- scripts/mizuho_to_freee.py として保存"

# ステップ2: テスト実行
python scripts/mizuho_to_freee.py bank-csv/mizuho_202603.csv
# → エラー発見: 日付形式が 2026/3/5 で、freeeの要求する 2026-03-05 と合わない

# ステップ3: Claude Codeに修正させる
claude "scripts/mizuho_to_freee.py の日付変換にバグがある。
みずほCSVの日付 '2026/3/5' を freeeの '2026-03-05' 形式に変換するよう修正して。
ゼロ埋めも忘れずに。"

# ステップ4: 再テスト → 追加要件
python scripts/mizuho_to_freee.py bank-csv/mizuho_202603.csv
# → 動いた。ただし振込手数料の消費税区分が空欄

# ステップ5: さらに改善
claude "scripts/mizuho_to_freee.py で、支払手数料の税区分が空欄になる。
ATM手数料・振込手数料は '課対仕入10%' を自動設定するように修正して。"

# 完成: 以降は何度でもコストゼロで実行
python scripts/mizuho_to_freee.py bank-csv/mizuho_202604.csv # 4月分
python scripts/mizuho_to_freee.py bank-csv/mizuho_202605.csv # 5月分

生成されるスクリプトの骨格(実際のコード)

Claude Codeが生成するスクリプトは以下のような構造になります。これは骨格を示したもので、実際にはCLAUDE.mdの仕訳パターン辞書の内容に応じてさらに充実します。

#!/usr/bin/env python3
"""みずほ銀行CSV → freeeインポート形式 変換スクリプト"""
import csv
import sys
from datetime import datetime
from pathlib import Path

# エンコーディング自動検出(Shift-JIS/UTF-8両対応)
def detect_encoding(file_path: str) -> str:
encodings = ['utf-8-sig', 'shift_jis', 'cp932']
for enc in encodings:
try:
with open(file_path, 'r', encoding=enc) as f:
f.read(1024)
return enc
except (UnicodeDecodeError, UnicodeError):
continue
raise ValueError(f"エンコーディング検出失敗: {file_path}")

# 仕訳パターン辞書(CLAUDE.mdから転写)
PATTERNS: dict[str, dict[str, str]] = {
"ATM手数料": {"account": "支払手数料", "tax": "課対仕入10%"},
"振込手数料": {"account": "支払手数料", "tax": "課対仕入10%"},
"利息": {"account": "受取利息", "tax": "非課税売上"},
"給与": {"account": "給与手当", "tax": "対象外"},
"ヤマト運輸": {"account": "荷造運賃", "tax": "課対仕入10%"},
"東京電力": {"account": "水道光熱費", "tax": "課対仕入10%"},
"ASKUL": {"account": "消耗品費", "tax": "課対仕入10%"},
}

def match_pattern(description: str) -> dict[str, str]:
"""摘要から仕訳パターンをマッチング"""
for keyword, mapping in PATTERNS.items():
if keyword in description:
return mapping
return {"account": "雑費", "tax": "課対仕入10%", "flag": "要確認"}

def convert(input_path: str, output_path: str) -> None:
encoding = detect_encoding(input_path)
rows_out: list[dict[str, str]] = []

with open(input_path, 'r', encoding=encoding) as f:
reader = csv.DictReader(f)
for row in reader:
# 日付変換: 2026/3/5 → 2026-03-05
raw_date = row.get('日付', row.get('取扱日', ''))
dt = datetime.strptime(raw_date.strip(), '%Y/%m/%d')
date_str = dt.strftime('%Y-%m-%d')

# 金額判定: 支払 or 入金
payment = row.get('お支払金額', '').replace(',', '').strip()
deposit = row.get('お預り金額', '').replace(',', '').strip()
description = row.get('お取り扱い内容', '').strip()

pattern = match_pattern(description)

if payment and payment.replace('-', '', 1).isdigit() and int(payment) > 0:
rows_out.append({
"収支区分": "支出",
"発生日": date_str,
"勘定科目": pattern["account"],
"税区分": pattern["tax"],
"金額": payment,
"備考": description + (" [要確認]" if "flag" in pattern else ""),
"決済口座": "みずほ銀行",
})
elif deposit and deposit.replace('-', '', 1).isdigit() and int(deposit) > 0:
rows_out.append({
"収支区分": "収入",
"発生日": date_str,
"勘定科目": pattern.get("account", "売上高"),
"税区分": pattern.get("tax", "課税売上10%"),
"金額": deposit,
"備考": description + (" [要確認]" if "flag" in pattern else ""),
"決済口座": "みずほ銀行",
})

# UTF-8 BOM付きで出力(freee要件)
fieldnames = ["収支区分","発生日","勘定科目","税区分","金額","備考","決済口座"]
with open(output_path, 'w', encoding='utf-8-sig', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows_out)

flagged = sum(1 for r in rows_out if "[要確認]" in r["備考"])
print(f"変換完了: {len(rows_out)}件 (うち要確認: {flagged}件)")
print(f"出力: {output_path}")

if __name__ == '__main__':
if len(sys.argv) != 2:
print("Usage: python mizuho_to_freee.py <input.csv>")
sys.exit(1)
input_file = sys.argv[1]
output_file = str(Path(input_file).stem) + "_freee.csv"
convert(input_file, output_file)

トークンコスト比較: パイプ毎月 vs スクリプト1回生成

方式 初回コスト 月次コスト(10社) 年間コスト 再現性
パイプ処理を毎月実行 ほぼゼロ 約2,000〜5,000トークン×10社×12回 API従量課金が継続発生 低い(毎回微差あり)
スクリプト1回生成(推奨) 対話5往復で約10,000トークン ゼロ(ローカル実行) 初回のみ 完全に確定的

スクリプトの進化: 新パターンの追加

新しい取引先が登場したとき、Claude Codeにスクリプトを自ら修正させられる点も強力です。

# 新しい取引先が登場したら
claude "scripts/mizuho_to_freee.py を更新して。
新しいパターンを追加:
- 'ラクスル' → 広告宣伝費 / 課対仕入10%
- 'ChatWork' → 通信費 / 課対仕入10%
- 'SmartHR' → 支払手数料 / 課対仕入10%"

スクリプトはGit管理されているので、いつ・どんなパターンが追加されたかが全て記録されます(→ セクション8で詳述)。そして新パターンを追加したという事実がCLAUDE.mdにも反映される — スクリプト・CLAUDE.md・Gitの三位一体で、システム全体が進化していきます。

処理方式 初回コスト 2回目以降 カスタマイズ性 監査証跡
手作業(Excel手入力) なし 毎回同じ工数 高い(人間の判断) 低い
パイプ処理(プロトタイプ) 低い(1行) 毎回API消費 中(プロンプト調整) 低い
スクリプト生成(推奨) 中(対話5往復) コストゼロ 高い(コード修正可能) 高い(Git管理)

5. カスタムMCPサーバーで会計ソフトとリアルタイム接続

MCP(Model Context Protocol)は、Claude Codeを外部システムと接続するためのオープンプロトコルです。これを使えば、Claude CodeからfreeeやマネーフォワードのAPIを直接呼び出すことが可能になります。

MCPサーバーの最大の利点は、Claude Codeに「作らせる」ことができる点です。

# Claude CodeにMCPサーバーを作成させる
claude "freee APIに接続するMCPサーバーをTypeScriptで作成して。
機能:
1. get_trial_balance - 試算表の取得(GET /api/1/reports/trial_bs)
2. get_journals - 仕訳一覧の取得(GET /api/1/manual_journals)
3. create_journal - 仕訳の登録(POST /api/1/manual_journals)
4. get_account_items - 勘定科目一覧の取得(GET /api/1/account_items)
freee APIのアクセストークンは環境変数 FREEE_ACCESS_TOKEN から取得。
@modelcontextprotocol/sdk を使うこと。
mcp-servers/freee-server/ に作成して。"

MCPサーバーの設定

// .claude/settings.json の mcpServers セクション
{
"mcpServers": {
"freee": {
"command": "npx",
"args": ["tsx", "mcp-servers/freee-server/index.ts"],
"env": {
"FREEE_ACCESS_TOKEN": "${FREEE_ACCESS_TOKEN}",
"FREEE_COMPANY_ID": "${FREEE_COMPANY_ID}"
}
}
}
}

MCPサーバー連携後の実際の使い方

# 試算表を取得して前年同月比を分析
claude "freeeから今月の試算表を取得して、前年同月と比較分析して。
増減が10%以上の科目にはフラグを立てて。"

# 仕訳をまとめて登録
claude "journals/verified_202603.csv の仕訳をfreeeに一括登録して。
登録前にドライランで件数と合計金額を表示して。"

MCPサーバーを一度構築すれば、Claude Codeは会計ソフトとシームレスに連携し、「試算表を取得して分析して」が1コマンドで完結します。なお、freeeは公式MCPサーバーも提供しており、約270のAPIエンドポイントにアクセス可能です。詳しいMCPの仕組みについては「Claude Code × MCP 実践活用ガイド」をご参照ください。

注意: freee APIやマネーフォワードAPIの利用にはそれぞれのサービスの開発者登録とアクセストークンの取得が必要です。OAuthフロー、トークンリフレッシュ、レート制限への対応も考慮してください。APIの利用規約も必ず確認してください。

6. Hooksで「人間より正確な」バリデーション層を構築

Claude CodeのHooksは、AIの動作に割り込んで任意のスクリプトを自動実行する機能です。複数のイベント(PreToolUse, PostToolUse, Notification, Stop等)にフックでき、特に会計事務所ではPreToolUseを使った「書き込み前の自動検証」が強力です。

Hooks設定ファイル(正確な構文)

// .claude/settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "python3 scripts/validate_journal.py"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "bash scripts/backup_and_commit.sh"
}
]
}
]
}
}

Hookスクリプトは標準入力でJSON(session_id, tool_name, tool_inputを含む)を受け取り、標準出力でJSON({"continue": true} or {"continue": false, "stopReason": "..."})を返します。continue: falseを返すと書き込みがブロックされます。

validate_journal.py — 貸借一致チェックの実装

#!/usr/bin/env python3
"""Hooks用: 仕訳CSVの貸借一致・消費税率を検証するバリデーションスクリプト"""
import csv
import io
import json
import sys
from datetime import datetime

def validate_journal_content(content: str) -> list[str]:
"""これから書き込む仕訳CSV内容を検証し、エラーリストを返す"""
errors: list[str] = []

reader = csv.DictReader(io.StringIO(content))
fieldnames = reader.fieldnames or []

# 複式簿記形式(借方/貸方がある場合)
if '借方金額(円)' in fieldnames and '貸方金額(円)' in fieldnames:
total_debit = 0
total_credit = 0
for i, row in enumerate(reader, start=2):
debit = int(row.get('借方金額(円)', '0').replace(',', '') or '0')
credit = int(row.get('貸方金額(円)', '0').replace(',', '') or '0')
total_debit += debit
total_credit += credit

# 行レベルチェック: 借方と貸方が両方ゼロ
if debit == 0 and credit == 0:
errors.append(f"行{i}: 借方・貸方ともにゼロ")

# 消費税率チェック
tax_div = row.get('借方税区分', '') or row.get('貸方税区分', '')
date_str = row.get('取引日', row.get('発生日', ''))
if date_str and tax_div:
try:
dt = datetime.strptime(date_str.strip(), '%Y-%m-%d')
if dt >= datetime(2019, 10, 1):
if '8%' in tax_div and '軽減' not in tax_div:
errors.append(
f"行{i}: 2019/10/1以降で旧8%税率を使用。"
f"軽減税率8%か10%が正しい可能性あり"
)
except ValueError:
pass

# 貸借一致チェック
if total_debit != total_credit:
errors.append(
f"貸借不一致: 借方合計={total_debit:,}円, "
f"貸方合計={total_credit:,}円, "
f"差額={abs(total_debit - total_credit):,}円"
)

return errors

def main():
# Hooksからの入力を読み取る(tool_inputにこれから書き込む内容が含まれる)
hook_input = json.load(sys.stdin)
tool_input = hook_input.get('tool_input', {})
file_path = tool_input.get('file_path', '')
content = tool_input.get('content', '')

# 仕訳関連CSVのみ検証
if file_path.endswith('.csv') and ('journal' in file_path.lower() or 'shiwake' in file_path.lower()):
errors = validate_journal_content(content)
if errors:
result = {
"continue": False,
"stopReason": "仕訳バリデーションエラー:\n" + "\n".join(f" - {e}" for e in errors)
}
json.dump(result, sys.stdout)
return

# 検証OK or 対象外
json.dump({"continue": True}, sys.stdout)

if __name__ == '__main__':
main()

Hookの活用パターン一覧

Hookイベント 用途 実装例
PreToolUse(Write) 貸借一致の検証 借方合計≠貸方合計なら書込ブロック
PreToolUse(Write) 消費税率の検証 取引日と適用税率の矛盾を検出
PreToolUse(Write) 勘定科目コードの検証 存在しない科目コードを検出
PreToolUse(Write) 高額取引アラート 100万円以上の取引に自動フラグ
PostToolUse(Write) 自動バックアップ タイムスタンプ付きコピーを作成
PostToolUse(Write) Git自動コミット 変更を自動的にgit commitし監査証跡を残す
PostToolUse(Write) Slack通知 仕訳処理完了時にチーム全員に通知
Stop 処理完了サマリー 処理件数・要確認件数のレポートを出力

Hooksの真の価値は、「AIのミスを仕組みで防ぐ」ことです。AIが生成した仕訳がバリデーションを通過しなければ、そもそもファイルに書き込まれません。人間のダブルチェックに加えて、プログラム的な検証層を追加することで、ミスの発生率を大幅に削減できます。そして重要なのは、Hooksで検出されたエラーパターンをCLAUDE.mdに追記すれば、同じミスはAIレベルでも再発しなくなる点です(→ セクション18の複合効果で詳述)。

7. ヘッドレスモード×cronで毎朝の仕訳を完全無人化

Claude Codeのヘッドレスモード(-pフラグまたは--printフラグ)を使えば、対話なしでClaude Codeを実行できます。これをcronと組み合わせることで、毎朝の仕訳処理を完全に無人化できます。

自動化スクリプトの全体像

#!/bin/bash
# scripts/daily_journal.sh - 毎朝6時に実行

LOG_DIR="logs/$(date +%Y%m%d)"
mkdir -p "$LOG_DIR"

# 新しいCSVファイルがあるか確認
NEW_FILES=$(find bank-csv/incoming/ -name "*.csv" -newer .last_processed 2>/dev/null)

if [ -z "$NEW_FILES" ]; then
echo "$(date): 新しいCSVなし" >> "$LOG_DIR/daily.log"
exit 0
fi

# スクリプトで仕訳変換(APIコストゼロ・確定的な出力)
while IFS= read -r csv; do
echo "$(date): 処理中: $csv" >> "$LOG_DIR/daily.log"
python scripts/mizuho_to_freee.py "$csv" >> "$LOG_DIR/daily.log" 2>> "$LOG_DIR/errors.log"
done <<< "$NEW_FILES"

# 処理完了タイムスタンプを更新
touch .last_processed

# Slack通知
curl -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d "{\"text\": \"仕訳処理完了: $(echo $NEW_FILES | wc -w)件のCSVを処理しました\"}"

cron設定

# crontab -e で追加
# 毎朝6:00に仕訳処理を実行
0 6 * * * cd /path/to/accounting-office && bash scripts/daily_journal.sh

# 毎月1日に前月のサマリーレポートを生成
# macOS:
0 8 1 * * cd /path/to/accounting-office && python scripts/monthly_report.py > reports/monthly_$(date -v-1m +\%Y\%m).md # ※セクション4の手法で事前にスクリプトを生成しておく
# Linux:
# 0 8 1 * * cd /path/to/accounting-office && python scripts/monthly_report.py > reports/monthly_$(date -d "last month" +\%Y\%m).md # ※同上

この仕組みを導入すると、朝出勤した時点で仕訳のドラフトが完了しています。担当者は検証と修正だけに集中でき、「データ入力」という最も時間のかかる作業から解放されます。


Claude Codeによる会計事務所の業務自動化フロー全体図 通帳CSV取込からMCP連携、Git監査証跡、レポート出力までのエンドツーエンドの自動化フローを示す図解 Claude Code × 会計事務所: エンドツーエンド自動化フロー 通帳CSV 請求書PDF レシート画像 スクリプト実行 Shift-JIS→UTF-8変換 仕訳パターンマッチ CLAUDE.md 業務ルール・科目体系 Hooks検証 貸借一致チェック 消費税率検証 MCPサーバー freee / MF API連携 Git記録 全変更の監査証跡 自動コミット 出力 仕訳CSV(会計ソフトインポート用) 月次レポート(Markdown/PDF) 申告ドラフト(JSON/XML) Slack通知 サブエージェント 10社同時並列処理 cron × ヘッドレスモード: 上記フロー全体を毎朝自動実行(完全無人化) 0 6 * * * cd /accounting-office && bash scripts/daily_journal.sh

8. Gitで会計データの完全な監査証跡を実現

Claude CodeはGit統合を標準で備えており、仕訳データの変更履歴を自動的に管理できます。これは会計事務所にとって、監査対応の根拠資料として極めて大きな価値を持ちます。

Gitが解決する会計事務所の3つの課題

# 1. いつ・誰が・何を変更したか
git log --oneline journals/
# a1b2c3d 2026-03-05 仕訳修正: 交際費→会議費(5,000円基準で再分類)
# d4e5f6g 2026-03-04 3月分通帳CSV取込(みずほ銀行)
# h7i8j9k 2026-03-01 期首残高設定

# 2. 先月との差異を即座に確認
git diff HEAD~1 journals/202603_journal.csv
# 変更された行がハイライト表示される

# 3. 特定の仕訳の変更履歴を追跡
git log -p --follow journals/client-a/202603_journal.csv
# 全ての変更とその理由(コミットメッセージ)を表示

従来のExcel運用では「上書き保存」で過去のデータが消失するリスクがありましたが、Git管理なら全ての変更が記録され、いつでも過去の状態に戻れます。税務調査で「なぜこの仕訳を修正したのか」を問われたとき、コミットメッセージが根拠資料になります。

9. 並列処理で顧問先10社を同時処理

Claude Codeの-pフラグ(ヘッドレスモード)を複数プロセスで同時起動すれば、月末の繁忙期に10社分の月次処理を並列に処理できます。bashの&(バックグラウンド実行)で複数のClaude Codeプロセスを同時に走らせる仕組みです。

# 月末一括処理スクリプト
#!/bin/bash
# scripts/monthly_batch.sh

for client_dir in clients/*/; do
client_name=$(basename "$client_dir")
echo "処理開始: $client_name"

# 1. CSV→仕訳変換(事前に生成したPythonスクリプトで確実に処理)
(cd "$client_dir" && python scripts/convert_csv_to_journal.py)

# 2. 月次レポート生成のみAIで(分析・要約はAIの付加価値が高い用途)
(cd "$client_dir" && claude -p "
今月の仕訳データ(journals/)を分析し、
月次サマリーレポートを作成してください。
前月比の増減分析と異常値の指摘を含めること。
CLAUDE.md のクライアント固有ルールに従うこと。
") > "${client_dir}reports/monthly_$(date +%Y%m).md" &
done

# 全プロセスの完了を待機
wait
echo "全クライアントの月次処理が完了しました"

CSV→仕訳の変換はセクション4の手法で事前に生成したスクリプトで確実に処理し、月次レポートの分析・要約のみClaude Codeで並列実行します。AIの付加価値が高い「分析」に集中させることで、処理の信頼性と速度を両立できます。

10. 電帳法・インボイスを「仕組み化」する

2024年1月から完全義務化された電子帳簿保存法と、2023年10月開始のインボイス制度。これらの対応をClaude Codeで自動化できます。

電帳法対応: ファイル監視→自動命名→索引簿生成

# Claude Codeにファイル監視スクリプトを作らせる
claude "電子帳簿保存法に対応するファイル管理スクリプトを作って。
要件:
1. incoming/ フォルダを監視
2. 新しいPDF/画像が追加されたら:
- ファイル名を '取引日_取引先_金額.pdf' 形式にリネーム
- 索引簿(index.csv)に自動追加
- 検索要件(日付・金額・取引先)を満たすメタデータを付与
3. scripts/dencho_watcher.py として保存"

インボイス: 適格請求書番号の一括検証

# 国税庁の適格請求書発行事業者公表サイトAPIで検証
claude "invoices/ フォルダ内の請求書PDFから適格請求書番号を抽出し、
国税庁のWeb APIで有効性を一括検証するスクリプトを作って。
結果をCSVで出力: ファイル名, 番号, 検証結果(有効/無効/不明)"

これらの作業は手作業では膨大な時間がかかりますが、Claude Codeならスクリプトを一度作れば以降は完全自動で処理できます。コンプライアンスリスクの低減と業務効率化を同時に実現します。

11. e-Tax XMLを自動生成して申告業務を革命する

確定申告・法人税申告の最終工程であるe-Tax提出用XMLの作成も、Claude Codeで自動化の入口を作れます。

# 消費税申告書のドラフトデータを生成
claude "journals/ 内の今期の全仕訳データから、以下を作成して:
1. 課税売上・非課税売上・免税売上の集計
2. 課税仕入の税率別集計(10%・8%)
3. 消費税額の計算(本則課税)
4. 結果をJSON形式で output/tax_return_draft.json に保存"
重要な免責事項: Claude Codeが生成した申告データは必ず税理士による最終確認が必要です。AIが生成したデータをそのまま申告に使用しないでください。特にe-Tax XMLのフォーマットは国税庁の仕様変更により変わることがあるため、最新の仕様を必ず確認してください。e-Tax XML(.xtx形式)はタグがコード化されており(例: <ABB01060>は合計所得金額)、国税庁の読替表なしに人間が読み解くことは困難です。本セクションの内容はドラフト作成の効率化を目的としたものであり、税務判断を代替するものではありません。

e-Tax XML自体は複雑な仕様に基づいていますが、Claude Codeの価値は「最終XMLを完璧に生成すること」ではなく「集計・計算のドラフトを自動化すること」にあります。税理士は計算ロジックの検証と最終判断に集中でき、手計算や転記によるミスを削減できます。

12. 顧問先向けWebダッシュボードをClaude Codeで構築

Claude CodeはWebアプリケーション全体を構築できます。顧問先がブラウザで財務状況を確認できるダッシュボードを、Claude Codeに作らせることが可能です。

# Streamlitでシンプルなダッシュボードを構築
claude "顧問先向けの財務ダッシュボードをStreamlitで作って。
機能:
1. 月次P/L・B/Sの表示(グラフ付き)
2. 前年同月比較
3. 資金繰り予測(直近3ヶ月)
4. レシート画像のアップロード機能
5. CSVデータの読み込みに対応
dashboard/ ディレクトリに作成して。"

Webアプリの構築は本来エンジニアの仕事ですが、Claude Codeを使えば会計の専門家が自然言語で指示するだけで実用的なアプリを構築できます。詳しいアプリ開発の手法については「Claude Code 上級テクニックガイド」も参考になります。

13. 税務リサーチを10倍速にする

Claude CodeのWeb検索機能を使えば、最新の税制改正情報や判例をリアルタイムで調査し、回答ドラフトまで自動生成できます。

# 税制改正の調査と顧問先への回答ドラフト作成
claude "2026年度税制改正で中小企業の法人税に影響する変更点を調査して。
特に:
1. 設備投資減税の変更点
2. 賃上げ税制の拡充内容
3. 電子帳簿保存法の改正ポイント
各項目について根拠条文を明記し、顧問先への通知メールのドラフトを作成して。"

従来は税務専門誌や国税庁サイトを1つずつ確認していた作業が、Claude Codeなら調査→整理→ドラフト作成まで一気通貫で完了します。もちろん、最終的な税務判断は必ず税理士が行う必要がありますが、リサーチにかかる時間を大幅に短縮できます。

14. 導入事例と業界動向

Claude Codeの会計・金融分野での活用は急速に広がっています。

Goldman Sachs: トレード会計とコンプライアンス

Goldman SachsはAnthropicと提携し、Claudeをトレード会計、コンプライアンスチェック、顧客のオンボーディング審査に活用しています(CNBC 2026年2月報道)。Anthropicのエンジニアがゴールドマン社内に常駐し、AIエージェントの共同開発を行っている点が特徴です。金融業界における「AIによる会計処理」の先駆的事例です。

PwC・NYSE・Salesforce

PwCはCFOオフィス業務にClaude活用のエンタープライズエージェントを構築。ニューヨーク証券取引所(NYSE)はClaude Codeでエンジニアリングプロセスを再構築中。Salesforce/SlackではClaudeがAI機能を提供し、顧客満足度96%・週あたり約97分の時間削減を実現しています。Anthropicのビジネス契約は2026年初頭から4倍に増加し、年間売上は25億ドルを超えています。

日本国内の動向

日本では現役税理士がClaude DesktopからMCPでマネーフォワードクラウド会計に仕訳を切る実践事例や、Claude Codeでfreee APIと連携した「AI経理担当」の構築事例が公開されています。また、Claude CodeのSkills機能で確定申告の仕訳を自動化する事例も登場しており、個人事務所レベルでの実用化が進んでいます。

個人会計事務所での活用シナリオ

※以下は想定されるユースケースです。

5〜10社程度の顧問先を持つ個人会計事務所では、Claude Codeの導入により以下のような効率化が見込めます:

  • 通帳CSV取込→仕訳変換: 手作業30分/社 → スクリプト実行で5分/社に短縮
  • 月次レポート作成: Excel集計1時間/社 → 自動生成で10分/社
  • 電帳法対応のファイル整理: 手動リネーム・索引更新 → 完全自動化
  • 税務相談への回答ドラフト: リサーチ2時間 → 30分で概要把握

※効率化の程度はデータ量・業務内容・既存システムにより異なります。上記は典型的な中小事務所を想定した試算です。

15. コスト分析と費用対効果

プラン 月額費用 Claude Code利用 想定ユースケース
Claude Pro 3,400円/月 標準的な利用量 個人事務所(5社以下)の日常業務
Claude Max 5x 21,400円/月 5倍の利用量 中規模事務所(10〜20社)の月次処理
Claude Max 20x 42,400円/月 20倍の利用量 大規模事務所の並列処理・繁忙期対応
API利用(Sonnet 4.6) 従量課金 入力$3/出力$15 per 1Mトークン 大量バッチ処理・システム組込み

費用対効果の試算

項目 従来(手作業) Claude Code導入後 削減効果
仕訳入力(10社/月) 25時間/月 5時間/月(検証のみ) 20時間削減
月次レポート作成 10時間/月 2時間/月 8時間削減
電帳法ファイル整理 5時間/月 0.5時間/月 4.5時間削減
税務リサーチ 8時間/月 3時間/月 5時間削減
合計 48時間/月 10.5時間/月 37.5時間削減

時給3,000円で換算すると、月額112,500円相当の業務効率化がClaude Pro(月額3,400円)で実現できる計算です。ただし注意点として、スクリプト生成方式(セクション4)を採用すれば、初月以降のAPIコストは大幅に低減されます。パイプ処理を毎月繰り返す方式では月額コストが膨らむため、早期にスクリプト化に移行することが費用対効果を最大化する鍵です。

※上記の数値は10社程度の顧問先を持つ事務所を想定した架空の試算です。実際の効果は業務内容・データ量・既存の自動化レベルにより大きく異なります。

16. Claude Codeの限界と現実的な課題

ここまでClaude Codeの可能性を詳述してきましたが、正直な制限事項を理解せずに導入すると失望します。実務者として信頼できる判断をするために、以下の制限を把握してください。

制限1: コンテキストウィンドウの壁

Claude Codeのコンテキストウィンドウは約20万トークン(約15万〜30万文字相当)です。1万件の取引を含むCSV(約2MB)は入りきりません。

データ量 概算トークン数 パイプ処理 推奨手法
〜100件(小規模個人) 約2,000〜5,000 問題なし パイプ処理 or スクリプト
100〜1,000件(中小法人) 約5,000〜50,000 可能だが遅い スクリプト生成を推奨
1,000〜10,000件(中規模法人) 約50,000〜500,000 入りきらない スクリプト必須。分割処理
10,000件超(大企業) 500,000超 不可能 スクリプト + バッチ分割

対処法は明確です: セクション4で解説したスクリプト生成方式を使うこと。生成されたPythonスクリプトはローカルで動作するため、データ量の制限はPCのメモリだけです。パイプ処理はあくまでプロトタイプ — 大量データはスクリプトで処理するのが正しいアーキテクチャです。

制限2: AIが間違える典型パターン

Claude Codeは優秀ですが、以下のケースで誤る可能性があります:

誤りパターン 具体例 対策
類似取引先の混同 「東京電力」と「東京ガス」で科目を間違える CLAUDE.mdの仕訳パターン辞書を充実させる
交際費/会議費の判定ミス 1人5,200円の飲食を会議費にしてしまう 金額閾値ルールをCLAUDE.mdに明記 + Hooksで検証
新規取引先の誤分類 初めて出現する取引先を「雑費」でなく誤った科目に フォールバックルールで「要確認」フラグを強制
軽減税率の見落とし 食品仕入を10%で処理 Hooksで食品関連キーワードと税率の整合性チェック
期間按分の忘れ 24ヶ月分の保険料を一括費用計上 CLAUDE.mdで「12ヶ月超は按分確認」ルール

重要な前提: AIは判断しない。判断の材料を揃える。Claude Codeの正しい位置づけは「ドラフト作成の自動化」です。最終判断は税理士・会計士が行います。この前提を忘れると、AIへの過信による重大なミスにつながります。

制限3: トークンコストの現実

利用パターン 月間トークン概算 Claude Proで足りるか
スクリプト生成(初月のみ)+ 軽い対話 約50万トークン 余裕あり
毎月10社のCSVをパイプ処理 約200万〜500万トークン 厳しい(Max 5x推奨)
毎月10社 + リサーチ + レポート生成 約500万〜1,000万トークン Max 5x〜20x推奨

だからこそスクリプト生成方式が重要です。初月にスクリプトを作り込めば、2ヶ月目以降のトークン消費は劇的に減ります。「AIに毎回仕訳させる」のではなく「AIに仕訳マシンを作らせる」 — この発想転換がコストを1/10以下にします。

正直に言えば: Claude Codeは魔法ではありません。制限を理解し、「プロトタイプ→スクリプト化→自動化」の段階を踏むことで初めて実務に耐える仕組みになります。パイプ処理だけで本番運用しようとすると、コスト・再現性・データ量の壁にぶつかります。

17. セキュリティと注意点

会計データは最も機密性の高い情報の一つです。Claude Codeのセキュリティ特性を正確に理解した上で導入を検討してください。

セキュリティ項目 Claude Code 備考
データ処理場所 ローカル(あなたのPC上) ファイル操作はローカルで完結
API通信 プロンプト内容はAnthropicに送信 TLS暗号化で保護
データ保存 Anthropicはプロンプトを学習に不使用。ZDR(Zero Data Retention)契約も可能 ZDR契約ではプロンプト・出力が即座に破棄される
アクセス制御 Hooksでファイルアクセスを制限可能 特定ディレクトリのみ許可設定
監査ログ Git + Hooksで全操作を記録 改ざん防止はGitの署名機能で対応

データマスキング前処理スクリプト

機密データをClaude Codeに送信する前に、自動マスキングする仕組みを構築しましょう。以下のスクリプトはClaude Codeに生成させ、パイプやHooksの前段に組み込みます。

#!/usr/bin/env python3
"""会計データの機密情報マスキングスクリプト
使い方:
python mask_sensitive.py input.csv > masked.csv # マスキング
python mask_sensitive.py --unmask masked.csv map.json # アンマスキング
"""
import csv
import hashlib
import json
import re
import sys
from pathlib import Path

# マスキング対象パターン(値ベース: マイナンバー・電話番号)
VALUE_PATTERNS = {
"my_number": re.compile(r'\b\d{12}\b'), # マイナンバー(12桁)
"phone": re.compile(r'\b0\d{1,4}-\d{1,4}-\d{4}\b'), # 電話番号
}

# カラム名ベース: 口座番号など(金額カラムの誤マスクを防ぐ)
SENSITIVE_COLUMN_KEYWORDS = ['口座', 'account', '番号']

def mask_value(value: str, mapping: dict[str, str]) -> str:
"""文字列内の機密情報をマスク(値パターンベース)"""
result = value
for pattern_name, pattern in VALUE_PATTERNS.items():
for match in pattern.finditer(value):
original = match.group()
masked = f"MASKED_{pattern_name.upper()}_{hashlib.sha256(original.encode()).hexdigest()[:8]}"
mapping[masked] = original
result = result.replace(original, masked)
return result

def mask_column_value(value: str, mapping: dict[str, str]) -> str:
"""口座番号等のカラム全体をマスク"""
if value.strip():
masked = f"MASKED_ACCOUNT_{hashlib.sha256(value.encode()).hexdigest()[:8]}"
mapping[masked] = value
return masked
return value

def is_sensitive_column(col_name: str) -> bool:
"""カラム名が機密情報を含むか判定"""
return any(kw in col_name.lower() for kw in SENSITIVE_COLUMN_KEYWORDS)

def mask_csv(input_path: str) -> None:
"""CSVファイルをマスキングし、マッピングを保存"""
mapping: dict[str, str] = {}
rows: list[list[str]] = []

with open(input_path, 'r', encoding='utf-8-sig') as f:
reader = csv.reader(f)
header = next(reader, [])
sensitive_cols = {i for i, col in enumerate(header) if is_sensitive_column(col)}
rows.append(header)
for row in reader:
masked_row = []
for i, cell in enumerate(row):
if i in sensitive_cols:
masked_row.append(mask_column_value(cell, mapping))
else:
masked_row.append(mask_value(cell, mapping))
rows.append(masked_row)

# マスキング済みCSVを標準出力
writer = csv.writer(sys.stdout)
for row in rows:
writer.writerow(row)

# マッピングファイルを保存(復元用)
map_path = Path(input_path).stem + "_mask_map.json"
with open(map_path, 'w', encoding='utf-8') as f:
json.dump(mapping, f, ensure_ascii=False, indent=2)
print(f"マッピング保存: {map_path}", file=sys.stderr)

def unmask_csv(input_path: str, map_path: str) -> None:
"""マスキングを復元"""
with open(map_path, 'r', encoding='utf-8') as f:
mapping = json.load(f)

with open(input_path, 'r', encoding='utf-8-sig') as f:
content = f.read()

for masked, original in mapping.items():
content = content.replace(masked, original)

sys.stdout.write(content)

if __name__ == '__main__':
if len(sys.argv) >= 3 and sys.argv[1] == '--unmask':
unmask_csv(sys.argv[2], sys.argv[3])
elif len(sys.argv) == 2:
mask_csv(sys.argv[1])
else:
print("Usage:", file=sys.stderr)
print(" マスキング: python mask_sensitive.py input.csv > masked.csv", file=sys.stderr)
print(" アンマスク: python mask_sensitive.py --unmask masked.csv map.json", file=sys.stderr)

マスキングの運用フロー

# 1. マスキングしてからClaude Codeに処理させる
python scripts/mask_sensitive.py bank-csv/mizuho_202603.csv > /tmp/masked.csv

# 2. マスキング済みデータで仕訳処理
python scripts/mizuho_to_freee.py /tmp/masked.csv

# 3. 処理後にアンマスキング(必要な場合のみ)
python scripts/mask_sensitive.py --unmask output.csv bank-csv/mizuho_202603_mask_map.json > final_output.csv

# 4. 一時ファイルを削除
rm /tmp/masked.csv

推奨セキュリティ対策

  1. 機密データの最小化: プロンプトに送信するデータは必要最小限に。上記マスキングスクリプトを標準運用フローに組み込む
  2. 専用環境の分離: 会計処理用のPCまたはユーザーアカウントを分離し、アクセス権限を限定
  3. スクリプト方式の優先: スクリプト生成方式(セクション4)なら、本番データがAPIに送信されるのは初回のプロトタイピング時のみ。以降はローカル完結
  4. バックアップの徹底: PostToolUse Hookで自動バックアップを設定し、データ消失を防止
  5. API通信の監視: プロキシやログで、どのデータがAPIに送信されているかを定期的に監査
重要: Claude Codeに入力したプロンプトの内容はAnthropicのAPIサーバーに送信されます。顧客の個人情報、マイナンバー、銀行口座番号などの機密情報をプロンプトに含めないよう、適切なデータマスキングを行ってください。スクリプト生成方式を採用すれば、本番データをAPIに送信する必要性は最小化できます。

18. 複合効果 — なぜ「機能の足し算」ではなく「指数関数」なのか

ここまでCLAUDE.md、Hooks、Git、cron、MCPを個別に解説してきました。しかしClaude Codeの本当の革命は、これらが独立した機能ではなく、複合して指数関数的に価値が増すことにあります。


Claude Code複合効果ループ: 自己改善する会計システム CLAUDE.md、Hooks、Git、cron、MCPの5要素が循環的に連携し、使うほど賢くなる自己改善型会計システムの全体図 自己改善する会計システム — 5つの要素の複合効果 Claude Code CLAUDE.md ルールを教える / 学習する 参照 Hooks ミスを自動検知 / ブロック Git 全変更を監査証跡として記録 記録 cron 毎朝自動実行 / 無人化 起動 MCP freee / MF と双方向連携 ミス発見 → CLAUDE.md更新 → 再発防止 自己改善ループ

複合効果の具体例: 1つのミスがシステム全体を進化させる

ある月曜日の朝、cronが自動実行した仕訳処理で以下のことが起きたとします:

シナリオ: 交際費の誤判定から始まるシステム進化

  1. cronが毎朝6時に自動実行。新しい通帳CSVを検出し処理開始
  2. Claude CodeがCLAUDE.mdのルールに従い、仕訳を生成
  3. Hooksのバリデーションが「飲食費12,000円/3人=4,000円 → 会議費」と判定。OK
  4. Gitが自動コミット。監査証跡が残る
  5. 翌日、税理士がレビューして発見: 「この飲食は接待ゴルフ後の食事。参加者に社外の人がいるので交際費が正しい」
  6. 税理士がCLAUDE.mdに新ルールを追加: 「ゴルフ場名を含む取引の翌日の飲食費 → 交際費で仮計上(要確認フラグ)」
  7. Gitにルール変更がコミットされる。なぜ変更したかの理由も記録
  8. 翌月以降、同じパターンが出現したとき → 自動的に正しく処理される

この一連の流れで重要なのは、5つの要素のどれか1つでも欠けると成立しないことです:

  • CLAUDE.mdがなければ → ルールを蓄積できない
  • Hooksがなければ → ミスがファイルに書き込まれてしまう
  • Gitがなければ → いつ・なぜルールが変わったか追跡できない
  • cronがなければ → 毎朝手動で実行する必要がある
  • MCPがなければ → 会計ソフトへの投入が手作業のまま

個々の機能は「足し算」ですが、組み合わせると「掛け算」になる。これがClaude Codeの複合効果であり、「使えば使うほど賢くなるシステム」の設計思想です。この複合効果はCLIツールとしてのClaude Codeだからこそ実現できる — ファイル操作、Hooks、Git統合、cron連携が一体となって機能するからです。

複合効果の核心: 5つの要素が循環することで、使い込むほどルールが充実し、エラー率が下がり、人間の介入が減っていく。この「正のフィードバックループ」こそがClaude Codeの真価です。

19. FAQ(よくある質問)

Q. Claude Codeは会計データのセキュリティは大丈夫ですか?

Claude Codeはローカル環境で動作し、ファイル操作はPC上で完結します。ただし、プロンプトの内容はAPI経由で送信されるため、機密データのマスキングは必須です。セクション17のマスキングスクリプトを導入してください。さらに、スクリプト生成方式(セクション4)を採用すれば、本番データがAPIに送信される機会を最小化できます。

Q. Claude Codeの月額費用はいくらですか?

Claude Pro(月額3,400円)でClaude Codeが利用可能です。大量処理にはMax 5x(月額21,400円)やMax 20x(月額42,400円)プランもあります。スクリプト生成方式なら初月以降のコストは大幅に低減されます。詳しい料金比較はコスト分析セクションをご覧ください。

Q. プログラミング経験がなくても使えますか?

基本的なターミナル操作(コマンドのコピー&ペースト)ができれば利用開始できます。Claude Codeは自然言語で指示でき、必要なスクリプトを自動生成します。初心者向けの導入方法は「Claude Code 初心者完全ガイド」で詳しく解説しています。

Q. Claude Codeで生成した仕訳はそのまま申告に使えますか?

Claude Codeが生成した仕訳は必ず税理士による最終確認が必要です。AIはセクション16で解説した典型パターンで誤る可能性があります。あくまでドラフト作成の自動化ツールとして位置づけ、Hooksによるバリデーションと専門家の最終判断を経て確定させてください。

Q. freeeやマネーフォワードと連携できますか?

MCP(Model Context Protocol)機能を使い、各サービスのAPIと連携するカスタムMCPサーバーを構築できます。freeeは公式MCPサーバーも提供しています。詳しくはMCPセクションをご覧ください。

Q. 大量の取引データ(1万件以上)は処理できますか?

パイプ処理ではコンテキストウィンドウの制限で困難ですが、セクション4のスクリプト生成方式ならローカルで動作するため、PCのメモリが許す限り処理可能です。セクション16のデータ量別の推奨手法を参照してください。

20. まとめ: Claude Codeは会計処理をする「マシン」を組み上げる

20セクションにわたって解説してきた内容は、すべて1つの設計思想に収束します。

「AIに仕事をさせる」のではなく「AIに仕事をする仕組みを作らせる」。

スクリプトが変換を担い、Hooksが品質を守り、Gitが証跡を刻み、CLAUDE.mdがルールを蓄積し、cronが毎朝それらを束ねて回す。どれか1つが欠けても成立しない、5つの歯車が噛み合った自律システム — これが本記事で繰り返し示してきた到達点です。

そして最も重要なのは複合効果です:

  1. CLAUDE.mdがルールを教える → AIが仕訳を生成
  2. Hooksがミスを検知 → ファイル書き込みをブロック
  3. Gitが全変更を記録 → 監査証跡として機能
  4. ミスが発見されたらCLAUDE.mdを更新 → 同じ間違いが二度と起きない
  5. cronで毎朝自動実行 → 人間は検証だけに集中

この「自己改善するシステム」こそがClaude Codeの本当の革命です。

まずは成熟度モデルのLevel 2から始めてください。Claude Pro(月額3,400円)を契約し、1社分の通帳CSVをパイプ処理で変換してみる。動くことを確認したら、セクション4のスクリプト生成に進む。そしてHooks → Git → cron → MCPと段階的にLevel 4まで進化させていく。この段階的な進化こそが、Claude Code活用の正しいロードマップです。

さらに深くClaude Codeを学びたい方は、以下の関連記事もご参照ください:

免責事項: 本記事の内容は情報提供を目的としたものであり、税務・会計上の助言を構成するものではありません。AIツールが生成した仕訳・計算結果は必ず資格を持つ税理士・公認会計士が確認してください。本記事に記載のコスト試算・効率化数値は架空のケーススタディに基づく推定であり、実際の効果を保証するものではありません。Claude Codeの機能・料金は2026年3月時点の情報に基づいており、変更される可能性があります。銀行CSVのカラム構成は公式に仕様書が公開されていないケースがあり、連携ツールの対応情報やブログ記事からの推定を含みます。

最終更新

AI開発・導入のご相談

「何から始めればいいか分からない」「費用感を知りたい」など、AI導入に関するご相談を無料で承っております。大手SIerのような高額な費用は不要。経験豊富なエンジニアが直接対応します。

AIスクール受講生募集中

未経験からAIエンジニアへ。現役エンジニアによるマンツーマン指導で、実践的なAIスキルを最短で習得できます。就職・転職サポートも充実。まずは無料カウンセリングへ。

この記事をシェア