← ブログに戻る

生成AIと個人情報: MCPで崩れた5つの思い込み

『MCP実践セキュリティ』を読んでくださった ShiJun さん(@Shijun_537)から、こんな指摘をいただきました。会計データや顧客データを MCP 経由で AI に渡すなら、MCP サーバーの安全性だけでなく、AI サービス側の契約と個人データの扱いが問題になるはずだ、というものです。挙がっていた論点は4つでした。

  1. 契約の種類(API・法人プランか、個人向けプランか)
  2. DPA と、入力データが学習に使われるか
  3. 個人データの通知・同意と、海外への移転
  4. 第三者 MCP サーバーの規約

本は、この4つを扱っていません。第3章で freee の MCP サーバーを使ったときは、「私自身の freee アカウント」「OAuth で同意したスコープの範囲」「freee 公式の連携枠」という3つの条件を置きました。どれも freee 側との関係の話で、その先にある AI サービスとの契約には触れていません。自分の帳簿を自分で触るぶんには、それで足ります。お客さんのデータが入ったとたん、足りなくなります。

この記事はその補足です。まず、MCP で取ってきたデータが実際にどこまで AI サービスに送られるのかを測りました。そのうえで、よく聞く思い込みを5つ取り上げ、3社の規約と日本の個人情報保護法の原文に照らしました。5つとも、原文では成り立ちませんでした。

「合計だけ」と頼んだのに、担当者のメールアドレスまでAPIに送られた

最初に、データがどこまで流れるかを確かめました。机の上の議論だけだと、ここがぼやけるからです。

架空の取引を2件返すだけの MCP サーバーを作りました。1件目はこういうデータです。

項目値
取引先株式会社サンプル商事(架空)
担当者山田 花子(架空)
メールhanako.yamada@example.com
金額8,500円
摘要12月 電気代

これを Claude Code につなぎ、Claude Code と Anthropic API のあいだにリクエストの中身を記録するプロキシを置きました。認証は API キー、モデルは Claude Haiku 4.5 です。

Claude Code ──> ログ用プロキシ ──> api.anthropic.com
     │
     └── stdio ── ダミーの freee MCP サーバー(取引2件を返す)

頼んだのは「freeeから2026年12月の取引一覧を取ってきて、合計金額だけ教えて」です。

返ってきた答えは「合計は 140,500円」と、日付・金額・摘要の内訳でした。担当者の名前もメールアドレスも、答えには出てきません。

ところが、API に送られたリクエストは違いました。往復は2回で、2回目のリクエストの messages に、ツールの結果がこう入っていました。

{
  "type": "tool_result",
  "content": "{\"result\":\"[{\\\"id\\\": 1, \\\"date\\\": \\\"2026-12-05\\\", \\\"partner\\\": \\\"株式会社サンプル商事(架空)\\\", \\\"contact\\\": \\\"山田 花子(架空)\\\", \\\"contact_email\\\": \\\"hanako.yamada@example.com\\\", \\\"amount\\\": 8500, ...}, {...}]\"}",
  "cache_control": { "type": "ephemeral" }
}

取引先名、担当者名、メールアドレス、金額、勘定科目、摘要。ツールが返したものは、全部そのまま送られていました。 「合計だけ」という頼み方は、モデルが答えに何を書くかを変えるだけで、モデルに何を見せるかは変えません。何を見せるかを決めるのは、MCP サーバーが返す中身です。

ここから先は、山田花子さんのメールアドレスが AI サービスに届いたあと、どの契約がそれを扱うのかという話になります。思い込みを1つずつ外していきます。

思い込み1「有料プランなら学習に使われない」

原文では成り立ちません。 3社とも、規約が個人向けと事業者向けの2本立てで、学習に使われるかどうかを分けているのはこの区分です。料金の有無は関係しません。

個人向け(標準で学習に使われる)事業者向け(標準で学習に使われない)
AnthropicClaude Free / Pro / Max(Consumer Terms)API・Team・Enterprise(Commercial Terms)
OpenAIChatGPT Free / Plus / Pro(Terms of Use)API・ChatGPT Business / Enterprise(Services Agreement)
GoogleGemini アプリ、Gemini API の無料枠、Gemini Code Assist 個人向けVertex AI、Workspace、Gemini API の有料枠、Code Assist Standard / Enterprise

