Model Context Protocol (MCP):Landscape, Security Threats, and Future Research Directions 現状、セキュリティ脅威、および将来の研究方向性
X Hou 著 ·  6 Apr 2025 · 被引用数: 1 ・Huazhong University
Focus
MCPサーバーのコンポーネントとライフサイクル

Keyword
function calling
- 2023年にOpenAIが導入したfunction callingは、LLMに外部関数の定義を伝え、LLMがどの関数をどのような引数で呼び出すべきかを判断し、その情報を構造化された形式で返すという、LLM側の機能拡張
 
- function callingの概念は、MCPの登場により、より標準化され自律性の高いツール連携の基盤へと進化した
 
- 課題
 - function calling のメカニズムはプラットフォームごとに異なり、重複した実装が必要だった
 - OpenAIのfunction callingのみならず、Anthropic、Google、Metaなどの他のAIプロバイダーも同様のメカニズムを導入したが、ツール統合は進まず、依然として孤立したエコシステムを形成する状態だった
 - 開発者は各サービスに対してインターフェースを手動で定義し、認証を管理し、実行ロジックを処理する必要があった
 
ChatGPT plugin
- 2023年にOpenAIが導入したChatGPT pluginは、ChatGPTが外部のツールやサービスと連携するための、開発者によって構築されるcallableな機能拡張
 - 標準化されたAPIスキーマ(例:OpenAPI)を通じて、LLMが外部ツールと接続することを可能にする、プラグインベースのインターフェースの一種
 
- function callingの技術を活用する形でOpenAIが提供を開始した
 
- プラグインストア
 
- ChatGPTプラグインを含む初期のプラグインベースのインターフェースは、プラットフォーム固有の制約がある
 - 特定のプラットフォーム(例:OpenAI ChatGPT)内でのみ動作し、異なるプラットフォーム間での互換性がないため、孤立したエコシステムを形成する傾向がある
 
Model Context Protocol(MCP)
- 2024年後半、Anthropicが導入した、AIモデルと外部のツールやリソースとの間のシームレスな相互作用を可能にするために設計された、標準化されたインターフェース
 - Language Server Protocol(LSP)に触発された汎用的なプロトコルで、AIアプリケーションが外部ツールと動的に通信するための柔軟なフレームワークを提供する
 
- MCPを使用すると、AIエージェントはタスクのコンテキストに基づいて、ツールを自律的に発見、選択、および連携させることが可能
 
- ユーザーが必要に応じてデータを注入したり、アクションを承認できるヒューマンインザループのメカニズムもサポート
 
トランスポート層
- セキュアで双方向の通信を保証し、リアルタイムなインタラクションと効率的なデータ交換を可能にする
 
- トランスポート層は以下を管理する
 - クライアントからの初期リクエストの送信
 - 利用可能な機能を詳述するサーバーレスポンスの配信
 - クライアントに継続的な更新を通知する通知の交換
 
サンドボックスエスケープ
隔離された実行環境であるサンドボックスの境界を突破し、本来アクセスできないはずのホストシステムやリソースにアクセスしたり、影響を及ぼすこと
- サンドボックスの外に出ると、攻撃者は任意のコードを実行し、機密データを操作し、または権限を昇格させることが可能
 
Overview
WHAT(これは何?)
- AIと外部のツールやリソースとの間のシームレスな相互作用を可能にするために設計された標準化されたインターフェースであるModel Context Protocol (MCP) についての包括的な分析を提供した
 
WHY(研究の価値は?)
- MCPエコシステムに関する初の包括的な分析であること
 - MCPは産業界で急速に採用が進んでいるが、学術界ではほとんど探求されてこなかった
 - MCPのアーキテクチャ、コンポーネント、およびワークフローの詳細を説明する
 
- MCPサーバーの主要なコンポーネントを特定し、そのライフサイクルを定義し、各段階に関連する潜在的なセキュリティリスクを明らかにした
 - これにより、AIと外部ツールの安全な相互作用を保護するための洞察を提供した
 
- 現在のMCPエコシステムの状況を調査した
 - 様々な業界やプラットフォームにおける採用、多様性、およびユースケースを分析し、MCPの業界での重要性とグローバルなAIワークフローを標準化する可能性を示す
 
- MCPの急速な普及がもたらす影響について議論し、ステークホルダーにとっての主要な課題を特定する
 - セキュリティ、スケーラビリティ、およびガバナンスに関する今後の研究方向を概説
 
