公開日:
MCPセキュリティは、接続先、権限、実行の3層を10項目で統制すると事故の影響範囲を抑えられます。
- 要点1: 信頼できるMCPサーバーだけを許可し、バージョンと配布元を固定する
- 要点2: 読み取りと書き込みを分離し、必要な操作だけを段階的に許可する
- 要点3: ツール呼び出し、認可判断、データ参照を相関ID付きで記録する
対象読者:中小企業の経営者、DX推進担当者、情報システム部門
今日やること:利用中のMCPサーバーと権限を1枚の台帳に整理する
この記事の目次
- MCPセキュリティは接続先・権限・実行の3層で考える
- MCPとは何か
- MCPが企業にもたらすセキュリティ上の変化
- リスク1:信頼できないMCPサーバーの実行
- リスク2:プロンプトインジェクション
- リスク3:過剰な権限とスコープ
- リスク4:トークンの誤用と認証情報漏洩
- リスク5:SSRFと内部ネットワークへの到達
- リスク6:監査不能と責任の曖昧化
- ローカルMCPサーバーとリモートMCPサーバーの違い
- MCPセキュリティ対策10項目
- 安全な認証・認可をどう設計するか
- プロンプトインジェクションをどう抑えるか
- MCPサーバー選定で確認する項目
- 30日PoCの進め方
- 本番運用で監視するKPI
- インシデント発生時の初動
- よくある質問
- まとめ
- 参考資料
MCPセキュリティでは、暗号化や認証だけを整えても十分ではありません。MCPサーバーは外部データを読むだけでなく、メール送信、ファイル更新、データベース操作などをAIから実行できるためです。
便利さの源が、そのままリスクの入口になります。安全な企業導入には、信頼できる接続先、最小権限、実行前の承認、監査ログを一つの運用として設計する必要があります。
この記事はModel Context Protocol公式の2026-07-28仕様を基にしています。企業が確認すべき10項目、30日PoC、本番運用、事故対応までを解説します。
MCPセキュリティは接続先・権限・実行の3層で考える
MCPの安全性は、単一の製品機能では決まりません。接続するMCPサーバーを信頼できるか、付与した権限が適切か、危険な操作を実行前に止められるかという3層で決まります。
| 層 | 確認する対象 | 代表的な対策 |
|---|---|---|
| 接続先 | 提供者、配布元、更新経路 | 許可リスト、バージョン固定、変更審査 |
| 権限 | OAuthスコープ、OS権限、データ範囲 | 最小権限、読み書き分離、期限付き認可 |
| 実行 | ツール入力、出力、承認、記録 | 人間承認、入力検証、監査ログ、停止手順 |
OAuthが正しくても、信頼できないローカルサーバーを社員の端末で起動すれば、ファイルや環境変数が危険にさらされます。MCPを「AIのプラグイン」ではなく「社内システムへ接続する実行経路」として審査します。