OpenAI の説明ページはこう書いています。

ChatGPT, for instance, improves by further training on the conversations people have with it, unless you opt out.

By default, we do not train on any inputs or outputs from our products for business users, including ChatGPT Team, ChatGPT Enterprise, and the API.

学習に使わないと約束しているのは、事業者向けの製品です。月額を払っている Plus や Pro も個人向けなので、オプトアウトしていなければ学習の対象です。実は、私自身の調査メモにも最初は「有料なら学習されない」と書いてありました。原文に当たって直しました。

ほかの2社も同じ形です。

  • Anthropic の事業者向け規約は “Anthropic may not train models on Customer Content from Services.” です。個人向け規約では、入力を “training our models” に使うとしたうえで “unless you opt out of training through your account settings” とあります。オプトアウトしていても、フィードバックを送った場合と、安全性レビューの対象になった場合は例外です
  • Google は、Gemini API の規約自体が Unpaid Services と Paid Services に分かれています。無料枠では送った内容を “to provide, improve, and develop Google products and services and machine learning technologies” に使い、人間のレビュアーが読むこともあるとしたうえで、“Do not submit sensitive, confidential, or personal information to the Unpaid Services.” と書いています。Gemini アプリの有料プラン(Google AI Pro / Ultra)も、Gemini CLI の規約ページでは Google One の追加規約の側に整理されていて、Workspace などとは別の枠です

コーディングエージェントは「何でログインしたか」で決まる

MCP を一番よく使うのは、コーディングエージェントだと思います。

  • Claude Code のデータ利用ページは、Team / Enterprise / API / 3rd-party platforms を事業者向け(Commercial users)としています。Pro / Max でログインした Claude Code は、個人向け規約の側です。保持期間も、学習を許可していれば5年、許可していなければ30日です
  • Gemini CLI は、ログイン方法が4種類あり、それぞれ別の規約がかかると明記しています(個人の Google アカウント、Gemini API キーの無料枠、有料枠、Vertex AI)。個人アカウントでログインすると、Gemini Code Assist 個人向けのプライバシー通知が適用されます

さっきの実験は API キーで動かしたので、事業者向け規約の側です。Pro / Max のログインでは測っていませんが、ツールの結果をモデルに渡す仕組みはログインの方法に関係なく同じです。変わるのは、山田花子さんのメールアドレスにかかる契約のほうです。

思い込み2「DPAは営業と別に結ぶもの」

DPA(Data Processing Addendum、データ処理契約)は、AI サービスが顧客の個人データを「処理者」として扱うと約束する付属契約です。大企業が営業担当と交渉して結ぶもの、という印象があるかもしれません。

Anthropic と OpenAI は、事業者向け規約に最初から組み込んでいます。

DPA の付き方標準の保持
Anthropic事業者向け規約に参照で組み込み。個別の署名は不要API の入出力は30日以内に削除
OpenAIServices Agreement に参照で組み込み(Section 5.3)。クリックや利用開始で同意不正利用監視のログが最長30日
GoogleCloud Data Processing Addendum(CDPA)Vertex AI のキャッシュは24時間以内に削除

Anthropic の事業者向け規約は “Data submitted through the Services will be processed in accordance with the Anthropic Data Processing Addendum (“DPA”), which is incorporated into these Terms by reference.” と書いています。OpenAI の DPA も “By clicking “I agree,” accepting the Order Form, or using the Services, Customer agrees to this Agreement.” です。

裏を返すと、個人向けプランには DPA がありません。 Anthropic の DPA は事業者向け規約に組み込まれるもので、Claude.ai の個人向け利用は対象外です。顧客の個人データを扱う予定があるなら、この時点で個人向けプランは候補から外れます。

思い込み3「ZDRを契約すれば全部消える」

ZDR(Zero Data Retention)は、サーバー側に入出力を残さない契約です。これを結べば安心、と考えたくなります。