WHERE(研究のキモはどこ?)
MCPが導入される以前
- 連携方法
 - 手動APIワイヤリング(Manual API Wiring)
 - 手動でAPI接続
 - すべての統合に対してカスタム認証、データ変換、エラーハンドリングが必要になる
 - 課題
 - APIの数が増加するにつれて、保守の負担が著しく増大し、結果としてスケーリングや修正が困難な、密結合で脆弱なシステムとなる
 - MCPによる解決
 - 統一されたインターフェースを提供する
 - プラグインベースのインターフェース
 - 手動ワイヤリングの複雑さを軽減するために導入された
 - 2023年11月に導入されたOpenAI ChatGPTプラグインなどのプラグインベースのインターフェース
 - 標準化されたAPIスキーマを通じて、AIモデルと外部ツールとの接続を可能にした
 - 新しいLLMアプリストアもが登場。Webサービス向けのプラグインストアを提供
 - 課題
 - 多くの場合、これらの相互作用は一方向的で、状態を維持したりタスクの複数のステップを調整したりすることができない
 - プラグインはプラットフォーム固有の孤立したエコシステムを作り出し、クロスプラットフォームの互換性を制限し、重複した保守作業が必要になる
 - MCPによる解決
 - オープンソースでプラットフォームに依存しない
 - AIアプリケーションは外部ツールと柔軟な双方向の相互作用が可能になった
 - エージェントフレームワーク
 - LangChainや、類似のツールオーケストレーションフレームワークなど
 - モデルが事前定義されたインターフェースを通じて外部ツールを呼び出すための構造化された方法が提供され、自動化と適応性が向上した
 - 課題
 - これらのツールの統合と保守は依然として主に手動で行われ、ツールの数が増えるにつれてカスタム実装が必要となり、複雑性が増大した
 - MCPによる解決
 - MCPは標準化されたプロトコルを提供
 - AIエージェントは統一されたインターフェースを通じてシームレスにツールを呼び出し、相互作用し、複数のツールを連携可能
 - 手動設定が削減され、タスクの柔軟性が向上し、エージェントは広範なカスタム統合なしで複雑な操作を実行可能になった
 - RAG & ベクトルDB
 - データベースやナレッジベースから関連知識を取得し、モデルが最新の情報で回答を補完する仕組み
 - 課題
 - 受動的な情報の取得に限定されている
 - データの修正やワークフローのトリガーなど、能動的な操作を実行することは本質的にできない
 - AIが顧客記録を更新したり、問題を人的サポートにエスカレーションすることはできない
 - テキストによる応答以上のアクションを取ることはない
 - MCPによる解決
 - 受動的な情報検索を超えて、AIモデルが外部データソースやツールと能動的に相互作用し、統一されたワークフローでの検索とアクションの両方を実現する
 
- 課題
 - 各外部サービスを特定のAPIと統合する必要があり、複雑性が増加し、スケーラビリティが制限されていた
 
MCPアーキテクチャ
- 3つの主要コンポーネントで構成される
 - MCP Host、MCP Client、MCP Server
 - AIアプリケーション、外部ツール、およびデータソース間のシームレスな通信を実現するために連携し、操作の安全性と適切な管理を確保する
 
- 典型的なワークフロー
 - ユーザー
 - MCPクライアントにプロンプトを送信
 - MCP Client
 - ユーザーの意図を分析
 - ユーザーに結果を通知
 - MCP Server
 - 適切なツールを選択
 - 外部APIを呼び出して必要な情報を取得・処理
 

- MCP Host
 - MCPクライアントを実行しながらAIベースのタスクを実行するための環境を提供するAIアプリケーションのこと
 - 対話型ツールとデータを統合し、外部サービスとのスムーズな通信を可能にする
 - MCPクライアントをホストし、外部MCPサーバーとの通信を確保する
 - 例:
 - Claude Desktop
 - Cursor
 
- MCP Client
 - ホスト環境内で仲介役として機能し、MCPホストと1つまたは複数のMCPサーバー間の通信を管理する
 - トランスポート層を通じてMCPサーバーと通信する
 - 安全で信頼性の高いデータ交換とホストと外部リソース間のスムーズな相互作用
 - MCPサーバーにリクエストを送信し、利用可能な機能を照会し、サーバーの機能を説明するレスポンスを取得する
 - MCPサーバーからの通知を処理し、タスクの進捗状況やシステムステータスについてリアルタイムの更新を提供
 - ツールの使用状況とパフォーマンスに関するデータを収集するためのサンプリングを実行
 
- MCP Server
 - 3つの主要な機能を持つ
 - Tools、Resources、Prompts
 - MCPホストとクライアントが外部システムにアクセスし、操作することを可能にする
 - Tools:
 - 外部操作の実現
 - MCPサーバーはAIモデルに代わって外部サービスやAPIを呼び出し、操作を実行する
 - クライアントが操作をリクエストすると、MCPサーバーは適切なツールを特定し、サービスと連携して結果を返す
 - モデルがコンテキストに基づいて適切なツールを自律的に選択し呼び出す
 - 従来のToolsであれば、複数ステップが必要で、呼び出しと実行が分離されていた
 - 一定の規格に従って提供され、またその規格に従って利用される
 - モジュール化・再利用が可能で、他のアプリケーションからも容易にアクセス可能
 - Resources:
 - AIモデルへのデータ公開
 - MCPサーバーがAIモデルに公開できる構造化・非構造化データセットへのアクセスを提供
 - ローカルストレージ、データベース、クラウドプラットフォーム等
 - AIモデルが特定のデータをリクエストすると、MCPサーバーが関連情報を取得・処理する
 - Prompts:
 - ワークフロー最適化のための再利用可能なテンプレート
 - AIの応答を最適化し、反復的なタスクを効率化するために、MCPサーバーが生成・維持する事前定義されたテンプレートとワークフロー
 - 応答の一貫性を確保し、タスク実行の効率を向上させる
 - 例
 - カスタマーサポートチャットボットがプロンプトテンプレートを使用して統一された正確な応答を提供する
 - アノテーションタスクでデータラベリングの一貫性を維持するために事前定義されたプロンプトを利用する
 
