freee MCP でできること
freee MCP は、Claude Code から freee の会計・人事労務・請求書などの API を直接操作できる MCP サーバーだ。
たとえば「今月の売上を教えて」「この取引を振替伝票で登録して」といった自然言語の指示で、freee 上の仕訳や口座情報を読み書きできる。
この記事では、freee MCP を Claude Code で使えるようにするまでの手順を書く。
前提
- Claude Code がインストール済みであること
- freee のアカウントを持っていること
- Node.js(v18 以上)がインストール済みであること
1. freee Developer にアプリを登録する
freee API を使うには、OAuth 用のクライアント ID とクライアントシークレットが必要になる。
freee アプリストア の開発者ページにアクセスし、アプリを作成する。
アプリの作成手順
- 「アプリ管理」から「新規作成」を選ぶ
- アプリ名を入力する(自分がわかる名前でよい)
- コールバック URL に
http://localhost:54321/callbackを設定する - 作成後、表示される Client ID と Client Secret を控える
コールバック URL のポート番号
54321は freee-mcp のデフォルト値。変更する場合は後述の設定ファイルでcallbackPortを合わせる。
2. Claude Code に MCP サーバーを追加する
Claude Code のターミナルで次のコマンドを実行する。
claude mcp add freee \
-e FREEE_CLIENT_ID=<取得したClient ID> \
-e FREEE_CLIENT_SECRET=<取得したClient Secret> \
-- npx freee-mcp
<取得したClient ID> と <取得したClient Secret> は、手順 1 で控えた値に置き換える。
設定が成功すると、~/.claude.json の mcpServers に次のようなエントリが追加される。
{
"mcpServers": {
"freee": {
"type": "stdio",
"command": "npx",
"args": ["freee-mcp"],
"env": {
"FREEE_CLIENT_ID": "xxxxxxxxxxxxxxx",
"FREEE_CLIENT_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
3. Claude Code を再起動して認証する
MCP サーバーを追加したら、Claude Code を再起動する(/quit して再度 claude を起動)。
起動後、freee の API を呼ぶツールが使えるようになっている。
まず認証状態を確認するため、Claude Code に次のように聞く。
freee の認証状態を確認して
初回はトークンが存在しないため、「期限切れ」や「未認証」と表示される。
次に、実際に API を呼ぶ指示を出す。
freee の事業所一覧を表示して
すると、ブラウザが自動的に開き、freee の OAuth 認可画面が表示される。
「許可する」を押すと、ローカルのコールバック URL にリダイレクトされ、トークンが自動的に保存される。
トークンは
~/.config/freee-mcp/tokens.jsonに保存される。
有効期限が切れても、次回の API 呼び出し時に自動でリフレッシュされる。
4. 事業所を設定する
認証が通ったら、操作対象の事業所を設定する。
freee の事業所一覧を表示して
複数の事業所がある場合は、操作対象を指定する。
事業所「○○」を現在の事業所に設定して
5. 使ってみる
ここまでで準備は完了。あとは自然言語で freee を操作できる。
登録されている口座を確認する
登録されている銀行口座名を教えて
Claude Code が freee_api_get ツールで /api/1/walletables を呼び出し、口座名を返してくれる。
取引を検索する
2024年1月の入金を一覧で見せて
銀行明細(wallet_txns)から該当期間の入金を検索し、日付・金額・摘要を表示する。
振替伝票を登録する
管理費や手数料が差し引かれた入金を正しく仕訳したい場合、振替伝票として登録できる。
2024年1月15日の入金198,285円を以下の内訳で振替伝票として登録して
- 賃貸料(総額)210,000円
- 管理費 11,385円
- 振込手数料 330円
Claude Code は勘定科目の ID を調べ、manual_journals API で振替伝票を作成する。
freee MCP で使える主なツール
| ツール名 | 用途 |
|---|---|
freee_auth_status |
認証状態の確認 |
freee_list_companies |
事業所一覧の取得 |
freee_set_current_company |
操作対象の事業所を切り替え |
freee_api_get |
GET リクエスト(データ取得) |
freee_api_post |
POST リクエスト(データ作成) |
freee_api_put |
PUT リクエスト(データ更新) |
freee_api_delete |
DELETE リクエスト(データ削除) |
freee_api_get などの汎用ツールは、service パラメータで対象サービス(accounting、hr、invoice など)を指定し、freee API のパスをそのまま渡す形になっている。
Claude Code が API ドキュメントの知識をもとに適切なパスやパラメータを組み立ててくれるため、利用者が API の仕様を覚える必要はない。
ハマりどころ
deals API で借方・貸方を混在できない
freee の deals(取引)API は、income タイプの取引で借方と貸方を混在させた仕訳を作れない。
管理費や手数料を差し引いた入金のように、複合仕訳が必要な場合は manual_journals(振替伝票)API を使う。
自動で経理から登録された取引の制約
「自動で経理」で銀行明細と紐付けられた取引は、金額の変更や決済行の削除ができない。
修正するには取引自体を削除してから振替伝票として再登録し、元の銀行明細は「明細を無視」で処理する。
tax_code: 0 は「未選択」
税区分コードに 0 を指定すると、freee 上では「未選択」と表示される。
「対象外」にしたい場合は tax_code: 2 を指定する。
freee の税区分コード一覧を取得して
と聞けば、利用可能な税区分コードの一覧を確認できる。
まとめ
freee MCP を使うと、Claude Code から freee の会計データを直接操作できる。
セットアップは、freee Developer でアプリを作り、claude mcp add で MCP サーバーを登録するだけで完了する。
仕訳の登録や修正のような定型作業を自然言語で指示できるため、freee の画面を何度も開いて手入力する手間が省ける。