ZDR は機能ごとに対象かどうかが決まっていて、MCP まわりに穴があります。 Anthropic の MCP connector(Messages API からリモート MCP サーバーに直接つなぐ機能)は、ドキュメント上 ZDR の対象外(zdr: not-eligible)です。OpenAI も、/v1/responses や /v1/chat/completions は ZDR の対象で /v1/assistants などは対象外、と表で分けています。

対象の機能でも、全部が消えるわけでもありません。Anthropic は、ZDR の契約下でも利用規約違反を検知するための安全性の分類結果は保持すると書いています。ZDR がない場合、違反の疑いでフラグが立った会話は、入出力を最長2年、分類スコアを最長7年保持します。

「学習に使わない」「保存しない」「消える」は、規約の上ではそれぞれ別の約束です。どれが自分の使う機能にかかっているかを、1つずつ確認する必要があります。

思い込み4「委託なら、海外の事業者でも本人の同意は要らない」

ここからは日本の個人情報保護法です。山田花子さんが日本の顧客なら、メールアドレスは個人データです。

学習に使われるなら、委託の枠に収まらない

国内なら、個人データを外部に預けるときは27条5項1号の「委託」で整理するのが一般的です。利用目的の範囲内で取扱いを委託するなら、受け取る側は第三者に当たらず、本人の同意は要りません(そのかわり25条で委託先を監督する義務がかかります)。

ただ、渡したデータが学習に使われると話が変わります。個人情報保護委員会は2023年6月2日の注意喚起でこう書いています。

個人情報取扱事業者が、あらかじめ本人の同意を得ることなく生成 AI サービスに個人データを含むプロンプトを入力し、当該個人データが当該プロンプトに対する応答結果の出力以外の目的で取り扱われる場合、当該個人情報取扱事業者は個人情報保護法の規定に違反することとなる可能性がある。そのため、このようなプロンプトの入力を行う場合には、当該生成 AI サービスを提供する事業者が、当該個人データを機械学習に利用しないこと等を十分に確認すること。

実験の tool_result は、MCP 経由で取ってきたデータがそのままプロンプトの一部になることを示しています。思い込み1の「個人向けか事業者向けか」は、ここで法律の話につながります。

外国の事業者には、28条が別にかかる

3社とも米国の会社です。28条は、外国にある第三者に個人データを提供するときは「あらかじめ外国にある第三者への提供を認める旨の本人の同意を得なければならない」と定めています。

条文で見落としやすいのは例外の書き方です。28条1項は「前条第一項各号に掲げる場合を除くほか」としたうえで、「この場合においては、同条の規定は、適用しない」と書いています。除かれるのは27条1項の各号(法令に基づく場合など)だけで、27条5項の委託は入っていません。国内なら委託で整理できる提供でも、相手が外国の事業者なら、それだけでは28条の同意を省けません。

本人の同意が要らなくなるのは、主に次の2つの場合です。

  • 移転先の国が、日本と同等の水準にあると個人情報保護委員会規則で指定されている場合
  • 移転先が、日本の事業者と同じ水準の措置を続けて講じる体制(規則16条の基準に合う体制)を整えている場合

後者について、個人情報保護委員会の「外国にある第三者への提供編」ガイドラインは、外国の事業者に取扱いを委託するときの方法として「提供元及び提供先間の契約、確認書、覚書等」を例に挙げています。思い込み2の DPA が、ここで効いてきます。ただし、ある DPA がこの基準を満たすかどうかは条項を読み込んで判断する話なので、この記事では判断しません。なお、この体制で提供した場合も、28条3項で、相手の措置が続いているかを確認し、本人に求められたら情報を出す義務が残ります。

「クラウドの例外」がAIにそのまま当てはまるとは限らない

個人情報保護委員会の Q&A(Q7-53、Q12-3)には、クラウド事業者が「契約条項によって当該外部事業者がサーバに保存された個人データを取り扱わない旨が定められており、適切にアクセス制御を行っている場合」は、そもそも提供に当たらないという整理があります。