MCPとは何か
MCP(Model Context Protocol)は、AIアプリケーションと外部データ、ツール、業務フローを標準化して接続するオープンプロトコルです。MCP公式仕様では、Host、Client、Serverの3要素で構成されます。
- Host:AIアプリケーション全体を管理し、接続許可やユーザー同意を扱います
- Client:一つのMCPサーバーと通信する接続単位です
- Server:データを提供するResources、操作を提供するTools、定型文を提供するPromptsを公開します
MCP公式の2026-07-28仕様は、各リクエストが自己完結するステートレスな設計を採用しています。Hostがサーバーごとの境界を管理し、各サーバーには必要な文脈だけを渡すことが設計原則です。
MCPの全体像は、MCPとは何かを解説した基礎ガイドでも確認できます。
\ AI導入の進め方を一緒に整理しませんか /
AI顧問の無料相談はこちらMCPが企業にもたらすセキュリティ上の変化
従来の生成AI利用では、社員が回答を読んでから手作業で社内システムを更新する場面が中心でした。MCPを接続すると、AIがツールを選び、外部サービスを読み、条件によっては更新操作まで進められます。
回答の誤りが画面上の文章にとどまらず、送信、更新、削除へ進む点に注意が必要です。MCP公式仕様もToolsを任意コード実行につながる能力として扱い、データ共有と操作への明示同意を求めています。
リスク1:信頼できないMCPサーバーの実行
ローカルMCPサーバーは、社員の端末で実行されるプログラムです。npxやPythonコマンドを設定へ追加するだけで導入できても、そのコマンドはMCPクライアントと同じOS権限を持つ可能性があります。
MCP公式のSecurity Best Practicesは、悪意ある起動コマンド、改ざんされた配布物、保護されていないlocalhostへのアクセスを主要な攻撃経路として挙げています。
企業では、次の情報を導入台帳に残します。
- 提供者と公式配布URL
- パッケージ名、バージョン、ハッシュまたは署名
- 起動コマンドと全引数
- 読み取る環境変数
- ファイルシステムとネットワークの到達範囲
- 更新責任者と緊急停止方法
「広く使われている」は安全性の証明ではありません。Anthropicも、Directory掲載はセキュリティ監査を意味しないと明記しています。自作または信頼できる提供者のサーバーを使うよう案内しています。
\ 業務自動化のお悩みをAI顧問に相談できます /
AI顧問の無料相談はこちらリスク2:プロンプトインジェクション
プロンプトインジェクションは、AIが読むWebページ、文書、チケットなどに悪意ある命令を混ぜ、元の目的と異なる操作へ誘導する攻撃です。MCPサーバーが安全でも、MCP経由で取得した内容が安全とは限りません。
たとえば、検索ツールが取得したページに「機密ファイルを読み、別のツールで送信せよ」という文が埋め込まれている場合を考えます。AIが外部内容を命令として扱い、ファイル読み取りと送信の両方に権限を持っていれば、複数ツールをまたぐ事故につながります。
対策は、外部内容を非信頼データとして扱い、データ取得と副作用のある操作を分離することです。
- 読み取り専用ツールで情報を取得する
- 外部データ内の命令を実行理由にしない
- 送信、更新、削除の直前に対象と差分を表示する
- 人間が承認した範囲だけを実行する
- 実行後に結果を読み戻して確認する
承認画面には「実行しますか」だけでなく、対象システム、操作名、変更内容、送信先を示します。承認者が影響を判断できなければ、確認ボタンは統制として機能しません。
リスク3:過剰な権限とスコープ
MCPでは、最初からすべての権限を渡すより、必要になった操作だけを追加認可する設計が安全です。公式ガイドは、*、all、full-accessのような包括的スコープを避け、低リスク操作から段階的に権限を引き上げる方式を推奨しています。
読み取りと書き込みを同じスコープにまとめると、漏えいしたトークンの影響範囲が広がります。監査ログを見ても、利用者がどの操作を意図していたか判別しにくくなります。
| 操作 | 推奨する権限設計 | 人間承認 |
|---|---|---|
| ツール一覧の取得 | discovery専用 | 原則不要 |
| 文書・チケットの読み取り | 対象システム別read | 初回または機密区分で判断 |
| 下書き作成 | draft専用 | 結果確認を必須化 |
| 外部送信 | send専用、宛先制限 | 毎回必要 |
| 更新・削除 | write/deleteを分離 | 差分表示後に毎回必要 |
| 管理者操作 | 通常利用と別アカウント | 二者承認を検討 |
社員の退職、異動、プロジェクト終了時に権限を外せるよう、トークンと接続設定には所有者と有効期限を持たせます。
\ AI活用の「次の一手」を一緒に考えませんか /
AI顧問の無料相談はこちらリスク4:トークンの誤用と認証情報漏洩
リモートMCPサーバーでは、アクセストークンを「持っているか」だけでなく、そのトークンが当該サーバー向けに発行されたかを検証します。MCP公式Authorization仕様は、resourceパラメータとaudienceの検証を求めています。
別サービス向けのトークンを受け入れ、下流APIへそのまま渡すトークンパススルーは禁止です。認証境界を曖昧にし、アクセス制御、レート制限、監査を迂回するおそれがあるためです。
認証情報の保管と通信では、次を徹底します。
- 本番のOAuth関連URLはHTTPSに限定する
- トークンをURLのクエリ文字列へ入れない
- OSのKeychainやSecret Managerへ保存する
- ソースコード、共有設定、チャットへ直接書かない
Authorizationヘッダー、コード、秘密値をログに残さない- 短命トークンを使い、失効とローテーションを自動化する
- issuer、audience、resource、有効期限、スコープをサーバー側で検証する
認証ライブラリは独自実装せず、保守されているOAuthライブラリと公式SDKを優先します。独自実装は、署名検証だけ通してissuerやaudienceを見落とす事故を招きやすいためです。
リスク5:SSRFと内部ネットワークへの到達
SSRF(Server-Side Request Forgery)は、サーバー側から意図しないURLへアクセスさせる攻撃です。内部ネットワークやクラウドのメタデータへ到達するおそれがあります。MCPではOAuthのメタデータ探索時に複数のURLを取得するため、悪意ある接続先が内部IPを指定する可能性があります。
MCP公式ガイドは、private IP、loopback、link-local、クラウドメタデータの遮断を挙げています。リダイレクト先にも同じ検査を行い、DNSの検証時と接続時で宛先が変わるDNS rebindingも考慮します。
企業ネットワークでは、アプリケーション内のURL検査だけに頼りません。egress proxyやネットワークポリシーで、MCPクライアントとサーバーが接続できる外部ドメインを制限します。開発用途のlocalhost例外は、本番設定へ持ち込まないよう環境を分けます。
リスク6:監査不能と責任の曖昧化
MCP経由の操作で事故が起きたとき、会話ログだけでは原因を特定できません。どのMCPサーバーが、どのツールを、どの権限で、何に対して実行したかを構造化して残す必要があります。
最低限、次の項目を記録します。
| 項目 | 記録例 | 注意点 |
|---|---|---|
| 主体 | ユーザーID、サービスID | 表示名だけにしない |
| 接続先 | サーバー名、バージョン | URL変更も記録する |
| 操作 | ツール名、実行時刻 | 成功・拒否・失敗を区別する |
| 認可 | 要求スコープ、付与スコープ | トークン本体は残さない |
| 対象 | ファイルID、チケットID | 本文や機密値は最小化する |
| 承認 | 承認者、判断、差分 | 自動承認も識別する |
| 結果 | ステータス、変更ID | 実行後の読み戻し結果を関連付ける |
ログには相関IDを付け、Host、MCPサーバー、下流APIを一つの操作として追跡できるようにします。ログ自体にも機密情報が集まるため、閲覧権限、保存期間、マスキング、改ざん防止を設定します。
ローカルMCPサーバーとリモートMCPサーバーの違い
ローカルとリモートでは攻撃面が異なるため、運用環境に合う統制を選びます。
| 比較項目 | ローカルstdio | リモートHTTP |
|---|---|---|
| 主なリスク | 端末権限、配布物改ざん、環境変数流出 | 認証不備、SSRF、トークン窃取、公開面 |
| 認証 | 環境から資格情報を取得 | OAuth 2.1を中心に設計 |
| ネットワーク | サーバーの外向き通信を制限 | HTTPS、WAF、egress制御 |
| 分離 | OSサンドボックス、コンテナ | テナント分離、ワークロード分離 |
| 更新 | パッケージのバージョン固定 | サーバー側の変更管理と互換性確認 |
| 監査 | 端末ログとプロセスログ | API gatewayとサーバーログ |
ローカルではstdio transportを優先します。HTTPを使う場合はlocalhostを安全と見なさず、認証トークンやUnix domain socketで制限します。
MCPセキュリティ対策10項目
企業が導入審査へ使えるよう、MCPセキュリティ対策を10項目に整理します。
- 利用目的を一つに絞る:対象業務、データ、操作、成果指標を1枚にまとめます
- 接続先を許可リスト化する:提供者、配布元、URL、バージョンを登録します
- 起動コマンドを全文確認する:省略せず、引数と環境変数まで審査します
- 読み取りと書き込みを分ける:read、draft、send、deleteを別権限にします
- トークンを対象サーバーへ束縛する:issuer、audience、resourceを検証します
- 外部データを非信頼扱いにする:取得内容を新たな命令として実行しません
- 危険操作に承認を置く:送信先、対象、差分を表示して人間が判断します
- ネットワーク到達先を制限する:private IP、metadata、不要ドメインを遮断します
- 監査ログを相関させる:認可、ツール実行、下流操作を一つのIDで追跡します
- 停止と失効を先に試す:トークン失効、サーバー無効化、ロールバックを演習します
チェック数を増やすことが目的ではありません。10項目のうち一つでも確認できない場合は、本番データを接続せず、検証環境へ戻すという停止基準を決めます。