MCP サーバーのライフサイクル
潜在的な脆弱性を特定し、効果的なセキュリティ対策を設計する上で、ライフサイクルを理解することは不可欠
- 3つのフェーズで構成される
 - 作成 creation、運用 operation、更新 update
 

コンポーネント Components
- 下記の主要コンポーネントが連携することで、シームレスなツール統合、データ取得、タスク調整が可能
 - メタデータ Metadata
 - クライアントが適切なサーバーを識別し、相互作用するために必要な、サーバーの名前、バージョン、説明などの重要な情報が含まれる
 - 構成 Configuration
 - サーバーの動作パラメータ、環境設定、セキュリティポリシーを定義するソースコード、設定ファイル、マニフェストが含まれる
 - ツールリスト Tool List
 - 適切なツール管理とセキュリティを確保するため、利用可能なツールの機能、入出力フォーマット、アクセス権限の詳細が保存される
 - リソースリスト Resource List
 - Webアプリケーション、データベース、ローカルファイルを含む外部データソースへのアクセスを管理し、許可されたエンドポイントとそれに関連する権限を指定する
 - プロンプトテンプレート Prompts
 - 複雑な操作の実行におけるAIモデルの効率性を高める、事前設定されたタスクテンプレートとワークフローが含まれる
 
作成 creation(サーバーの登録、構成、運用準備)
リクエストを処理し、外部ツールやデータソースと安全に相互作用するための準備
- 3つの重要なステップ
 - サーバーの登録
 - MCPサーバーに一意の名前とIDを割り当て、クライアントが適切なサーバーインスタンスを発見して接続可能にする
 - インストーラーのデプロイメント
 - MCPサーバーとその関連コンポーネントをインストールし、正しい設定ファイル、ソースコード、マニフェストが適切に配置されていることを確認する
 - コード整合性の検証
 - サーバーが運用を開始する前に、不正な改変や改ざんを防ぐためにサーバーのコードベースの整合性を検証する
 
運用 operation
安定した制御された環境を維持し、信頼性の高い安全なタスク実行を可能にする
- ツールの実行
 - AIアプリケーションのリクエストに基づいて適切なツールを呼び出し、選択されたツールが意図された操作を実行することを保証する
 
- スラッシュコマンド処理
 - ユーザーインターフェースやAIエージェントを通じて発行される複数のコマンドを解釈して実行する
 - コマンドの重複を管理して競合を防ぐ
 
- サンドボックスメカニズムの実施
 - サンドボックスは、MCPツールの実行環境を分離し、重要なシステムリソースへのアクセスを制限し、潜在的に有害な操作からホストシステムを保護する
 - 実行環境が分離され安全に保たれ、不正アクセスを防止し、潜在的なリスクを軽減する
 
更新 update
セキュリティ、最新性、進化する要件への適応能力を確保する
- 3つの重要なタスク
 - 認証管理
 - アップデート後のアクセス権限が有効であることを確認し、アップデート後のサーバーリソースの不正使用を防止する
 - バージョン管理
 - 異なるサーバーバージョン間の一貫性を維持し、新しいアップデートが脆弱性や競合を回避する
 - 古いバージョン管理
 - 攻撃者が以前のバージョンの既知の脆弱性を悪用することを防ぐため、古いバージョンを無効化または削除する
 
MCPのエコシステム
- 採用企業
 - AIモデル
 - Anthropic(Claude)
 - OpenAI
 - Baidu Maps
 - Blender MCP
 - Developer Tools
 - Replit
 - Microsoft Copilot Studio
 - Sourcegraph Cody
 - Codeium
 - Cursor
 - Cline
 
