Claude Media
ClaudeでマネーフォワードのMCPを使い仕訳をチェックする — 指示文とスコープ設計

ClaudeでマネーフォワードのMCPを使い仕訳をチェックする — 指示文とスコープ設計

マネーフォワード クラウド会計のMCPでClaudeに仕訳をチェックさせる手順です。OAuthとAPIキーで権限の決まり方がどう違うか、チェック観点を絞る指示文の書き方とあわせて示します。

仕訳チェックでClaudeに何をさせるか

マネーフォワード クラウド会計とClaudeを接続する基本的な設定はマネーフォワードのMCPをClaudeにつなぐ設定手順で扱いました。接続したあとの課題は、仕訳を実際にどうチェックさせるかです。

仕訳チェックとは、会計データをClaudeに読み込ませ、税区分の誤りや重複登録、放置された仮払金・仮受金といった「あとで経理担当者が困るパターン」を事前に洗い出す作業です。観点を言語化して依頼すれば、月次決算前の確認の下ごしらえをAIに任せられます。承認と修正の実行は人が持つ前提にすると、事故が少なくなります。

このチェックで最初に決めるのは指示文ではなく、どの認証方式で繋ぐかです。チェック専用の接続でも、方式によって「書き込める範囲」の決まり方が変わります。

仕訳チェックで使う会計側のMCP接続先

仕訳チェックで繋ぐのは、クラウド会計用のリモートMCPサーバー(https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3)です。使うには、無料のアプリポータルの利用開始とクラウド会計の契約、ユーザー側への権限付与が前提になります。動作が確認されているクライアントには、Claude Desktop、Claude Code、Claude Cowork、Cursorなどがあり、この記事はClaude Codeで進めます。公式の接続先一覧にはもう1つ、事業者情報用のリモートMCP(/mcp/admin/v2)も載っていますが、この記事の仕訳チェックでは使いません。各サービスのMCPサーバーは順次提供される予定です。MCPサーバー全体の仕組みはマネーフォワードのMCPをClaudeにつなぐ設定手順にあります。

OAuthとAPIキーで、権限の効き方が違う

マネーフォワード クラウドのMCPサーバーは、OAuth 2.0とAPIキーの2方式に対応しています。認証・認可のページでは、2方式を次のように対比しています。

くらべる

認証方式ごとの権限の決まり方

スコープで決まる

OAuth 2.0

認可画面で連携を承認し、アクセストークンを取得します。承認したスコープの範囲で、事業者全体のデータにアクセスします。主な利用シーンは、サーバーやワークフローが実行するAIオートメーションです。

発行ユーザーの権限で決まる

APIキー

アプリポータルで事前に発行したキーを指定します。キーを発行したユーザー自身の権限で扱えるデータだけにアクセスします。主な利用シーンは、ユーザーが対話的に動かすAIチャットやAIエージェントです。

仕訳チェックを担当者が対話で進める使い方は、後者の「ユーザーが対話的に実行するAIチャット」に当たります。この場合、Claudeができる操作の上限は、キーを発行した担当者のマネーフォワード側の権限です。担当者の権限が閲覧中心なら、指示文の書き方を誤っても書き込み系の操作は権限の側で止まる設計にできます。

OAuthで書き込み系のスコープも含めて同意すると、チェックの依頼でも書き込みが可能な状態になります。要求するスコープを絞りたい場合、claude mcp addのオプションにスコープを指定するものはありません(v2.1.287の--helpで確認)。代わりに.mcp.jsonのoauth.scopesで、認可フローで要求するスコープを固定できます。書き方は後述の書き込み系スコープの節にあります。

Claude CodeにAPIキーを登録する

APIキー方式では、Claude Codeから次のコマンドでリモートMCPサーバーを登録できます。接続先URLは接続方法のページに載っているクラウド会計用のURLです。

claude mcp add --scope project --transport http moneyforward \
  https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3 \
  --header "Mf-Api-Key: mf_api_xxxxxxxx"

v2.1.287で、空のホームディレクトリに差し替えた一時フォルダー上で実行した結果は次のとおりです(キーはダミー値)。

実行結果(コンソール)
Added HTTP MCP server moneyforward with URL: https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3 to project config
Headers: {
  "Mf-Api-Key": "[REDACTED]"
}
File modified: <作業フォルダー>/.mcp.json

コンソールではキーが[REDACTED]と伏せられますが、書き出された.mcp.jsonを開くと値はそのまま入っています。

.mcp.jsonの中身
{
  "mcpServers": {
    "moneyforward": {
      "type": "http",
      "url": "https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3",
      "headers": {
        "Mf-Api-Key": "mf_api_xxxxxxxx"
      }
    }
  }
}

.mcp.jsonはプロジェクトのスコープに置くファイルで、チームで共有する設計です。公式のベストプラクティスは、APIキーやトークンをソースコードに書き込まないこと、バージョン管理にコミットしないことを求めています。--scope projectのままだと、キーが共有ファイルに平文で入ります。