MCPの導入範囲、権限設計、監査方法を自社だけで判断しにくい場合は、現在の接続構成と対象業務を整理した段階からご相談いただけます。
安全な認証・認可をどう設計するか
リモートMCPでは、認証と認可を分けて設計します。認証は「誰か」を確認し、認可は「何をしてよいか」を操作単位で決めます。
MCPのAuthorization仕様では、HTTP transportの認可にOAuth 2.1を使います。実装時は次の4点を確認します。
- 本番の認可サーバーとMCPサーバーをHTTPSに限定し、redirect URIを完全一致で検証する
- PKCEと単回利用の
stateで、認可コードの横取りやCSRFを防ぐ resourceとaudienceを検証し、自サーバー向けトークンだけを受理する- 読み取りから始め、書き込みが必要な時点で追加認可する
プロンプトインジェクションをどう抑えるか
プロンプトインジェクションを完全に検出する前提は置けません。外部入力が混入しても、重大な副作用へ進みにくい構造を作ります。
効果が高いのは、権限と工程の分離です。検索するエージェントに送信権限を与えず、送信する工程には宛先と本文を固定した入力だけを渡します。自由文から任意ツールを連鎖できる構造より、操作ごとに型と承認を置く構造の方が影響を限定できます。
次のテストをPoCへ含めます。
- Webページ内に偽の命令を置いても実行しないか
- 文書内に秘密値の送信要求を置いたとき拒否できるか
- ツール説明が変更されたとき再審査へ回るか
- 読み取り結果から書き込みへ移る前に承認が出るか
- 拒否された操作を別ツールで迂回しないか
テストには実データや実際の送信先を使わず、隔離した検証環境とダミーデータを使います。
MCPサーバー選定で確認する項目
MCPサーバーの選定では、機能数より管理可能性を確認します。サーバーが多機能でも、権限を細分化できず変更履歴が不明なら、企業利用には向きません。
| 確認項目 | 合格の目安 | 見送りの例 |
|---|---|---|
| 提供者 | 法人・開発主体と連絡先が明確 | 匿名配布、非公式転載のみ |
| ソース・配布 | 公式リポジトリ、署名、固定版 | 毎回最新版を無審査で取得 |
| 権限 | read/writeを分離できる | 全権限が必須 |
| 認証 | OAuth標準、audience検証 | 長期APIキーの共有が前提 |
| データ | 保存先、保持期間、再利用条件が明確 | 規約に記載がない |
| 更新 | 変更履歴と脆弱性窓口がある | 自動更新のみで通知なし |
| 監査 | 操作ログとエクスポートが可能 | 会話履歴しか残らない |
| 停止 | 接続解除とトークン失効が可能 | 管理者でも即時停止できない |
MCPサーバーの仕組みと選び方では、接続方式、自作、運用の基礎も解説しています。
30日PoCの進め方
MCPのPoCでは、便利さだけでなく安全に止められるかを検証します。30日を4段階に分けると、対象を広げる前に問題を発見できます。