- コミュニティ
 - AnthropicはMCPの公式マーケットプレイスをリリースしていないが、活気のあるMCPコミュニティ主導でMCPの採用を加速させている
 - MCPコミュニティが手動のプラットフォームは、開発者がMCPサーバーを公開、管理、共有できるアクセスしやすいリポジトリを提供する
 - 組織は、安全に適切に文書化されたMCPサーバーを迅速に作成・管理することが可能になる
 - EasyMCP・FastMCPなどのツールは、MCPサーバーを迅速に構築するための軽量なTypeScriptベースのソリューションを提供
 - FastAPI to MCP Auto GeneratorはFastAPIのエンドポイントをMCPツールとしてシームレスに公開可能にする
 - Foxy ContextsがMCPサーバーを構築するためのGolangベースのライブラリを提供
 - Higress MCP Server HostingはAPIゲートウェイ(Envoyベース)を拡張してwasmプラグインでMCPサーバーをホストする
 - Mintlify、Speakeasy、Stainlessなどのサーバー生成・管理プラットフォームは、MCPサーバーの生成を自動化し、厳選されたMCPサーバーリストを提供し、手動の介入を最小限に抑えた迅速なデプロイメントを可能にする
 

MCPプラットフォームのユースケース
3つの主要プラットフォーム(OpenAI、Cursor、Cloudflare)のユースケース
OpenAI
AI-to-toolコミュニケーションを標準化するためにMCPを採用
- Agent SDKにMCPサポートを導入し、開発者は外部ツールとシームレスに連携するAIエージェントを作成可能に
 - エージェントに対し、適切なフォーマットとリアルタイムのレスポンス配信を保証する
 - SDKはMCPサーバーを通じてリクエストをルーティングする
 - リクエストはMCPプロトコルを介して送信される
 
- Responses APIにMCPを統合
 - AI-to-toolコミュニケーションが効率化され、ChatGPTなどのAIモデルが追加設定なしでツールと動的に対話できる
 
- ChatGPTデスクトップアプリケーションへのMCPサポートの拡張を目指す
 - AIモデルと外部システム間のギャップをさらに埋める
 
Cursor
- 反復的なタスクを自動化し、エラーを最小限に抑え、全体的な開発効率を向上させるためにMCPを採用
 - 開発者は複数のステップを必要とする操作を容易に実行できる
 
- 外部APIとの対話
 - 開発者がIDE内でコマンドを発行すると、AIエージェントは外部ツールが必要かどうかを評価する
 - 必要な場合、エージェントはMCPサーバーにリクエストを送信
 
- コードリポジトリへのアクセス
 - サーバーは適切なツールを特定してAPIテストの実行、ファイルの変更、コードの分析などのタスクを処理
 
- IDE内での直接的なワークフローの自動化
 - 結果はその後、エージェントに返され、さらなるアクションが取られる
 
Cloudflare
エンタープライズグレードのスケーラビリティと安全なマルチデバイス相互運用性を実現することで、MCPの機能を拡張する
- リモートMCPサーバーホスティングを導入することで、MCPをローカルデプロイメントモデルからクラウドホスト型アーキテクチャへと変革する
 - MCPサーバーをローカルで構成する際の複雑さが解消され、クライアントは安全なクラウドホスト型MCPサーバーにシームレスに接続できる
 
- ワークフロー
 - 認証されたAPIコールを通じてアクセス可能な安全なクラウド環境でCloudflareがMCPサーバーをホスティングする
 - AIエージェントはOAuthベースの認証を使用してCloudflare MCPサーバーにリクエストを開始
 - 認証された実体のみがサーバーにアクセスできることを保証
 - 認証後、エージェントはMCPサーバーを通じて外部ツールやAPIを動的に呼び出し、データ取得、文書処理、API統合などのタスクを実行
 
設定ミスのリスクを軽減するだけでなく、分散環境全体でAIパワードのワークフローのシームレスな実行を確保する
- マルチテナントアーキテクチャにより、複数のユーザーが自身のMCPインスタンスに安全にアクセスして管理可能
 - 分離とデータ漏洩の防止を確保
 
