大規模言語モデル(LLM)は強力ですが、2 つの大きな制限があります。1 つ目は知識がトレーニング時に得たものに限定されること、2 つ目は外部とやり取りできないことです。つまり、リアルタイム データにアクセスしたり、会議の予約や顧客レコードの更新などのアクションを実行したりできません。
Model Context Protocol(MCP)は、この問題を解決するために設計されたオープン標準です。2024 年 11 月に Anthropic によって導入された MCP は、LLM が外部のデータ、アプリケーション、サービスと通信するための安全で標準化された「言語」を提供します。MCP は、AI が静的な知識を超えて、最新の情報を取得してアクションを実行できる動的なエージェントへと変貌するためのブリッジとして機能し、AI の精度、実用性、自動化を向上させます。
MCP は、AI アプリケーションの標準化された双方向接続を作成し、LLM がさまざまなデータソースやツールに簡単に接続できるようにします。MCP は、ツールの使用や関数呼び出しなどの既存のコンセプトを基に構築しつつ、それらを標準化しています。このため、新しい AI モデルや外部システムごとにカスタム接続を作成せずに済みます。LLM は最新の実世界のデータを使用し、アクションを実行して、元のトレーニングには含まれていない特殊な機能にアクセスできるようになります。
Model Context Protocol は、LLM と外部システムが簡単にやり取りできるように連携するコンポーネントからなる明確な構造を持っています。
LLM は、AI 搭載 IDE や会話型 AI などの AI アプリケーションまたは環境である MCP ホスト内に含まれています。通常、これはユーザーのインタラクション ポイントであり、MCP ホストは LLM を使用して、外部データやツールが必要になる可能性のあるリクエストを処理します。
MCP ホスト内にある MCP クライアントは、LLM と MCP サーバーが相互に通信できるようにします。LLM から MCP へのリクエストを変換し、MCP から LLM への応答を変換します。また、利用可能な MCP サーバーを検出して使用します。
MCP サーバーは、LLM にコンテキスト、データ、機能を提供する外部サービスです。データベースやウェブサービスなどの外部システムに接続して、その回答を LLM が理解できる形式に変換することで、LLM を支援します。これにより、デベロッパーは多様な機能を提供できます。
トランスポート層は、主に 2 つのトランスポート方法を使用し、クライアントとサーバー間で JSON-RPC 2.0 メッセージにより通信します。
Model Context Protocol の本質は、LLM がクエリへの回答やタスクの完了といった目的のために、外部ツールにサポートをリクエストできるようにすることです。AI アシスタントに「データベースから最新の売上レポートを見つけて、上司にメールで送って」と指示したとします。
MCP でこの問題を処理する仕組みを簡単に説明します。
Model Context Protocol(MCP)と検索拡張生成(RAG)はどちらも外部情報を使用して LLM を改善しますが、その方法と目的は異なります。RAG はテキストを作成するための情報を検索して利用するのに対し、MCP はインタラクションとアクションのためのより広範なシステムです。
機能 | Model Context Protocol(MCP) | 検索拡張生成(RAG) |
最終目標 | LLM が外部ツール、データソース、サービスにアクセスしてやり取りし、情報検索と並行してアクションを実行するための双方向通信を標準化します。 | 回答を生成する前に信頼できるナレッジベースから関連情報を取得して、LLM の回答を強化します。 |
メカニズム | LLM アプリケーションが外部関数を呼び出すための、または専用サーバーから構造化データをリクエストするための標準化されたプロトコルを定義し、アクションと動的なコンテキスト統合を可能にします。 | ユーザーのクエリを使用して、ナレッジベースまたはデータソースから情報を取得する情報検索コンポーネントを組み込んでいます。取得した情報により、LLM のプロンプトが補強されます。 |
出力タイプ | LLM がツールの構造化された呼び出しを生成し、結果を受け取って、その結果とアクションに基づいて人間が読めるテキストを生成できるようにします。リアルタイム データや関数も扱うことができます。 | LLM は、外部ドキュメントからクエリに関連するテキストで拡張されたトレーニング データに基づいて回答を生成します。多くの場合、事実の正確性を重視します。 |
インタラクション | 外部システムとのアクティブなインタラクションとタスクの実行を目的として設計されており、LLM が外部の機能を「使用」するための「文法」を提供します。 | 主に、テキスト生成に役立つ情報を受動的に取得するために使用されます。通常は、外部システム内でアクションを実行するために使用されることはありません。 |
標準化 | AI アプリケーションが LLM にコンテキストを提供する方法に関するオープン スタンダード。統合を標準化し、カスタム API の必要性を低減します。 | LLM を改善するための手法またはフレームワークですが、異なるベンダーやシステム間でのツールのやり取りのための汎用プロトコルではありません。 |
ユースケース | タスクの実行(フライトの予約、CRM の更新、コードの実行など)、リアルタイム データの取得、高度なインテグレーションを行う AI エージェント。 | 質問応答システム、最新の事実にもとづく情報を提供する chatbot、ドキュメントの要約、テキスト生成におけるハルシネーションの低減。 |
機能
Model Context Protocol(MCP)
検索拡張生成(RAG)
最終目標
LLM が外部ツール、データソース、サービスにアクセスしてやり取りし、情報検索と並行してアクションを実行するための双方向通信を標準化します。
回答を生成する前に信頼できるナレッジベースから関連情報を取得して、LLM の回答を強化します。
メカニズム
LLM アプリケーションが外部関数を呼び出すための、または専用サーバーから構造化データをリクエストするための標準化されたプロトコルを定義し、アクションと動的なコンテキスト統合を可能にします。
ユーザーのクエリを使用して、ナレッジベースまたはデータソースから情報を取得する情報検索コンポーネントを組み込んでいます。取得した情報により、LLM のプロンプトが補強されます。
出力タイプ
LLM がツールの構造化された呼び出しを生成し、結果を受け取って、その結果とアクションに基づいて人間が読めるテキストを生成できるようにします。リアルタイム データや関数も扱うことができます。
LLM は、外部ドキュメントからクエリに関連するテキストで拡張されたトレーニング データに基づいて回答を生成します。多くの場合、事実の正確性を重視します。
インタラクション
外部システムとのアクティブなインタラクションとタスクの実行を目的として設計されており、LLM が外部の機能を「使用」するための「文法」を提供します。
主に、テキスト生成に役立つ情報を受動的に取得するために使用されます。通常は、外部システム内でアクションを実行するために使用されることはありません。
標準化
AI アプリケーションが LLM にコンテキストを提供する方法に関するオープン スタンダード。統合を標準化し、カスタム API の必要性を低減します。
LLM を改善するための手法またはフレームワークですが、異なるベンダーやシステム間でのツールのやり取りのための汎用プロトコルではありません。
ユースケース
タスクの実行(フライトの予約、CRM の更新、コードの実行など)、リアルタイム データの取得、高度なインテグレーションを行う AI エージェント。
質問応答システム、最新の事実にもとづく情報を提供する chatbot、ドキュメントの要約、テキスト生成におけるハルシネーションの低減。
モデル コンテキスト プロトコルは、AI を活用したアプリケーションの開発とデプロイにいくつかの潜在的なメリットをもたらし、LLM の汎用性、信頼性、能力を高めます。
LLM は、リアルタイムの情報ではなくトレーニング データに基づいて回答を予測するため、その性質上、事実をでっち上げたり、もっともらしいが最終的には不正確な情報を生成したりすることがあります(ハルシネーション)。MCP は、LLM が外部の信頼できるデータソースにアクセスするための明確な方法を提供することで、この問題を軽減し、回答の信頼性を高めます。
このプロトコルにより、AI はより多くのことを行い、自律的に動作できるようになります。通常、LLM はトレーニングされた内容しか把握しておらず、その内容はすぐに古くなる可能性があります。しかし、MCP を使用すると、LLM はビジネス ソフトウェア、コンテンツ リポジトリ、開発環境といった多数の既製のツールや調査に接続できます。つまり、AI は、CRM システムの顧客情報の更新、オンラインでの最新の出来事の検索、特別な計算の実行など、現実世界とのやり取りを伴うより複雑な作業を処理できるようになります。これらの外部ツールに直接接続することで、LLM は単なるチャット プログラムではなく、自律的に行動できるスマート エージェントになります。つまり、自動化できることが大幅に増えます。
MCP が登場する前は、LLM をさまざまな外部データソースやツールに接続するのは容易でななく、通常は特別な接続を必要としたり、各ベンダー固有の方法を使用したりしていました。その結果、システムは複雑で煩雑なものとなり、新しいモデルやツールが追加されるたびに必要なカスタム接続の数が急速に増えるため、しばしば「N x M」問題と呼ばれていました。MCP は、USB-C ポートでデバイスの接続がシンプルになるのと同じように、これらの接続を容易にする共通のオープン スタンダードを提供します。このシンプルな方法により、開発コストを削減し、AI アプリケーションの作成を迅速化し、接続性に優れた AI 環境を構築できます。また、開発者は、LLM プロバイダをより簡単に切り替えたり、大きな変更を加えることなく新しいツールを追加したりできます。
Model Context Protocol は、LLM を外部システムに接続することで LLM の機能を向上させますが、重要なセキュリティ上の考慮事項が生じる可能性もあります。MCP はあらゆるデータにアクセスでき、接続されたツールを通じてコードを実行できる可能性があるため、強固なセキュリティが不可欠です。
MCP の主なセキュリティ原則は次のとおりです。
これらの原則を守ることで、デベロッパーは潜在的なリスクから保護しながら、MCP の力を活用できます。
Model Context Protocol を実装するには、LLM、MCP サーバー、基盤となるデータソースをホストするための堅牢なインフラストラクチャが必要です。クラウド プラットフォームは、完全なソリューションを構築するために必要なスケーラブルで安全なコンポーネントを提供します。以下に、その方法をご紹介します。
MCP サーバーは、外部ツールへのブリッジです。ニーズに応じて、次のいずれかを選択できます。
すべてを統合するには、統合 AI プラットフォームが不可欠です。Vertex AI は、MCP を活用したアプリケーションのライフサイクル全体を管理するのに役立ちます。