1〜5日目:対象業務と禁止事項を決める
一つの業務、一つのMCPサーバー、読み取り専用データから始めます。個人情報、契約情報、認証情報、本番の削除操作は対象外にします。
6〜12日目:隔離環境で接続する
テストアカウント、ダミーデータ、限定ネットワークを使います。起動コマンド、依存パッケージ、外向き通信、権限要求を記録します。
13〜20日目:攻撃と誤操作を試す
プロンプトインジェクション、過剰スコープ、誤った送信先、トークン失効、ネットワーク遮断を試します。成功率だけでなく、拒否率と検知時間を測ります。
21〜30日目:限定利用と本番判定を行う
少人数へ広げ、全ツール呼び出しを監視します。合格基準と撤退基準を満たした場合だけ、本番接続の審査へ進めます。
AIガバナンスの構築手順も参考になります。MCP固有の審査を全社のAI台帳、RACI、リスク区分へ接続できます。
本番運用で監視するKPI
本番運用では、業務成果とセキュリティを同じダッシュボードで追います。効率化だけを評価すると、承認省略や権限拡大が改善として扱われるためです。
| KPI | 定義 | 見る目的 |
|---|---|---|
| ツール成功率 | 正常完了数÷実行数 | 品質と障害を把握する |
| 拒否率 | ポリシーで止めた数÷実行数 | 攻撃・誤操作の兆候を見る |
| 人間承認率 | 承認対象のうち承認した割合 | 承認疲れを検知する |
| 権限昇格数 | 追加スコープ要求の件数 | 権限設計の不足を見る |
| 未登録サーバー検知数 | 許可リスト外の接続数 | シャドー利用を把握する |
| 平均検知時間 | 異常発生から通知まで | 監視の実効性を見る |
| 平均失効時間 | 停止判断からトークン失効まで | 初動速度を確認する |
| ロールバック成功率 | 復元できた変更数÷対象数 | 復旧可能性を確認する |
閾値を超えたら、担当者が手動で眺めるだけでなく、接続停止、権限縮小、再認可へ進む手順を決めます。MCPサーバーやツール定義の変更も監視対象です。
インシデント発生時の初動
MCP経由の不審操作を検知したら、原因調査より先に影響を止めます。調査中もトークンやプロセスが有効なら、被害が広がるためです。
- 対象MCPサーバーをHostの許可リストから外す
- アクセストークン、refresh token、APIキーを失効する
- ローカルMCPプロセスと関連ジョブを停止する
- egressを遮断し、下流サービスの認証情報もローテーションする
- 相関IDからツール呼び出しと変更対象を特定する
- 送信、更新、削除の結果を下流システムで読み戻す
- 復元可能な変更をロールバックする
- 原因となったサーバー、入力、権限、承認手順を修正する
ログを急いで消したり、同じ端末で検証を続けたりしないでください。証拠保全が必要な場合は端末やコンテナを隔離し、組織のインシデント対応手順へ引き継ぎます。
社内ルールへ落とし込む際は、生成AIガイドラインの作り方のひな形も利用できます。
よくある質問
Q. MCPは安全ですか?
MCPは安全機能を含む標準ですが、接続しただけで安全になるわけではありません。公式仕様も、ユーザー同意、アクセス制御、データ保護、ツール実行の理解を実装者と運用者へ求めています。接続先審査、最小権限、承認、監査を組み合わせる必要があります。
Q. ローカルMCPサーバーとリモートMCPサーバーはどちらが安全ですか?
一律には決められません。ローカルは端末権限と配布物、リモートはOAuth、公開面、ネットワーク経路が主なリスクです。機密データの所在、管理体制、監査要件に合わせて選びます。
Q. MCPのプロンプトインジェクション対策は何ですか?
外部データを命令として信頼しないこと、読み取りと書き込みを分離すること、副作用のある操作へ人間承認を置くことが基本です。送信先や差分を承認画面に表示し、実行後に結果を読み戻します。
Q. MCPでOAuthは必須ですか?
すべての構成で必須ではありません。MCP公式2026-07-28仕様では、HTTP transportで認可を実装する場合はOAuth 2.1に基づく仕様へ従うよう求めています。stdio transportは同じ認可フローを使わず、資格情報を環境から取得します。
Q. 小規模な企業でも監査ログは必要ですか?
必要です。ただし大規模なSIEMから始める必要はありません。ユーザー、サーバー、ツール、対象、認可、承認、結果、相関IDを検索可能な形で残し、保存期間と閲覧権限を決めるところから始められます。
まとめ
MCPセキュリティでは、MCPサーバーの出所確認、最小権限、外部入力の非信頼化、危険操作の承認、監査ログを一つの運用として設計します。OAuthを導入するだけでも、社員へ注意喚起するだけでも足りません。
最初の一歩は、利用中または検討中のMCPサーバーを台帳へ集めることです。提供者、起動コマンド、データ範囲、権限、通信先、停止方法が埋まらない接続は、本番データへつながず30日PoCで確認してください。
MCPを含むAI活用の安全な導入を支援します
株式会社NexaのAI顧問では、AIツールの選定から権限設計、PoC、社内ルール、運用定着までを支援します。MCPをどの業務から試すべきか決まっていない段階でもご相談いただけます。
参考資料
- Model Context Protocol Specification 2026-07-28
- Model Context Protocol Architecture
- Model Context Protocol Authorization
- Model Context Protocol Security Best Practices
- Anthropic Claude Code Security