MCPサーバーのセキュリティリスク
MCPサーバーのライフサイクルステージにおけるセキュリティ上の潜在的な脅威を特定する
- 作成 creation フェーズ のセキュリティリスク
 - MCPは現在主にローカル環境で運用されているが、マルチテナント環境への今後の導入により、名前の衝突の追加リスクが生じる
 - 中央集権的な命名管理の欠如により、混乱となりすまし攻撃の可能性が高まる可能性
 - 複数の組織やユーザーが類似した名前でサーバーを登録する可能性
 - 悪意のある組織が、正規のサーバーと同一または紛らわしく類似した名前でMCPサーバーを登録し、インストール段階でユーザーを欺く
 - MCPクライアントは主にサーバーの名前と説明に依存してサーバーを選択するため、なりすまし攻撃に対して脆弱
 - AIエージェントとクライアントを悪意のあるサーバーの呼び出しに誤導し、機密データの漏洩、不正なコマンドの実行、またはワークフローの混乱を引き起こす可能性がある
 - 例:攻撃者は正規のgithub-mcpサーバーを模倣するmcp-githubという名前のサーバーを登録し、AIエージェントと信頼されたサービス間の機密性の高いやり取りを傍受および操作することができてしまう
 - 悪意のあるサーバーが正規のサーバーに取って代わる可能性(サプライチェーン攻撃)
 - MCPマーケットプレイスがパブリックサーバーリストのサポートを拡大するにつれて重大な懸念となる
 - 今後の対策
 - 厳格な名前空間ポリシーの確立、暗号化によるサーバー検証の実装、およびMCPサーバー登録を保護するための評判ベースの信頼システムの設計
 - 改ざんされたサーバーや誤設定された環境のインストールなどのセキュリティリスク
 - ローカル環境での固有の手動設定プロセスを自動化する非公式の自動インストーラーが出現している
 - この非公式インストーラーは未検証のリポジトリやコミュニティ主導のプラットフォームから入手されることが多い
 - 攻撃者が、改変されたMCPサーバーインストーラーを配布する可能性
 - インストールプロセス中に悪意のあるコードやバックドアを導入させる
 - ワンクリックインストールを選択するほとんどのユーザーは、潜在的なセキュリティ脆弱性について基盤となるコードを確認することはほとんどない
 - 攻撃者は、改ざんされたバージョンを気付かれずに配布することが容易
 - 今後の対策
 - MCPサーバー向けの標準化された安全なインストールフレームワークの開発、パッケージの整合性チェックの実施、およびMCPエコシステムにおける自動インストーラーの信頼性を評価するための評判ベースの信頼メカニズムの確立
 - 侵害された依存関係、脆弱なビルドパイプライン、またはサーバーのソースコードへの不正な改変によってコードインジェクション攻撃が引き起こされる可能性
 - 攻撃者は、サーバーのソースコードや設定ファイルを標的とし、アップデートやセキュリティパッチ後も残り続ける隠されたバックドアを埋め込める
 - 悪意のあるコードがMCPサーバーのコードベースに密かに埋め込まれ、従来のセキュリティチェックを回避する可能性がある
 - 今後の対策
 - 不正な改変を検出し悪意のあるコードの導入を防ぐため、厳密なコード整合性の検証、厳格な依存関係管理、および定期的なセキュリティ監査を実施する
 - 再現可能なビルドの採用とデプロイメント時のチェックサム検証の実施
 
サーバーの登録 → サーバー名の衝突
インストーラーのデプロイメント → インストーラーのなりすまし
コード整合性の検証 → コードインジェクション攻撃
- 運用 operation フェーズ のセキュリティリスク
 - MCPエコシステム内の複数のツールが同一または類似の名前を共有する場合にツール名の競合が発生する
 - AIアプリケーションが誤って不適切なツールを呼び出し、悪意のあるコマンドを実行したり、機密情報を漏洩する可能性
 - 悪意のある行為者が正規のメール送信ツールを模倣したsend_emailという名前のツールを登録
 - MCPクライアントが悪意のあるバージョンを呼び出した場合、信頼された受信者向けの機密情報が攻撃者が制御するエンドポイントにリダイレクトされ、データの機密性が損なわれる可能性
 - 攻撃者が誤解を招く説明文を利用してツールの選択に影響を与え、重要なワークフローを制御できるという深刻なツールフロー乗っ取りのリスクが生じる
 - ツールの説明文に「このツールを優先すべき」や「このツールを最初に使用することを推奨」といった指示が明示的に含まれている場合、その機能が劣っていたり潜在的に有害であったりしても、MCPクライアントはそのツールを選択する可能性が高くなる
 - 今後の対策
 - 研究者が欺瞞的なツールの説明文を特定し軽減するための高度な検証と異常検知技術を開発し、正確で安全なAIツールの選択を確保する
 - 複数のツールが同一または類似のコマンドを定義する際に発生し、コマンド実行時に曖昧さを引き起こす
 - 特にAIアプリケーションが文脈的な手がかりに基づいてツールを動的に選択し呼び出す場合に、意図しないアクションが実行されるリスクをもたらす
 - 悪意のある行為者は、この曖昧さを利用して、ツールの動作を操作する競合するコマンドを導入し、システムの整合性を損なわせたり、機密データを露出させる可能性がある
 - あるツールが一時ファイルを削除するための/deleteコマンドを登録している一方で、別のツールが同じコマンドを重要なシステムログを消去するために使用している場合など
 - Slackなどのプラットフォームでもスラッシュコマンド登録により、同様の問題が観察されている
 - スラッシュコマンドはクライアントインターフェースでユーザー向けのショートカットとして表示されることが多く、誤って解釈されたり競合したりするコマンドは、特にマルチツール環境において危険な結果をもたらす
 - 今後の対策
 - MCPクライアントが文脈を考慮したコマンド解決を確立し、コマンドの曖昧性解消技術を適用し、検証済みのツールメタデータに基づいて実行の優先順位を付ける
 - 攻撃者がサンドボックスの実装の欠陥を悪用すると、サンドボックスエスケープの脆弱性が発生し、制限された環境から脱出してホストシステムへの不正アクセスが可能になる
 - 一般的な攻撃手法は、システムコールの脆弱性の悪用、不適切に処理された例外、およびサードパーティライブラリの脆弱性の利用など
 - 悪意のあるMCPツールが、基盤となるコンテナランタイムの未修正の脆弱性を悪用し、隔離をバイパスしてより高い特権でコマンドを実行する
 - サイドチャネル攻撃により、攻撃者は機密データを抽出し、サンドボックスの意図された分離を損なう可能性がある
 - 今後の対策
 - MCP環境における実際のサンドボックスエスケープシナリオを検証することで、サンドボックスのセキュリティを強化する
 
