この記事の結論
freee MCPは約270のAPIを Claude Code / Cursor から直接呼び出せる強力なOSS(freee公式、2026年3月公開)。しかし設定の詰まりどころが複数あり、エラーのまま止まるケースが多い。
本記事では「症状→原因→対処」の流れで8つの頻出問題を整理する。各ポイントのコマンド詳細・最新仕様は変わりやすいため、必ず公式GitHub(github.com/freee/freee-mcp)のREADMEを正とする。
freee MCPを使えば、AIエージェントが取引の記帳・経費・給与データを直接操作できる。しかし「設定したのに動かない」「APIが呼べない」といった声が開発者コミュニティに多数上がっている。詰まる箇所はほぼ共通しており、1つずつ潰せば確実に動く。

事前準備チェックリスト
設定を始める前に以下を確認しておくと、後のトラブルを防げる。
事前確認4項目
- freee アカウント:事業所管理者権限があること
- freee API アプリ登録:freee Developer Console でアプリを作成済みであること
- 実行環境:Node.js(推奨バージョンは公式READMEで確認)・npxが使えること
- MCP 対応クライアント:Claude Code / Cursor など、MCP設定ファイルが存在すること
注意
実際の取引データや本番事業所で動作確認するのは危険。必ずfreeeのサンドボックス環境で検証してから本番適用すること(後述ポイント⑧参照)。
詰まりポイント8選と解決法
① Client Secret / トークンのコピペミス・余分な空白
症状
認証エラー(401 Unauthorized)が出て先に進めない。設定は正しいつもりなのにトークンを認識しない。
原因:freee Developer ConsoleからClient IDやClient Secretをコピーした際に、文字列の前後に半角スペースや改行が混入しやすい。JSONの設定ファイルに直接貼るとダブルクォート内の余分な文字がそのまま渡り、認証に失敗する。
対処:
- コピー後にテキストエディタのプレーンテキストモードで一度確認し、前後の空白を取り除く
- 環境変数(
.envファイルや OSのシェル変数)に設定する場合も、代入文の末尾に空白が入っていないか確認する - 設定ファイルの文字列を
echoコマンドで出力するなど、実際に渡っている値をデバッグすること
注意
Client Secretは再生成するとそれまでの値が無効になる。複数環境で使い回している場合は全箇所の更新が必要。最新の取り扱いは公式READMEで確認。
② OAuthスコープの設定漏れ
症状
接続自体は成功するが、特定のAPIを呼ぶと403エラーが返る。「経費は取れるが人事データが取れない」など機能ごとに動作が違う。
原因:freee APIのOAuth2では会計・人事・決済など機能ごとにスコープが分かれており、アプリ登録時に必要なスコープを明示的に有効化しなければならない。デフォルトでは全スコープが付与されないため、使いたい機能のスコープが足りていない状態になりやすい。
対処:
- freee Developer Consoleの当該アプリの設定ページで、利用予定の機能(会計・人事・販売管理など)に対応するスコープにチェックが入っているか確認する
- スコープを追加した後はアクセストークンを再取得する必要がある(既存トークンには新スコープが反映されない)
- 必要スコープの一覧は公式READMEに記載があるため参照すること
③ Node.js / npx の実行環境不足
症状
command not found: npx や Error: Cannot find module が出る。起動コマンドを入力しても何も起きない。
原因:freee MCPはNode.jsランタイムで動作する。Node.jsが未インストール、バージョンが古い、またはnpxがPATHに通っていない環境では起動できない。
対処:
node --versionとnpx --versionでインストール状況を確認する- バージョン要件は時期によって変わるため、公式READMEの「Requirements」セクションで必ず確認する
- バージョン管理に nvm や volta を使っている場合、MCPクライアントが起動する環境のPATHにNodeが含まれていないことがある。シェルのプロファイル設定を確認すること
注意
Claude CodeやCursorはシステムPATHを参照するが、ターミナルで動作していたNodeがMCPクライアント環境では見えないことがある。PATHのフルパスをMCP設定ファイルに明記する方法が有効なケースもある(詳細は公式READMEで確認)。
④ MCP 設定ファイル(JSON)の記法ミス・パス誤り
症状
クライアントを再起動してもfreee MCPが一覧に表示されない。「MCPサーバーが起動しない」とエラーが出る。
原因:MCP設定ファイル(Claude Codeなら ~/.claude/settings.json、Cursorなら mcp.json など)のJSON構文エラーや、コマンドのパス誤りが原因。JSONはカンマ1つの過不足で丸ごと読み込みに失敗する。
対処:
- 設定ファイルを保存したら
node -e "JSON.parse(require('fs').readFileSync('<設定ファイルパス>', 'utf8'))"などで構文チェックを行う - コマンドのパスは絶対パスで記述するか、コマンド単体をターミナルで実行して動作を確認する
- 末尾カンマ(trailing comma)はJSONでは構文エラーになるため削除する
- 設定ファイルの正確な構造は公式READMEのサンプルをそのままコピーして使うのが最も安全
⑤ ローカル版とリモート版の混同
症状
インストール手順が合っているはずなのに、設定した方法と動作が食い違う。認証フローが予想と異なる。
原因:freee MCPには「ローカルで直接npxを実行する方式」と「リモートMCPとして接続する方式」があり、それぞれ設定ファイルの書き方・認証の流れが異なる。どちらを使うか決めずに両方の手順を混在させると動作しない。
対処:
- まず公式READMEの「Installation」セクションを読み、自分の環境・用途に合った方式を選ぶ
- 一方の設定を試しているときは、もう一方の設定が残らないよう設定ファイルを整理する
- 方式によってリダイレクトURIの設定も変わるため、Developer Consoleの登録内容も合わせて確認する
⑥ 権限不足で特定の API が呼べない
症状
AIエージェントが「このAPIは実行できません」と返答する。エラーログに403や権限エラーが出る。
原因:freeeには事業所内のユーザー権限設定があり、ログインユーザーに「経費承認」「給与確認」「レポート閲覧」などの権限が付与されていない場合、MCPを経由しても同様に拒否される。MCPは認証済みユーザーの権限を引き継ぐため、APIで許可されていない操作は実行できない。
対処:
- freeeの事業所設定でMCPに使うアカウントの権限を確認・修正する(管理者への依頼が必要なケースあり)
- スコープと事業所内権限は別物であることを意識する(スコープはAPIアプリの許可範囲、権限はfreee内のユーザー設定)
- テスト時は管理者権限を持つアカウントで試すと問題の切り分けがしやすい
⑦ 複数アプリ連携時のID取り違え
症状
freee MCP以外のMCPも入れているが、どれがどのアプリか分からなくなった。認証は通るのに取得できる事業所データが想定と違う。
原因:Developer Consoleで複数のアプリを作成・テストしている場合、Client IDやClient Secretが複数存在する。設定ファイルに別アプリのCredentialを使ってしまうと、意図しない事業所・スコープで動いてしまう。
対処:
- Developer Consoleでアプリ名を「freee-mcp-本番」「freee-mcp-テスト」など用途別に明確につける
- 設定ファイル内のClient IDをDeveloper Consoleで照合し、目的のアプリと一致するか確認する
- 環境変数名も衝突しないようアプリ別にプレフィックスをつけるなど管理を整理する
⑧ 本番データでのテスト(サンドボックスを使う)
症状
動作確認のつもりでAPIを呼んだら、本番の取引データが書き換わってしまった。
原因:freeeは本番環境とサンドボックス環境を提供しているが、設定を急いでいると本番環境のCredentialをそのままテストに使ってしまいがち。書き込み系API(取引登録・経費承認など)を本番で誤実行するとデータ復旧が困難になる。
対処:
- 動作確認・開発段階では必ずfreee サンドボックス環境のCredentialを使う
- サンドボックスのClient IDと本番のClient IDは別物のため、設定ファイルを環境別に分けて管理する
- サンドボックスの利用方法はfreee Developer Portalで確認する
重要な注意
AIエージェントによる自動操作は便利な反面、誤ったプロンプト1つで意図しない書き込みが走るリスクがある。本番環境に切り替える前に、サンドボックスで十分な動作検証を行うことを強く推奨する。
それでも動かない時の切り分け手順
8つのポイントを確認しても解決しない場合は、以下の順で切り分けると原因が絞り込みやすい。
- MCPサーバーのログを確認する:Claude CodeやCursorはMCPサーバーのstderr出力をログとして確認できる場合がある。エラーメッセージをそのまま読むのが最短
- コマンドをターミナルで単体実行する:MCPクライアント経由ではなく、ターミナルでMCPサーバー起動コマンドを直接叩いてエラーが出るか確認する
- 公式GitHubのIssueを検索する:github.com/freee/freee-mcp/issuesに同様の症状が報告されていないか確認する
- READMEのセットアップ手順を最初からやり直す:「設定したつもり」の状態を一度リセットし、公式手順の通りに順番通りに実施し直す
デバッグのコツ
問題を「認証フェーズ」「スコープ・権限フェーズ」「API呼び出しフェーズ」の3段階に分けて考えると切り分けやすい。認証が通ってから権限エラーが出るなら①②⑥、そもそもサーバーが起動しないなら③④が怪しい。
よくある質問
Q. freee MCPは無料で使えますか?
freee MCP自体はOSSとして公開されており、GitHubから無償で取得できます。ただしfreeeの利用には別途freeeのサブスクリプション契約が必要です。freeeの料金プランや無料トライアルについてはfreee公式サイトでご確認ください。
Q. Cursor と Claude Code どちらで使えますか?
freee MCPはMCPプロトコルに対応したクライアントであれば利用できます。Claude CodeとCursorはどちらもMCPに対応しており、それぞれの設定ファイルに正しく記述することで動作します。設定ファイルの書き方はクライアントごとに異なるため、各クライアントのドキュメントとfreee MCP公式READMEを合わせて参照してください。
Q. 人事freeeと会計freeeのどちらも操作できますか?
freee MCPは約270のAPIをカバーしており、会計・人事の両方に対応したエンドポイントが含まれています(2026年3月公開時点の情報。最新は公式GitHubで確認)。ただし前述のとおり、使いたい機能に対応するOAuthスコープを必ずONにしてから認証してください。
Q. 設定後にfreeeのアプリ情報を変更した場合、再設定が必要ですか?
Client Secretを再生成した場合や、リダイレクトURIを変更した場合は、設定ファイルの値を更新しアクセストークンを再取得する必要があります。スコープを追加した場合もトークンの再取得が必要です。変更後はまずサンドボックス環境で動作確認してから本番に反映することをお勧めします。
まとめ
まとめ
- ①コピペミス・空白:Credentialの前後空白を取り除く
- ②OAuthスコープ漏れ:使う機能のスコープをConsoleで確認し、トークンを再取得
- ③実行環境不足:Node.jsのバージョンとPATHを確認(公式READMEで要件チェック)
- ④JSON記法ミス:構文チェックツールで確認。公式サンプルをベースに書く
- ⑤ローカル/リモート混同:方式を1つ選んでから設定する
- ⑥権限不足:freee内のユーザー権限がAPIを許可しているか確認
- ⑦ID取り違え:アプリ名を明確にし、Client IDをConsoleで照合
- ⑧本番データ誤操作:必ずサンドボックスで検証してから本番へ
詰まりポイントの9割はこの8つに集約される。一つずつ確認すれば必ず動く。最新の設定手順・コマンド詳細は必ず公式GitHub(freee/freee-mcp)のREADMEで確認すること。