ただ、実験で見たとおり、生成 AI はプロンプトの中身を読んで応答を作ります。データをサーバーに置いておくだけのストレージとは性質が違います。この例外に当たるかは契約の書き方と実際の処理を見て判断することになるので、「クラウドだから例外」と決めつけないほうが安全です。

例外に当たる場合でも、責任はなくなりません。Q6-22 は、漏えいが起きたときに個人情報保護委員会へ報告する義務は、クラウドを使う側の事業者にあるとしています。

保存場所は選べても、処理の場所は別

保存場所
Anthropicサポート記事では “Data is stored in the US.”。処理のためのトラフィックは、米国・欧州・アジア・オーストラリアの国々にルーティングされうる
OpenAI対象顧客は、日本を含む10地域から保存先(at rest)を選べる。推論を地域内で行うオプションは米国・欧州(EEA + スイス)・UAEのみ(UAEは利用できるモデルに制限あり)。日本は保存先には選べるが、推論の地域指定には入っていない
GoogleVertex AI はリージョンを指定でき、キャッシュは指定したロケーションにとどまる。Gemini API の有料枠は、Google の施設がある国で一時保存・キャッシュされうる

保存先を日本にできても、推論をどこで行うかは別です。越境移転を考えるときは、「保存」と「処理」を分けて確認してください。

思い込み5「公式のMCPサーバーなら安心」

MCP サーバーが公式なら、データの扱いも安心だと思いたくなります。でも、実験で山田花子さんのメールアドレスを API に送ったのは、ホストの Claude Code です。MCP サーバーは結果を返しただけです。MCP サーバーが公式かどうかは、AI サービス側の規約には関係しません。

freee 自身も、MCP のページに「ご利用には別途生成AIサービスが必要です」と書いています。freee-mcp はデータを橋渡しする部分で、AI 側の処理は利用者が選んだ AI サービスの規約に従う、という構成です。

第三者のサーバーを挟むと、契約がもう1つ増える

AI サービス各社は、MCP サーバーの規約は自分たちの規約と別だと、はっきり線を引いています。

  • OpenAI の MCP ドキュメントは “custom MCP servers are not developed or verified by OpenAI, and are third-party services that are subject to their own terms and conditions.” と書き、さらに “Any MCP server may receive sensitive data as part of querying” と注意しています。Services Agreement(Section 3.4)でも、第三者のサービスにアクセスした時点でその規約に同意することになる、としています
  • ChatGPT のコネクターの説明も、アプリに渡したデータは “handled according to each app’s terms of service and privacy policies” だとしています
  • Anthropic の事業者向け規約は、第三者の機能は “not Services” であり、Anthropic は責任を負わないとしています。ディレクトリに載せるソフトウェアにはプライバシーポリシーへのリンクを求めていますが、これは掲載の条件で、第三者サーバーのデータの扱いを保証するものではありません