ツールの実行 → ツール名の競合
スラッシュコマンド処理 → スラッシュコマンドの重複
サンドボックスメカニズムの実施 → サンドボックスエスケープ
- 更新 update フェーズ のセキュリティリスク
 - 更新後の特権の永続化とは、MCPサーバーの更新後も、期限切れまたは無効化された特権が有効なまま、以前に承認されたユーザーや悪意のある行為者が昇格された特権を保持し続ける状態を指す
 - APIキーの無効化や権限変更などの特権の変更が、サーバーの更新後に適切に同期または無効化されない場合に発生する
 - 期限切れの特権が残存すると、攻撃者はそれを悪用して、機密リソースへの不正アクセスを維持したり、悪意のある操作を実行したりする可能性がある
 - 今後の対策
 - 厳格な特権無効化ポリシーの実施、すべてのサーバーインスタンスにわたる特権変更の一貫した伝播、およびAPIキーとセッショントークンの自動期限切れの実装によって、特権の永続化の可能性を減少させる
 - 特権変更の包括的なログ記録と監査により、特権の永続化による不整合を検出することが可能
 - セキュリティアップデートを監査および強制するための中央プラットフォームが欠如している
 - 通常ユーザーは、GitHub、npm、PyPiなどのリポジトリからMCPサーバーパッケージをダウンロードし、正式なレビュープロセスを経ることなくローカルで設定している
 - ユーザーがMCPサーバーを更新する際、互換性の問題に対処したり安定性を維持したりするために、意図せずに古い脆弱なバージョンにロールバックする可能性がある
 - mcp-getやmcp-installerなどの非公式の自動インストーラーは、サーバーインストールを簡素化しますが、キャッシュされた古いバージョンをデフォルトで使用し、以前にパッチが適用された脆弱性にシステムをさらす可能性がある
 - これらのツールはセキュリティよりも使いやすさを優先することが多いため、バージョン検証が不足していたり、重要なアップデートについてユーザーに通知しない場合がある
 - 攻撃者は古いMCPサーバーを悪用して、不正アクセスを獲得したりサーバー操作を操作したりする可能性がある
 - 今後の対策
 - MCP環境におけるバージョン管理プラクティスを分析することで、潜在的なギャップを特定し、脆弱性検出を自動化する
 - MCPサーバーの標準化されたパッケージングフォーマットと、利用可能なMCPサーバーの安全な発見と検証を容易にする中央サーバーレジストリを備えた公式パッケージ管理システムを確立する必要性がある
 - 構成のドリフトは、システム構成に意図しない変更が時間とともに蓄積され、元のセキュリティベースラインから逸脱することで発生する
 - これらの逸脱は、手動による調整、見落とされたアップデート、または異なるツールやユーザーによる相反する変更によって頻繁に生じる
 - マルチテナント環境における誤設定は、機密データを露出させたり、特権昇格につながったり、意図せずに悪意のある行為者により広範なアクセスを許可してしまう可能性がある
 - エンドユーザーによってローカルで構成および維持管理される環境よりも深刻な事態になる
 - 今後の対策
 - ローカルおよびリモートのMCP環境の両方が安全なベースライン構成に準拠することを確保するため、自動化された構成検証メカニズムと定期的な整合性チェックの実装が必要
 
認証管理 → 更新後の特権の永続化
古いバージョン管理 → 脆弱性のあるバージョンの再デプロイ
構成 → 構成のドリフト
MCPがもたらす影響
- For developers
 - 開発者にとって、
 - MCPは外部ツールの統合の複雑さを軽減し、複雑な多段階タスクを実行できるより汎用性の高い高性能なAIエージェントの作成を可能にした
 - セキュアなツール設定を維持し、システムを脆弱性にさらす可能性のある誤設定を防ぐことに常に注意を払う必要がある
 
- For users
 - ユーザーにとって、
 - MCPはAIエージェントと外部ツールのシームレスな相互作用を可能にし、企業データ管理やIoT統合などのプラットフォーム全体でワークフローを自動化することで、体験を向上させられる
 - 不注意なインストールや信頼できないソースは、データ漏洩、不正アクセス、システムの不安定性を引き起こす
 