対処は2つあります。1つは--scope projectを外すことです。既定のスコープはlocalで、キーはそのプロジェクト内の個人設定に留まります。もう1つは、共有したい場合に.mcp.jsonの値を環境変数の参照に書き換えることです。Claude Codeは.mcp.jsonのurlとheadersで${VAR}の展開に対応しています。

キーを環境変数にした.mcp.json
{
  "mcpServers": {
    "moneyforward": {
      "type": "http",
      "url": "https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3",
      "headers": {
        "Mf-Api-Key": "${MF_API_KEY}"
      }
    }
  }
}

環境変数の名前には注意点があります。リモートサーバーのheadersでは、ANTHROPIC_API_KEYやNPM_TOKENのような認証情報系の名前は、設定済みでも空として読まれます。ドキュメントの例ではAPI_KEYのような名前は書いたとおりに展開されるので、自分で付けた名前(上の例のMF_API_KEY)を使えば足ります。${VAR}の形で書いておくと、claude mcp listとclaude mcp getの出力には展開後の値でなく変数名が表示されます。参照先の変数が未設定でデフォルト値も無い場合、設定は読み込まれますが${MF_API_KEY}という文字列のまま送られ、claude mcp listで警告が出ます。

ヘッダー名は、公式のページによって綴りが違います。接続方法のページはMf-Api-Key、認証・認可のページはMf-API-Keyです。HTTPヘッダー名は大文字小文字を区別しないため、どちらで書いても同じ扱いになります。

なお連携を終えるときは、アプリポータルから連携を解除してトークンを失効させます。アプリポータル上の連携状況と付与権限は、定期的に棚卸しするよう公式が推奨しています。

AIに会計データを渡す前に確認すること

仕訳チェックでは、取得した会計データがClaudeのコンテキストに入り、AIアプリケーションとその提供事業者のサーバーへ送られる場合があります。公式のベストプラクティスは、連携前に次の2点を確認するよう求めています。

  • 利用するAIアプリケーションが取得データをモデルの学習に使うかどうかを、各サービスの利用規約・設定で確認する
  • 給与、個人情報など外部に送信すべきでないデータが混ざっていないか確認する

仕訳データは金額と取引先名が中心ですが、摘要欄に氏名や個人的な事情を書く運用の会社もあります。組織のセキュリティポリシーと照らして、読み込ませる範囲を決めておくと安全です。

書き込み系スコープをどう扱うか

OAuthで接続した場合、権限の単位はスコープです。クラウド会計のMCPサーバーが要求するスコープは、mfc/accounting/で始まるものだけです。トラブルシューティングのページに載っている一覧は12個で、名前から読み取り系と書き込み系に分かれます。

区分スコープ(mfc/accounting/以降)
読み取り系(9個)スコープ(mfc/accounting/以降)offices.read / accounts.read / departments.read / journal.read / report.read / taxes.read / trade_partners.read / connected_account.read / transaction.read
書き込み系(3個)スコープ(mfc/accounting/以降)journal.write / trade_partners.write / transaction.write

チェックだけが目的なら、書き込み系の3つは本来要りません。Claude Codeでは.mcp.jsonのoauth.scopesに、読み取り系の9個をスペース区切りの1つの文字列で書くと、認可フローで要求するスコープを固定できます。

読み取り系だけを要求する.mcp.json(OAuth)
{
  "mcpServers": {
    "moneyforward": {
      "type": "http",
      "url": "https://beta.mcp.developers.biz.moneyforward.com/mcp/ca/v3",
      "oauth": {
        "scopes": "mfc/accounting/offices.read mfc/accounting/accounts.read mfc/accounting/departments.read mfc/accounting/journal.read mfc/accounting/report.read mfc/accounting/taxes.read mfc/accounting/trade_partners.read mfc/accounting/connected_account.read mfc/accounting/transaction.read"
      }
    }
  }
}

oauth.scopesは、サーバーが提示するスコープより優先されます。Claude Codeのドキュメントは、承認済みのスコープだけにMCPサーバーを絞る方法としてこの設定を挙げています。マネーフォワード側のページで個別のスコープ指定が載っているのはCodexの設定例なので、上のJSONはその指定と同じ形に合わせたものです。

固定したうえで、チェック専用の運用は次の4段で重ねます。

  1. oauth.scopesで、書き込み系を除いたスコープだけを要求する
  2. 指示文に「仕訳の修正や削除は実行しない」と明記する(後述)
  3. Claude Codeの権限設定で、書き込み系のツールを「確認」や「拒否」にする。設定方法はClaude Code MCP設定ガイドにまとめています
  4. 可能ならAPIキー方式にして、閲覧権限の担当者のキーで繋ぐ

2と3は、どちらの認証方式でも使えます。

指示文の書き方 — チェック観点を先に絞る

仕訳チェックで結果がぶれる最大の原因は、「今月の仕訳を確認して」のような曖昧な依頼です。何を、どの期間で、どんな基準に照らして見るのかを先に決めると、拾う項目が安定します。

指示文の例
2026年8月に登録された仕訳のうち、次の観点で確認が必要なものを一覧にしてください。
 
