HomeMCP / Tooling【実測】freee公式MCPは `FREEE_SCOPE=read` では読み取り専用にならない──AIに会計の「書き込み」を許す前の線引き
【実測】freee公式MCPは `FREEE_SCOPE=read` では読み取り専用にならない──AIに会計の「書き込み」を許す前の線引き

【実測】freee公式MCPは `FREEE_SCOPE=read` では読み取り専用にならない──AIに会計の「書き込み」を許す前の線引きTesting reveals that freee's official MCP server does not enforce read-only…

AI要点サマリSummary highlight

freeeの公式MCPサーバーで `FREEE_SCOPE=read` を設定しても書き込みツールが無効化されないことが実測で判明し、AIに会計データへの書き込みを許可する前にスコープ設定だけに頼れない点を警告している。

Testing reveals that freee's official MCP server does not enforce read-only access when FREEE_SCOPE=read is set, meaning write tools remain available and developers cannot rely solely on that env var to prevent AI from modifying accounting data.

要約と収集メタデータをもとに生成した AI 解説本文です。元記事全文の転載・翻訳ではありません。This AI explainer is generated from the summaries and collected metadata, not from a reproduction or translation of the full source article.

AIに会計データを直接つなぐ仕組みが実用段階に入るなか、クラウド会計サービスを手がけるfreeeが提供する公式MCPサーバーで、読み取り専用を意図した設定が期待どおりに機能しないことが実測で示された。環境変数 FREEE_SCOPE=read を指定しても書き込み系のツールが無効化されず、AIから会計データを変更できる状態が残るという指摘だ。

MCP(Model Context Protocol)は、AIアシスタントと外部のデータやツールを橋渡しする仕組みで、対応サーバーを介せば「先月の売上を教えて」といった問い合わせから、請求書の作成のような操作までをAIに委ねられる。freeeは日本市場で公式のMCPサーバーを公開しており、会計プラットフォームとAIの直結は2026年に一段と現実味を帯びている。海外でも会計系プラットフォームが同様の動きを見せているとされる。

今回問題視されているのは、スコープ設定と実際の権限制御のずれだ。FREEE_SCOPE=read は名称からは読み取り専用を連想させるが、実測ではこの値を設定しても書き込み用のツールがクライアント側に提示され続け、AIが会計データへ書き込める余地が残ったという。つまり、この環境変数だけを頼りに「AIには閲覧しかさせていない」と考えるのは危ういと言える。

会計データは請求書の発行や仕訳の登録など、誤った書き込みが実害に直結しやすい領域だ。AIが自律的に操作を組み立てる場面では、意図しない指示や誤解釈によって、本来避けたい変更が実行されるリスクもある。読み取りと書き込みの線引きは、単なる利便性ではなく統制の問題として扱う必要がある。

対策としては、スコープ設定を過信せず、freee側で付与する権限そのものを読み取りに限定する、書き込みを伴う操作には人による承認を挟むといった多層的な備えが現実的だろう。AIに会計の「書き込み」を許すかどうかは、便利さと引き換えに何を差し出すのかを見極める線引きの問題であり、導入前に実際の挙動を自分の環境で確認する姿勢が求められる。

The Model Context Protocol (MCP) has made it practical to wire AI assistants directly into sensitive business systems, and accounting data is now squarely part of that trend. In Japan, freee has shipped an official MCP server that lets users interrogate their books in natural language. But hands-on testing has surfaced an important caveat: setting the environment variable FREEE_SCOPE=read does not, by itself, make the server read-only. Write-capable tools remain exposed to the connected model, which means developers should not treat that single setting as a hard safety boundary before letting an AI touch their accounting records.

The appeal of this integration is easy to understand. Asking an assistant "what were last month's sales?" is a low-risk, high-value query that few people would object to. The calculus changes when the same assistant is told to "go ahead and create that invoice." During 2026, the plumbing that bridges that gap moved quickly from experiment toward production use. freee's release positions it alongside a broader wave in which accounting platforms, in Japan and overseas, are exposing their APIs to large language models through MCP.

To understand the finding, it helps to know how MCP works. An MCP server advertises a set of "tools" that a connected model may invoke, and each tool usually maps to an underlying API operation—retrieving a ledger, listing invoices, or creating a transaction. In principle, a scope such as read should limit the exposed tools to those that only retrieve data. The reported testing indicates that freee's server continues to register and expose write tools even when FREEE_SCOPE=read is configured. In other words, the model can still "see" and attempt to call operations that modify data, regardless of what the variable name implies.

Why does that gap appear? The likely explanation is that the environment variable governs which OAuth scope the server requests when it authenticates, rather than filtering the list of tools handed to the model. freee's public API uses OAuth-based scopes, so practical enforcement of read-only behavior is likely to depend on the permissions actually granted to the access token, not on a client-side environment flag. If a token carries write permission, a write tool call may still succeed even when the server was started with a read setting. This is a distinction between what the interface presents and what the backend ultimately authorizes, and it appears to be the crux of the issue.

The security implications are worth taking seriously. A model that can see write tools may call one—either through a genuine misinterpretation of a user's request or through prompt injection, where malicious text hidden in a document or email nudges the assistant into taking an unintended

  • 出典SourceQiita MCPコミュニティCommunity
  • 直近30件の平均重要度Avg importance, last 301=Info · 2=Medium · 3=High
  • 配信形式FormatブログBlog
  • 重要度Importance重要度 MediumMedium priority(MCP / Tooling 116件中、同等以上 116件)(116 of 116 MCP / Tooling entries are equal or higher)
  • 情報の寿命Half-life📘 中期 (チュートリアル)Medium-term (tutorial)
  • 原文言語Source languageJA
  • 収集日時Collected2026/08/02 06:41

本ページの本文と要約は AI による自動生成です。日本語版と英語版は言語ごとに独立して生成されるため、表現や詳しさが異なる場合があります。正確性は元記事 (qiita.com) をご確認ください。The body and summaries are AI-generated independently for each language, so wording and detail may differ. Verify accuracy at the original source (qiita.com).

🔗MCP / Tooling の他の記事More from MCP / Toolingもっと見る →View more →