- For MCP ecosystem maintainers
 - MCPエコシステムの管理者にとって、
 - MCPサーバーの開発と配布の分散的な性質は、セキュリティ環境の断片化をもたらす
 - 更新やパッチはコミュニティ主導で提供され、品質や頻度にばらつきがある
 - 中央管理がないため、サーバー設定の不整合や古いバージョンが潜在的な脆弱性を引き起こす可能性がある
 - 構成のドリフト、特権の永続化、脆弱なバージョンの再デプロイに関連する潜在的なリスクに注意を払い続ける必要がある
 
- For the broader AI community
 - より広範なAIコミュニティにとって、
 - MCPはクロスシステム連携、動的なツール呼び出し、協調的なマルチエージェントシステムを通じてエージェントワークフローを強化することで、新たな可能性をもたらす
 - エージェントとツール間の相互作用を標準化するMCPの能力は、医療、金融、企業自動化などの分野でイノベーションを促進し、産業全体でのAI採用を加速させる可能性がある
 - AIコミュニティは公平で偏りのないツール選択の確保、機密ユーザーデータの保護、AIケイパビリティの潜在的な誤用の防止など、新たな倫理的・運用上の懸念に対処する必要がある
 - AIエコシステム内での説明責任と信頼を維持しながら、MCPの利点を広く普及させるために不可欠である
 
MCPが取り組むべき課題
- 中央集権的なセキュリティ監視の欠如
 - MCPサーバーは独立した開発者や貢献者によって管理されてる分散型モデルであるため、セキュリティ基準を監査、実施、検証する中央プラットフォームが存在しない
 - MCPサーバー用の統一されたパッケージ管理システムが存在しない
 - インストールとメンテナンスのプロセスが複雑化し、古いバージョンや誤設定されたバージョンがデプロイされる可能性が高まっている
 - 様々なMCPクライアントで非公式のインストールツールが使用されている
 - 一貫したセキュリティ基準の維持が困難
 
- 認証と認可の不備
 - 堅牢な認証プロトコルの欠如により、不正なツール呼び出しのリスクが高まり、機密データが悪意のある行為者にさらされる可能性がある
 - 異なるクライアントとサーバー間で認証と認可を管理するための標準化されたフレームワークがない
 - 特に複数のユーザーやエージェントが同じMCPサーバーと対話するマルチテナント環境では、きめ細かな権限を適用できない
 
- デバッグと監視メカニズムの不足
 - 包括的なデバッグと監視メカニズムを欠いているため、開発者がエラー診断、ツールの相互作用の追跡、ツール呼び出し時のシステム動作の評価を行うことが困難
 - MCPクライアントとサーバーが独立して動作するため、エラー処理とログ記録の不整合により、重要なセキュリティイベントや運用上の障害が不明確になる可能性
 
- 複数ステップのクロスシステムワークフローにおける一貫性の維持
 - システムの分散的な性質により、連続するツールの相互作用間で一貫したコンテキストを確保することは本質的に困難である
 - 適切な状態管理とエラー回復メカニズムがないと、MCPはエラーを伝播させたり中間結果を失ったりするリスクがあり、不完全または一貫性のないワークフローにつながる可能性
 - 多様なプラットフォーム間でのダイナミックな連携により遅延や競合が発生する恐れがある
 
- マルチテナント環境におけるスケーラビリティの課題
 - リモートサーバーホスティングとマルチテナント環境をサポートすることで、一貫したパフォーマンス、セキュリティ、テナントの分離を維持することがますます複雑になる
 - リソース管理とテナント固有の設定ポリシーのための堅牢なメカニズムがないと、誤設定によってデータ漏洩、パフォーマンスの問題、特権昇格が発生する可能性がある
 
- スマート環境へのMCP組み込みの課題
 - スマート環境でのMCPサーバーは、低レイテンシーの応答を維持しながら、複数のセンサーやデバイスからの継続的なデータストリームを処理する必要がある
 - スマート環境で侵害されたMCPサーバーは、重要なシステムに対する不正な制御を引き起こし、安全性とデータの整合性の両方を脅かす可能性がある
 
MCPステークホルダーへの推奨事項
- for MCP maintainers
 - MCPメンテナーは、
 - セキュリティ基準の確立、バージョン管理の改善、エコシステムの安定性確保において重要な役割を果たす
 - メンテナーは厳格なバージョン管理を実施し、検証済みのアップデートのみがユーザーに配布されることを保証する正式なパッケージ管理システムを確立すべき
 - 集中型サーバーレジストリを導入することで、ユーザーがより安全にMCPサーバーを発見し検証できるようになり、悪意のあるまたは誤設定されたサーバーとの相互作用のリスクが低減される
 - MCPパッケージの検証のための暗号署名の採用を推進し、定期的なセキュリティ監査を奨励して脆弱性の特定と緩和を行うべき
 - セキュアなサンドボックスフレームワークを実装することで、特権昇格を防ぎ、悪意のあるツール実行からホスト環境を保護できる
 
