概要
会計ソフト「freee」から公式MCPが登場したので、これで請求書の確認・メール送信や会計業務を楽にしようと設定・利用方法をまとめた備忘録。
公式記事によると、freee 所属のエンジニアが個人的にOSSとして開発したものを、会社が公式OSSとして引き継いだものとのこと。
「確定申告」を全自動化することも考えましたが、現状では「支援する使い方で、いつもより楽にする」が、個人的に最適な印象です。
前提
- 筆者のマシン(PC)は macOS です
- マシンに Node.js が導入済みであること
- 事前に freee のアカウント(事業所設定含む)を用意していること
- freee 開発者アカウントを作って、テスト用のダミー事業所を用意・利用してもOK
- 今回は、Claude Desktop アプリから利用することをゴールとする
- Claude Code での設定も、合わせて簡単に記載
- 実際に、過去の実績を元に請求書の送付を試してみるまでを実施
手順
1. freee 側でアプリ登録
freeeアプリストアにアクセス
ページ内の「今すぐアプリを作成」をクリック
アプリ作成画面が現れるので、以下を参考に基本設定を入力
- アプリ名:任意(
freee MCPなど) - 概要:任意(
MCP利用のためのアプリなど) - アプリタイプ:非公開で良いので「プライベートアプリ」を選択
「作成」ボタンを押すと、未ログインの場合は「ログイン」「事業所選択」を求められるので、ログインしてアカウントを選択する。
認証も作成も成功すると、作成したアプリ詳細ページが表示される。
ここで、「コールバックURL」には、http://127.0.0.1:54321/callback を設定しておくこと(公式リポジトリの README.md に記載されている)。
画面内の「Client ID」「Client Secret」を後で設定に利用するので控えておく(ただし、機密情報なので外部に漏れないように注意すること)。
「権限設定」タブを選択し、どこまでMCPでできる様にするかを設定する。
一覧表にある「参照」「更新」は、いわゆる Read / Write 権限 と思えばよい。
基本的に任意なので全部チェックしても良いが、必要なものだけに絞った方が良い(私は「会計」と「請求書」関連を使うので、そちらの参照と一部の更新をチェックした)。
選択したら「下書き保存」をクリック。
「え、下書き保存でいいの?」 と、ちょっとわかりにくいが、今回は 「プライペートアプリ(非公開)」 なので、これで保存としては完了になる。
2. freee-mcp のインストールと認証
GitHub をクローンして特定ファイルを node コマンドで実行する方法もあるが、より簡単な方法として npm インストール方式を採用する。
ターミナルを起動して、npm で公式パッケージをグローバルインストール
npm i -g freee-mcp
続けて、初期設定・認証をするコマンドを実行
freee-mcp configure
コマンドを実行すると、以下の様に対話式ウィザードが始まるので、質問されたことに回答していく。
=== freee-mcp Configuration Setup ===
このウィザードでは、freee-mcpの設定と認証を対話式で行います。
freee OAuth認証情報が必要です。
ステップ 1/3: OAuth認証情報の入力
freee アプリのコールバックURLには http://127.0.0.1:54321/callback を設定してください。
? FREEE_CLIENT_ID: › # 👈 先ほど控えた情報を貼り付ける
? FREEE_CLIENT_SECRET: › # 👈 先ほど控えた情報を貼り付ける
? コールバックポート (コールバックURL: http://127.0.0.1:<port>/callback): › 54321 👈 デフォルトで良いのでそのまま Enter キー
認証情報を受け取りました。
ステップ 2/3: OAuth認証
ブラウザで認証ページを開きます...
📦 古い設定形式を検出しました。新しい形式に移行します...
Warning: 環境変数での認証情報設定は非推奨です。
`freee-mcp configure` を実行して設定ファイルに移行してください。
環境変数設定は将来のバージョンで削除される予定です。
OAuth callback server listening on http://127.0.0.1:54321 (callback URL: http://127.0.0.1:54321/callback)
認証URL: https://accounts.secure.freee.co.jp/public_api/authorize?response_type=code&client_id=***&redirect_uri=http%3A%2F%2F127.0.0.1%3A54321%2Fcallback&scope=read+write&state=***&code_challenge=***&code_challenge_method=S256
ブラウザで認証を完了してください...
認証が完了すると自動的に次のステップに進みます。
上記のように2ステップ完了すると、自動で Web ブラウザが開き、承認を求められるので、画面最下部の「許可する」をクリックして認証を完了する。
認証が完了すると、以下の様に事業所選択を確認されるので、デフォルトとなる事業所を選択して Enter キーで確定する。
Callback request: GET /callback?code=***
Callback received - URL: http://127.0.0.1:54321/callback?code=***
Callback parameters: {
code: '***...',
state: '***...',
error: null,
errorDescription: null
}
Pending authentications count: 0
Valid CLI callback received
認証コードを受け取りました。
トークンを取得中...
Callback request: GET /favicon.ico
[info] Creating directory: /Users/***/.config/freee-mcp
[info] Writing tokens to: /Users/***/.config/freee-mcp/tokens.json
[info] Tokens saved successfully
トークンを取得しました。
ステップ 3/3: デフォルト事業所の選択
事業所一覧を取得中...
? デフォルトの事業所を選択してください: › - Use arrow-keys. Return to submit.
❯ {事業所名} (ID: ********) - admin # 👈 Enter キーを押す
# 👇 選択すると
{事業所名} を選択しました。
設定情報を保存しました。
認証情報は ~/.config/freee-mcp/config.json に保存されました。
トークンは ~/.config/freee-mcp/tokens.json に保存されました。
最後に MCP 設定を自動で行うか確認される(Claude Code / Claude Desktop がある場合)
=== MCP設定 ===
Claude Code / Claude Desktop に freee-mcp を設定できます。
# 👇 以下の様に聞かれるので、そのまま Enter キーを押せば良い
? Claude Code に freee-mcp を追加しますか? › (Y/n)
? Claude Desktop に freee-mcp を追加しますか? › (Y/n)
# 👇 設定完了すると
✔ Claude Code に freee-mcp を追加しますか? … yes
✓ Claude Code に freee-mcp を追加しました。
設定ファイル: /Users/***/.claude.json
✔ Claude Desktop に freee-mcp を追加しますか? … yes
✓ Claude Desktop に freee-mcp を追加しました。
設定ファイル: /Users/***/Library/Application Support/Claude/claude_desktop_config.json
# Windows の場合: %APPDATA%\Claude\claude_desktop_config.json
=== Skill (API リファレンス) のインストール ===
MCP サーバーと合わせて Skill をインストールすると、API リファレンスが利用可能になります。
[Claude Code]
以下のコマンドで freee API スキルをインストールできます:
npx add-skill freee/freee-mcp
[Claude Desktop]
1. 以下の URL から freee-skill.zip をダウンロード:
https://github.com/freee/freee-mcp/releases/latest
2. Claude Desktop でスキルをアップロード:
Settings > Features > Skills > 「Upload skill」から zip ファイルを選択
セットアップ完了!
変更を反映するには、Claude Code / Claude Desktop を再起動してください。
OAuth callback server stopped
上記でインストールと認証は完了です。
尚、実際に保存された内容は以下で確認可能。
# 確認コマンド
$ cat ~/.config/freee-mcp/config.json
# 実行結果
{
"clientId": "***", # 発行された ID
"clientSecret": "***", # 発行されたシークレット
"callbackPort": 54321,
"defaultCompanyId": "*****", # 選択した事業所 ID
"currentCompanyId": "*****", # 選択した事業所 ID
"companies": {
"*****": {
"id": "*****",
"name": "{事業所名}",
"description": "Role: admin",
"addedAt": 1772502617470,
"lastUsed": 1772502617470
}
}
}
事前にマシンの Claude Code, Claude Desktop を導入していたため、MCP追加設定まで自動で反映された 🙌
もし、MCP設定まで自動で反映されなかった場合は、一般的な手順で MCP を追加する必要がある。
3. freee MCP の Skill を導入(任意だが推奨)
ここまででもう MCP として freee を利用可能ですが、Skill も公式に用意されているので導入することを推奨する。
Claude Desktop の場合
先ほどのウィザードにも表示されているが、再掲。
以下の URL から freee-skill.zip というファイルをダウンロードする。
Claude Desktop を起動し、サイドメニューの「カスタマイズ」を選択。
「スキル」を選択し、+ボタン(虫メガネの隣にあるアイコン)をクリックして、先ほどの zip ファイルをそのままアップロードする。
導入に成功すると、以下の様に MCP の Skill が表示される。
以上で、設定は完了👏
Claude Code の場合
以下のコマンドを実行して Skill もグローバルに導入する
npx add-skill freee/freee-mcp
- AI エージェントを選択する様に促されるが、Claude Code を最低限選んでおけばOK
- Installation scope(インストール範囲)は Global(グローバル)でもOK
- そのほかの選択肢は全てデフォルト Yes でもOK
- 気になる人は1つずつ調べて、しっかり選択すること
使い方
今回は Claude Desktop で操作するが、Claude Code でもほぼ同様となる。
設定完了後の場合、念のためにアプリ・ツールを再起動しておくことを推奨する。
私は有料プランのため "Cowork" モードを使用するが、無料でも使える通常の「チャット」でも問題ない。
まずは認証を確認してみる
MCPが正常に動くかのごく簡単なチェックとして freee の認証状態を確認してみよう。
プロンプト: freee の認証状態を確認して
認証コマンドを実行しようとするが、初回なのでユーザーの許可が必要。「常に許可」をクリックすれば、以降は自動で確認してくれる(常に許可するかは、各個人の判断で決めること)。
認証が有効であることを MCP を通して確認できた。もし認証が切れたら、「再認証して」 と言えば良い。
先月の請求書を確認してみる
ちょうど先月、フリーランスとしてちょっとだけ軽量な案件を受けて稼働したので、その請求書を参照させてみる。
プロンプト: freee で先月送った請求書の内容を教えて
取ってこれた🙌
新しい請求書を送ってみる
今月も稼働した時間があるので、請求書を作らせてみる。
プロンプト: 株式会社***に今月分として同様に請求書を送りたい。請求内容の明細に稼働時間を記載していたと思うので、今月は80時間として請求したい。
請求内容を報告してきた。うむ、合っている。計算も間違っていないぞ。
柔軟に必要な確認もしてくれる。期日タイミングはちょっと変則的なので、カスタム指示で回答。
請求メールまで送るか、その手前でストップするかも確認してくれる。よきかな。
いつもは freee の請求書用メール機能で送っているが、それも自動化できるか試してみたかったので、今回は 「作成して送付まで行う」 を選択してみた。
結果、そもそも「メール送信API」エンドポイントが無かったようなので、請求書作成までが自動化となった。エンドポイントは将来増える可能性があるので、そこが追加されたら全自動化できることを期待する🥸
今回は、プロンプトを投げてから1通の請求業務完了までに 6分 ほどかかった(想定よりも時間がかかった)。
尚、途中で何度が許可を求められたので、初回はこれを許可するのを忘れるといつまでも終わらないため注意。
しかし、一度承認を含めて請求実績を作れば、あとは 「同様に今月分もよろしく〜」 で少しチェックだけすれば良いのでかなり楽だ 🙌✨✨
freee MCP を使った実例が誰かの参考になれば幸いです!