- 対象期間: 2026年8月1日〜8月31日
- チェック観点:
  1. 税区分が未設定、または税額の計算が金額と合わない
  2. 同じ取引先・同じ金額の仕訳が重複して登録されている疑い
  3. 「仮払金」「仮受金」勘定のまま1か月以上動きがない
- 出力形式: 仕訳ID・取引先・金額・該当した観点・簡単な理由
- 判断に迷うものは「要確認」として残し、仕訳の修正や削除は実行しない

最後の1行が要です。書き込み系スコープを持つ接続では、確認のつもりの曖昧な指示がそのまま書き換えの実行になりえます。

月次決算前の確認フローに固定する

チェックは1回きりで終わらせず、月次決算の前に必ず通す手順にすると効果が出ます。担当者が変わっても同じ基準で回り、属人化しません。

手順

月末の仕訳チェックの流れ

  1. 1

    対象を固定する

    事業所と期間を依頼の冒頭に書きます。複数事業所がある契約では、「A事業所の8月分」のように書くと、どの事業所のデータを見ているかを利用者が確認でき、取り違えを避けられます。

  2. 2

    観点つきで一覧化させる

    上の指示文の型で、税区分・重複・仮払金と仮受金の滞留を一覧にさせます。修正や削除は実行させません。

  3. 3

    人が元の帳簿と突き合わせる

    Claudeが返した一覧は、抽出された仕訳をエビデンスと照合するまでがチェックです。ここは人の作業として残します。

  4. 4

    修正は人の画面で行う

    直す必要のある仕訳は、担当者が会計画面で修正します。AIに書き込みを任せる場合は、次の節の条件を満たしてからにします。

MCPサーバーが提供するツールは、Claude Codeの/mcpで接続中のサーバーの一覧から確認できます。個別の仕訳とは別の粒度の確認として、「先月と比べて残高が大きく動いた勘定科目を、金額と主な仕訳とあわせて教えて」のような依頼も使えます。

仕訳の作成・修正までAIに任せる場合の条件

書き込み系スコープを許したうえで記帳もAIに任せるなら、公式のベストプラクティスが挙げる2点が前提になります。

1つ目は、破壊的操作の前に人間の確認を挟むことです。MCPサーバーはInstructions(利用上の指示)を通じて、削除や重要な更新の前に確認を促すことがあります。同ページはその前提として、InstructionsをLLMに渡すMCPクライアントを選ぶこと、削除や一括更新のような影響の大きい操作は人間の確認を挟む運用にすることを挙げています。

2つ目は、権限を必要最小限にすることです。アプリポータルで利用者に付与するアプリ連携権限を絞ります。仕訳の作成まで任せる担当者と、閲覧チェックだけで足りる担当者を、同じ権限で扱わない設計です。

freeeの仕訳確認との違い

freee会計にも同種のMCPサーバーがあり、Claudeとfreee会計の連携 — Claude Codeで仕訳・記帳を確認する手順で指示文の書き方を扱っています。観点を先に絞る、書き込み系ツールを都度確認するという考え方は共通ですが、接続方式は異なります。freee-mcpはリモートMCP・ローカルMCPサーバー・Claude Code Pluginの3方式から選びます。両サービスのMCP対応の比較はfreee vsマネーフォワードのMCP対応を比較するにあります。

接続でつまずいたときの切り分け

トラブルシューティングのページが載せている既知の事象のうち、仕訳チェックの接続で当たりやすい3つです。

症状別

接続エラーの3パターン

  • 「人事マスタの権限がありません」と出る

    クラウド会計のみ契約しているのに、人事管理系のスコープを要求されている状態です。MCPクライアント側が不要なスコープを要求しているのが原因で、mfc/accounting/で始まるスコープだけを指定できるクライアントなら解消する場合があります。

  • 接続先URLが公式のものではない

    https://api.biz.moneyforward.com/mcp/sseは提供されていないエンドポイントで、AIアプリケーションの回答から誤って設定される事例が報告されています。設定する前に、接続方法のページに載っているURLと一字ずつ照らします。

  • 認可は通るがDesktopで使えない

    マネーフォワード側のログに異常がなければ、Claude Desktop側の問題の可能性が高いとされています。Webブラウザー版のClaudeで認証し、認可の完了後にDesktopを再起動する手順がページ記載の回避策です。

チェック中にツール呼び出しがエラーで返るときは、APIのレート制限の可能性があります。MCPサーバーは内部でマネーフォワード クラウドのAPIを呼ぶため、制限の影響を受け、サーバー固有の制限が設けられる場合もあります。1回の依頼で扱う期間や件数を絞り、一定時間おいてから再試行します。

よくある質問

freeeとマネーフォワード、両方を同時にチェックさせられますか

Claude Codeは複数のMCPサーバーを同時に登録できます。依頼文にサービス名を書いておくと、どちらのサーバーのツールを使うかを指定できます。

まとめ

チェック専用の接続なら、権限の上限が担当者側で決まるAPIキー方式が扱いやすい選択肢です。OAuthで繋ぐ場合も、要求スコープの固定と指示文・権限設定を重ねれば、書き込みに届く経路を複数の層で塞げます。

この記事を共有:XはてブLinkedIn