- for developers
 - 開発者は、
 - セキュアなコーディング実践に従い、詳細なドキュメントを維持することで、セキュリティと回復力を優先すべき
 - バージョン管理ポリシーを実施することで脆弱なバージョンへのロールバックを防ぎ、徹底的なテストによってデプロイメント前の信頼性の高いMCP統合を確保できる
 - 設定のドリフトを緩和するため、開発者は設定管理を自動化し、Infrastructure as Code(IaC)プラクティスを採用すべき
 - 堅牢なツール名の検証と曖昧性解消技術を実装することで、意図しない動作につながる競合を防ぐ
 - ランタイムモニタリングとログ記録を活用することで、ツールの呼び出しを追跡し、異常を検出し、脅威を効果的に緩和できる
 
- for researchers
 - 研究者は、
 - ツールの呼び出し、サンドボックスの実装、特権管理における潜在的な脆弱性を明らかにするために、体系的なセキュリティ分析に焦点を当てるべき
 - サンドボックスのセキュリティを強化し、特権の永続化を緩和し、設定のドリフトを防ぐための技術を探求する
 - 脆弱なバージョンの再デプロイの可能性を減らすため、分散エコシステムにおけるバージョン管理とパッケージ管理のより効果的なアプローチを調査すべき
 - 自動化された脆弱性検出方法を開発し、セキュアなアップデートパイプラインを提案すること
 - マルチツール環境におけるコンテキストを考慮したエージェントオーケストレーションの探求
 - MCPがマルチステップのクロスシステムワークフローをますますサポートするようになるにつれ、状態の一貫性を確保し、ツール呼び出しの競合を防ぐことが最重要
 - 動的な状態管理、エラー回復、ワークフロー検証の技術を探求すること
 
- for end-users
 - エンドユーザーは、
 - セキュリティリスクに対して警戒を怠らず、自身の環境を保護するためのプラクティスを採用すべき
 - 検証済みのMCPサーバーの使用を優先し、脆弱性を引き起こす可能性のある非公式インストーラーを避けるべき
 - MCPサーバーを定期的に更新し、設定変更を監視することで、誤設定を防ぎ、既知の脆弱性への露出を減らすことが可能
 - アクセス制御ポリシーを適切に設定することで、特権昇格と不正なツール使用を防ぐことが可能
 - リモートMCPサーバーに依存するユーザーは、厳格なセキュリティ基準に従うプロバイダーを選択することで、マルチテナント環境でのリスクを最小限に抑える
 
Table 1. 
| AIモデルとフレームワーク | Anthropic(Claude)[2] | デスクトップ版での完全なMCPサポートにより、外部ツールとの連携が可能。 | 
|---|---|---|
| OpenAI [39] | Agent SDKとAPIでのシームレスなMCP統合をサポート。 | |
| Baidu Maps [31] | MCPを用いたAPI連携により、地理位置情報サービスへアクセス可能。 | |
| Blender MCP [33] | 自然言語コマンドを用いてBlenderやUnityの3Dモデルを生成可能。 | |
| 開発者ツール | Replit [43] | MCPツールを統合したAI支援の開発環境。 | 
| Microsoft Copilot Studio [49] | Copilot Studioを拡張してMCPベースのツール統合を実現。 | |
| Sourcegraph Cody [10] | OpenCTXを通じたMCP実装によるリソース統合。 | |
| Codeium [9] | MCPサポートにより、システム横断的な作業が可能なコーディングアシスタント。 | |
| Cursor [12] | Cursor ComposerでのMCPツール統合により、コードのシームレスな実行を実現。 | |
| Cline [7] | VS CodeのコードエージェントでMCPツールとサーバーを管理。 | |
| IDE/エディタ | Zed [60] | MCPに基づくスラッシュコマンドとツール統合を提供。 | 
| JetBrains [24] | IDEベースのAIツールにMCPを統合。 | |
| Windsurf Editor [14] | MCPツール連携を備えたAI支援のIDE。 | |
| TheiaAI/TheiaIDE [52] | MCPサーバーとの連携によりAIツール操作を可能に。 | |
| Emacs MCP [32] | EmacsにMCPツール呼び出し機能を追加しAI機能を強化。 | |
| OpenSumi [40] | IDE内でのMCPツール統合によりAIツールをシームレスに統合。 | |
| クラウドプラットフォームとサービス | Cloudflare [8] | MCPリモートサーバーホスティングとOAuth統合を提供。 | 
| Block(Square)[47] | 金融プラットフォームでのデータ処理効率をMCPにより向上。 | |
| Stripe [48] | MCPを通じた決済APIのAI統合を実現。 | |
| Web自動化とデータ | Apify MCP Tester [51] | SSEによるAPIテストを通じて任意のMCPサーバーに接続可能。 | 
| LibreChat [28] | 現在のツールエコシステムをMCP連携で拡張。 | |
| Goose [21] | MCPサーバー機能を統合したAIエージェントの構築を支援。 |