中級向け

freee の公式 MCP を試す

freee の公式 MCP(AI が freee を直接操作する仕組み)を、Claude Code から、freee の開発用テスト事業所で試しました。期日を過ぎた未入金の一覧は、n8n の督促ワークフローと同じ7件・1,415,150円。一方、単価を書かずに見積書を頼むと、過去の見積書から単価を拾い、確認せずに作りました。取引の作成・更新・削除も、承認なしで通りました。許可設定で毎回確認にする方法と、MCP とワークフローの使い分けを書きます。

動作確認: — freee MCP(リモート版 https://mcp.freee.co.jp/mcp) / Claude Code(VS Code 拡張 2.1.310、Claude Opus 5.5、自動モード) / freee 開発用テスト事業所(法人・スターター)

freee の公式の MCP を使うと、Claude Code に「未入金の一覧を出して」「見積書を作って」と頼むだけで、AI が freee を直接、操作します。n8n でワークフローを組む必要は、ありません。では、ワークフローは、もう要らないのか。freee の開発用テスト事業所で、3つ試しました。

約23秒の動画(音声あり。音声:VOICEVOX:雨晴はう)

結論は、「調べるのは MCP、作って出すのはワークフロー」です。

  • 一度だけ調べるなら、MCP で十分でした。 期日を過ぎた未入金の一覧は、n8n の督促ワークフローと同じ7件・1,415,150円でした。準備は、MCP をつなぐだけです
  • 書き込みは、AI が自分の判断で進めます。 単価を書かずに見積書を頼むと、過去の見積書から単価を拾い、確認せずに作りました。 取引の作成・更新・削除も、承認なしで通りました(Claude Code の自動モード)
  • 止める方法は、あります。 Claude Code の許可設定で、freee の書き込みを「毎回確認」にすると、2回とも、承認の画面が出ました
  • 決まった作業を、毎回同じチェックで回すなら、ワークフローです。n8n の見積書のワークフローは、価格表にない品目を「※要確認」の行にして、値段を決めません

先に、この記事の限界です。試したのはテスト事業所の、架空のデータだけで、本番の事業所では試していません(末尾の「確認していないこと」)。

freee MCP とは

MCP は、AI が外の道具を呼ぶための、共通の仕組みです。freee が、公式に freee-mcp(Apache-2.0 のオープンソース)を公開しています。

  • 会計・人事労務・請求書・工数管理・販売など、freee の API を、AI から呼べます
  • 道具は、汎用の5つ(freee_api_get / post / put / patch / delete)と、使える API の一覧(freee_api_list_paths)、事業所の切り替えなどです。「見積書を作る」のような専用の道具はなく、AI が API の道(パス)と中身を、自分で組み立てます
  • つなぎ方は、freee のサーバー(https://mcp.freee.co.jp/mcp)につなぐリモート版(README で推奨)と、自分の PC で動かすローカル版があります。この記事は、リモート版です
  • README には、読み取り専用のモードの記載はありません(2026-10-25 に読んだ内容)

Claude Code から freee MCP につなぐ

README の手順は、Claude Code のプラグインとして入れる方法です(claude plugin marketplace add freee/freee-mcp と claude plugin install freee-mcp@freee-mcp-marketplace)。筆者の環境(Windows、VS Code の拡張)では、ターミナルで claude のコマンドが使えなかったので、別の方法でつなぎました。

  1. Claude Code の中で /mcp を開き、サーバーを追加します。名前は freee、種類は HTTP、URL は https://mcp.freee.co.jp/mcp です
  2. 新しいセッションで /mcp を開き、freee を選んで、ブラウザで freee にログインします(追加した直後のセッションでは、まだ使えませんでした)
  3. 事業所を選びます。筆者は、開発用テスト事業所(freee の開発者向けの、無料のテスト用の事業所)にしました

プラグインで入れると、API の使い方をまとめた説明(Agent Skills)も一緒に入りますが、この方法では入りません。以下の結果は、その説明なしで試したものです。

試したこと1:期日を過ぎた未入金の一覧は、ワークフローと同じ答え

Claude Code に「期日を過ぎて未入金の請求を一覧にして」と頼みました。Claude が呼んだ API は、2回です。

  1. 会計の取引の一覧(収入で、未決済のもの)
  2. 取引先の一覧(名前を引くため)

結果は、2026-10-25 の時点で、7件・合計 1,415,150円でした。

取引先 請求番号 期日 未入金の額
株式会社テスト商事(架空) INV-0000000002 2026-10-20 188,100円
株式会社テスト商事(架空) INV-0000000003 2026-10-15 32,250円(52,250円のうち、20,000円は入金済み)
(取引先なし) なし 2026-10-21 50,000円
freee のデモの取引先3社(4件) なし 2013〜2014年 計 1,144,800円
  • 期日が 11/30 の INV-0000000004(78,100円)は、まだ期日前として、正しく外しました
  • 一部だけ入金のあった売上も、残りの額(32,250円)で出しました
  • 同じ日に動かした n8n の督促ワークフローの結果(期日超過7件、メールアドレスのないデモの取引先3社、取引先なし1件、テスト商事 220,350円)と、すべて一致しました

気になった点が、1つあります。取引先の一覧は、テスト事業所にあるデモの取引先、約50社の分を、口座の情報まで含めて、まとめて返しました。 テスト事業所では問題ありませんが、取引先の多い会社では、1回の答えが大きくなります。

試したこと2:見積書は、単価を自分で決めて、確認なしで作った

次に、「株式会社テスト商事に、パンフレット(A4)500部の見積書を作って」と頼みました。単価は、あえて書きませんでした。

Claude の動きは、こうでした。

  1. 取引先を検索して、テスト商事を見つけた
  2. 見積書の一覧を読み、パンフレットの載った過去の見積書(Q-0000000004)を開いた
  3. その中の「パンフレット印刷(A4・カラー) 1部 120円」を、そのまま使うと決めた
  4. 確認せずに、見積書を作った(Q-0000000007:500部 × 120円 = 60,000円、税込 66,000円、送付待ち)

作ったあとに、「単価は、過去の見積書から流用しました」と報告し、見積書のメモ欄にも、そう書きました。隠してはいません。 freee の README にも、「取引登録: 類似の取引を参考にして、入力ミスを防ぐ」という書き方があり、過去を参考にすること自体は、自然な動きです。

問題は、過去の単価が、今も正しいとは限らないのに、人に確かめずに作ったことです。部数で単価が変わる、値上げした、その取引先だけの値引きだった。どれも、過去の見積書からは分かりません。

ここが、ワークフローとの違いです。n8n の見積書のワークフローは、単価を、価格表のスプレッドシートからだけ入れます。 価格表にない品目は、値段なしの「※要確認」の行にして、止まります。AI に、値段を決めさせません。

試したこと3:取引の作成・更新・削除も、承認なしで通った

最後に、使い捨ての取引(1,100円、テスト商事あて)で、作る → 金額を 2,200円に変える → 消すを試しました。

  • 3つとも、承認の画面は出ずに、通りました(Claude Code の自動モード。筆者が画面で確認)
  • 消したあとに読むと、「存在しないか既に削除された取引です」と返り、完全に消えていました
  • 一方、見積書と請求書(freee請求書)には、消す API がなく、取り消ししかありません。試験で作った見積書 Q-0000000007 も、「消して」と頼むと、取り消しになり、一覧には「取り消し済み」で残りました

止めるものは、2つしかありませんでした。

  • freee のアプリの権限:筆者のテスト事業所では、試験のデータを作るために、会計の「取引」の書き込みを許可していました
  • Claude Code の許可設定:freee の道具についての決まりは、何も入れていませんでした

書き込みを「毎回確認」にする方法

Claude Code の設定ファイル(筆者は、ユーザー全体の ~/.claude/settings.json)に、次を足しました。

{
  "permissions": {
    "ask": [
      "mcp__freee__freee_api_post",
      "mcp__freee__freee_api_put",
      "mcp__freee__freee_api_patch",
      "mcp__freee__freee_api_delete"
    ]
  }
}
  • ask に書いた道具は、呼ぶたびに、承認の画面が出ます
  • 読み取り(freee_api_get)は入れていないので、一覧などは、今までどおり、すぐに答えます
  • freee の部分は、/mcp で付けたサーバーの名前です。別の名前でつないだなら、そこを変えます

足したあと、同じセッションのまま、使い捨ての取引を作って、消しました。 2回とも、承認の画面が出ました(筆者が画面で確認)。Claude Code を、開き直す必要は、ありませんでした。

もう1つの守りは、freee のアプリの権限を、必要なものだけにすることです。消す操作をさせたくないなら、ask ではなく deny(禁止)に書く方法もあります(deny は、試していません)。

MCP とワークフローの使い分け

3つの試験から、筆者は、こう使い分けます。

freee MCP(Claude Code から) n8n のワークフロー
向く作業 一度だけ調べる、その場の集計、下調べ 毎日・毎回の決まった作業
値段や金額 AI が判断して埋めることがある(試験2) 価格表や freee の値から、コードが入れる
チェック AI の判断と、人の承認しだい 毎回、同じチェックを通る(照合、禁止語など)
動くタイミング 人が頼んだとき 決まった時刻、メールが届いたとき
準備 つなぐだけ ワークフローを組む
間違えたときの守り 許可設定の ask、アプリの権限 下書き(送付待ち)で止め、人が送る
  • 「調べる」は、MCP。 未入金の一覧、ある取引先の今月の売上、去年の同じ月との比較。答えを人が読むだけなら、間違えても、被害が出ません
  • 「作って、外に出す」は、ワークフロー。 見積書、請求書、督促のメール。お客様に届くものは、毎回、同じチェックを通したいので、手順を固定します
  • MCP で作るなら、許可設定で毎回確認にして、単価と金額を、人が読みます

確認していないこと

  • 本番の事業所での動き(試したのは、開発用テスト事業所の、架空のデータだけ)
  • Claude Code の自動モード以外(毎回確認するモードなど)での、承認の画面の出方
  • プラグインで入れた場合(Agent Skills が一緒に入る)に、見積書の作り方が変わるか
  • 取引先や取引が多い会社で、一覧の答えが、どれくらい大きくなるか
  • 許可設定の deny(禁止)が、MCP の道具に効くか
  • Claude Code 以外の AI(Claude のアプリなど)から、freee MCP を使ったときの動き

次に読む

次に読む