MCP で会計データを流すとき、関係する契約は少なくとも3つあります。データの持ち主のサービス(freee など)、MCP サーバーの運営者、AI サービスです。公式の MCP サーバーなら前の2つは同じ会社ですが、有志が作ったサーバーやプロキシを挟むと、運営者がもう1社増えます。freee の Remote MCP(https://mcp.freee.co.jp/mcp)の README にある「freee 公式以外の URL を入力しないようにご注意ください」という注意は、この1社を増やさないためのものです。

同じ会社の中でも、規約は製品ごとに分かれています。freee には「AIに関する利用規約」があり、入力を機械学習に使うことへの承認が書かれていますが、第1条で対象は「freeeホームページ」の AI 製品・機能に限られています。freee 会計や freee-mcp にかかる規約ではありません。

MCP仕様の「同意」は、取引先の同意ではない

MCP の仕様(2026-07-28 版)は “Hosts must obtain explicit user consent before exposing user data to servers” と書いています。ただ、同じページに “While MCP itself cannot enforce these security principles at the protocol level” ともあり、同意の仕組みを守るのはホストやクライアントの実装です。

そして、仕様が言う「ユーザー」は MCP を操作している人です。実験でいえば、取引一覧を頼んだ私です。山田花子さんは、この同意に関わりません。思い込み4で見た個人情報保護法上の本人の同意とは別物です。

導入前の確認リスト

ここまでの内容を、導入前に確認する項目にしました。

#確認すること見る資料
1AI サービスへのログインは、個人向けプランか事業者向けプランか(ツールごとに)各ツールのデータ利用ページ
2事業者向け規約に「学習に使わない」が書いてあるか。オプトインしていないかCommercial Terms / Services Agreement / Gemini API Paid Terms
3DPA が組み込まれているか。締結の形(自動・クリック・署名)各社 DPA
4標準の保持期間と、違反時の延長保持の期間データ保持のページ
5ZDR が必要か。使う機能(MCP connector、Responses API など)が ZDR の対象かZDR のページ、機能のドキュメント
6データの保存場所と推論の場所。日本を選べるかデータレジデンシーのページ
7顧客の個人データを入れるか。入れるなら28条の同意・体制のどちらで整理するか個人情報保護法28条、外国提供編ガイドライン
8委託先(AI サービス)の監督と、漏えい時の報告の段取り25条、Q6-22
9MCP サーバーの運営者は誰か。公式か、第三者かMCP サーバーのリポジトリ・配布元
10MCP サーバーの規約とプライバシーポリシー。データを保存するか運営者の規約
11MCP の権限は最小か。読み取りだけで済む作業に書き込み系のツールや権限を渡していないか本の第9章(allowedTools)、OAuth の設定
12ツールが返すフィールドは最小か。答えに要らない個人情報(担当者名・メール)まで返していないかMCP サーバーの実装、本の第10章

1〜6 は AI サービスとの契約、7〜8 は日本の法律、9〜12 は MCP 側の設計です。

12 は実験から足した項目です。契約を全部固めても、送るデータそのものを減らす手は MCP サーバー側にしかありません。合計を出すだけなら、ツールが金額だけを返せば、山田花子さんのメールアドレスはどの契約にも乗りません。

この記事で言えないこと

  • 実験は1回、1ホスト(Claude Code)、1モデルの記録です。 ChatGPT や Gemini CLI では測っていません。モデルがツールの結果を読んで答えを作る仕組みは共通なので、ほかのホストでも結果は送られると私は見ていますが、確かめてはいません
  • サーバー側でどう保持されるかは、実験からは見えません。 そこは規約に書いてあることを信じるしかない部分です
  • 特定の DPA が28条の「基準に適合する体制」を満たすかは判断していません。条項の読み込みが必要な、専門家の領域です
  • Google の規約・ドキュメントには MCP という語が出てきません。 Vertex AI や Gemini API の規約が MCP 経由の利用にもそのまま当てはまると私は読んでいますが、Google が明言しているわけではありません
  • freee API の利用規約の本文には、今回の調査では開発者サイトからたどり着けませんでした。freee-mcp 経由で取得したデータの扱いについて freee 側の規約に何が書いてあるかは、freee に確認する項目として残しています
  • 規約は変わります。この記事の内容は 2026-10-23 時点のものです

本書との関係

本は「MCP サーバーとその周辺をどう守るか」の本で、この記事は「その外側の契約をどう確認するか」の補足です。あわせて読むなら、次の章が近いです。

  • 第3章:freee の MCP サーバーで確定申告を自動化した実体験。ここで置いた「自分のアカウント・同意済みスコープ・公式の連携枠」という条件の外側を、この記事で補いました
  • 第10章:人間の承認ゲート、監査、MCP サーバーのインベントリ管理。確認リストの 9〜12 を実装する話です

ShiJun さん、大事な抜けを指摘していただき、ありがとうございました。おかげで、規約を読むだけでなく、データの流れを実際に測るところまで進められました。

References

すべて 2026-10-23 に確認しました。

Anthropic

OpenAI

Google

日本の法令・個人情報保護委員会

MCP

MCP実践セキュリティ 関連書籍 MCP実践セキュリティ MCP セキュリティの実践書 | OWASP MCP Top 10・攻撃の実演・認証認可・本番ワークアラウンド 書籍ページを見る →