MCP の概要と仕組み

大規模言語モデル(LLM)は強力ですが、2 つの大きな制限があります。1 つ目は知識がトレーニング時に得たものに限定されること、2 つ目は外部とやり取りできないことです。つまり、リアルタイム データにアクセスしたり、会議の予約や顧客レコードの更新などのアクションを実行したりできません。

Model Context Protocol(MCP)は、この問題を解決するために設計されたオープン標準です。2024 年 11 月に Anthropic によって導入された MCP は、LLM が外部のデータ、アプリケーション、サービスと通信するための安全で標準化された「言語」を提供します。MCP は、AI が静的な知識を超えて、最新の情報を取得してアクションを実行できる動的なエージェントへと変貌するためのブリッジとして機能し、AI の精度、実用性、自動化を向上させます。

Model Context Protocol について

MCP は、AI アプリケーションの標準化された双方向接続を作成し、LLM がさまざまなデータソースやツールに簡単に接続できるようにします。MCP は、ツールの使用や関数呼び出しなどの既存のコンセプトを基に構築しつつ、それらを標準化しています。このため、新しい AI モデルや外部システムごとにカスタム接続を作成せずに済みます。LLM は最新の実世界のデータを使用し、アクションを実行して、元のトレーニングには含まれていない特殊な機能にアクセスできるようになります。

MCP のアーキテクチャとコンポーネント

Model Context Protocol は、LLM と外部システムが簡単にやり取りできるように連携するコンポーネントからなる明確な構造を持っています。

MCP ホスト

LLM は、AI 搭載 IDE や会話型 AI などの AI アプリケーションまたは環境である MCP ホスト内に含まれています。通常、これはユーザーのインタラクション ポイントであり、MCP ホストは LLM を使用して、外部データやツールが必要になる可能性のあるリクエストを処理します。

MCP クライアント

MCP ホスト内にある MCP クライアントは、LLM と MCP サーバーが相互に通信できるようにします。LLM から MCP へのリクエストを変換し、MCP から LLM への応答を変換します。また、利用可能な MCP サーバーを検出して使用します。

MCP サーバー

MCP サーバーは、LLM にコンテキスト、データ、機能を提供する外部サービスです。データベースやウェブサービスなどの外部システムに接続して、その回答を LLM が理解できる形式に変換することで、LLM を支援します。これにより、デベロッパーは多様な機能を提供できます。

トランスポート層

トランスポート層は、主に 2 つのトランスポート方法を使用し、クライアントとサーバー間で JSON-RPC 2.0 メッセージにより通信します。

  • 標準入出力(stdio): ローカル リソースに適しており、高速で同期したメッセージ送信が可能
  • サーバー送信イベント(SSE): リモート リソースに適しており、効率的なリアルタイムのデータ ストリーミングが可能

MCP の仕組み

Model Context Protocol の本質は、LLM がクエリへの回答やタスクの完了といった目的のために、外部ツールにサポートをリクエストできるようにすることです。AI アシスタントに「データベースから最新の売上レポートを見つけて、上司にメールで送って」と指示したとします。

MCP でこの問題を処理する仕組みを簡単に説明します。

  1. リクエストとツールの検出: LLM は、単独でデータベースにアクセスしたり、メールを送信したりできないことを理解しています。MCP クライアントを使用して利用可能なツールを検索し、MCP サーバーに登録されている 2 つの関連ツール(database_query ツールと email_sender ツール)を検出します。
  2. ツールの呼び出し: LLM は、こうしたツールを使用するための構造化されたリクエストを生成します。まず、レポート名を指定して database_query ツールを呼び出します。MCP クライアントは、このリクエストを適切な MCP サーバーに送信します。
  3. 外部アクションとデータの返送: MCP サーバーはリクエストを受け取り、それを会社のデータベース用の安全な SQL クエリに変換して、売上レポートを取得します。その後、このデータをフォーマットして LLM に送り返します。
  4. 2 回目のアクションと回答の生成: レポートデータを受け取った LLM は、マネージャーのメールアドレスとレポートの内容を指定して email_sender ツールを呼び出します。メールが送信されると、MCP サーバーはアクションが完了したことを確認します。
  5. 最終確認: LLM が次のような最終的な回答を返します。「最新の売上レポートを見つけたので、上司にメールで送信しました。」

MCP と RAG の比較

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、ドキュメントの要約、テキスト生成におけるハルシネーションの低減。

MCP を使用するメリット

モデル コンテキスト プロトコルは、AI を活用したアプリケーションの開発とデプロイにいくつかの潜在的なメリットをもたらし、LLM の汎用性、信頼性、能力を高めます。

ハルシネーションの低減

LLM は、リアルタイムの情報ではなくトレーニング データに基づいて回答を予測するため、その性質上、事実をでっち上げたり、もっともらしいが最終的には不正確な情報を生成したりすることがあります(ハルシネーション)。MCP は、LLM が外部の信頼できるデータソースにアクセスするための明確な方法を提供することで、この問題を軽減し、回答の信頼性を高めます。

AI の実用性と自動化の向上

このプロトコルにより、AI はより多くのことを行い、自律的に動作できるようになります。通常、LLM はトレーニングされた内容しか把握しておらず、その内容はすぐに古くなる可能性があります。しかし、MCP を使用すると、LLM はビジネス ソフトウェア、コンテンツ リポジトリ、開発環境といった多数の既製のツールや調査に接続できます。つまり、AI は、CRM システムの顧客情報の更新、オンラインでの最新の出来事の検索、特別な計算の実行など、現実世界とのやり取りを伴うより複雑な作業を処理できるようになります。これらの外部ツールに直接接続することで、LLM は単なるチャット プログラムではなく、自律的に行動できるスマート エージェントになります。つまり、自動化できることが大幅に増えます。

AI の接続が容易に

MCP が登場する前は、LLM をさまざまな外部データソースやツールに接続するのは容易でななく、通常は特別な接続を必要としたり、各ベンダー固有の方法を使用したりしていました。その結果、システムは複雑で煩雑なものとなり、新しいモデルやツールが追加されるたびに必要なカスタム接続の数が急速に増えるため、しばしば「N x M」問題と呼ばれていました。MCP は、USB-C ポートでデバイスの接続がシンプルになるのと同じように、これらの接続を容易にする共通のオープン スタンダードを提供します。このシンプルな方法により、開発コストを削減し、AI アプリケーションの作成を迅速化し、接続性に優れた AI 環境を構築できます。また、開発者は、LLM プロバイダをより簡単に切り替えたり、大きな変更を加えることなく新しいツールを追加したりできます。

MCP とセキュリティ

Model Context Protocol は、LLM を外部システムに接続することで LLM の機能を向上させますが、重要なセキュリティ上の考慮事項が生じる可能性もあります。MCP はあらゆるデータにアクセスでき、接続されたツールを通じてコードを実行できる可能性があるため、強固なセキュリティが不可欠です。

MCP の主なセキュリティ原則は次のとおりです。

  • ユーザーの同意と管理: ユーザーは、MCP を通じて LLM が実行するすべてのアクションとデータアクセスを明確に理解し、同意する必要があります。ユーザーは、理想的には、使いやすい認証画面を通じて、共有するデータと実行するアクションを制御できる必要があります。
  • データプライバシー: ユーザーデータを MCP サーバーに公開する前に、ホストはユーザーから明確な許可を得る必要があります。LLM は大量のデータを処理するため、特に機密データは適切なアクセス制御で保護し、偶発的な漏洩や共有を防ぐ必要があります。暗号化と強力なアクセス制御ルールを使用することが不可欠です。
  • ツールの安全性: MCP を介してリンクされたツールは、コードの実行に使用できます。デベロッパーは、ツール記述が信頼できるサーバーから提供されたものでない限りは信用しないでください。ユーザーは、ツールが使用される前に権限を付与し、そのツールの機能について理解してから実行を許可する必要があります。
  • 安全な出力処理: MCP とのやり取りから得られた LLM の出力は、その出力がユーザーに表示される場合、クロスサイト スクリプティング(XSS)やその他のウェブ アプリケーション攻撃などのセキュリティ上の問題を防ぐために、慎重に扱う必要があります。入力を適切にクリーンアップして出力をフィルタリングし、プロンプトに機密データが含まれることがないようにすることが重要です。
  • サプライ チェーンのセキュリティ: MCP サーバーと、MCP サーバーが接続する外部ツールの信頼性は非常に重要です。組織は、LLM サプライ チェーンのすべての部分が安全であることを確認し、バイアスのかかった結果、セキュリティ侵害、障害を防止する必要があります。
  • モニタリングと監査: LLM のアクティビティと MCP サーバーとのやり取りを定期的にチェックすることで、異常な動作や潜在的な不正使用を発見できます。強力なロギングおよび監査システムをセットアップすることで、データの移動やツールの使用状況を追跡できます。これは、セキュリティ インシデントに対応する際に役立ちます。

これらの原則を守ることで、デベロッパーは潜在的なリスクから保護しながら、MCP の力を活用できます。

MCP を活用したアプリケーションの構築とデプロイ

Model Context Protocol を実装するには、LLM、MCP サーバー、基盤となるデータソースをホストするための堅牢なインフラストラクチャが必要です。クラウド プラットフォームは、完全なソリューションを構築するために必要なスケーラブルで安全なコンポーネントを提供します。以下に、その方法をご紹介します。

MCP サーバーのホスティングとスケーリング

MCP サーバーは、外部ツールへのブリッジです。ニーズに応じて、次のいずれかを選択できます。

  • サーバーレス環境(Cloud Run など): シンプルなステートレス ツールに最適です。サーバーレス プラットフォームは、需要に応じてサーバーを自動的にスケールします(ゼロまでスケールすることも可能)。そのため、料金は使用した分に対してのみ請求されます。これは、個々のツールを効率的にデプロイするのに最適です。
  • コンテナ オーケストレーション(Google Kubernetes Engine(GKE)など): ネットワーキングとリソースをきめ細かく制御する必要がある複雑なステートフル アプリケーションの場合、マネージド Kubernetes 環境は、エンタープライズ規模で高度な MCP インフラストラクチャを実行するために必要なパワーと柔軟性を提供します。

MCP をデータとツールに接続

MCP の価値の多くは、MCPがアクセスできるツールから得られます。LLM を次のものに接続できます。

  • マネージド データベース(Cloud SQLSpanner など): AI が顧客情報、在庫、運用データなどのリレーショナル データベースを安全にクエリできるようにします。
  • データ ウェアハウス(BigQuery など): 分析タスクでは、LLM はデータ ウェアハウスを活用して大規模なデータセットを分析し、ユーザーのクエリに対応して、コンテキストに沿った深い分析情報を導き出すことができます。

Vertex AI を使用したエンドツーエンドの AI ワークフローのオーケストレーション

すべてを統合するには、統合 AI プラットフォームが不可欠です。Vertex AI は、MCP を活用したアプリケーションのライフサイクル全体を管理するのに役立ちます。

  • LLM ホスティング: アプリケーションの「頭脳」として機能する Gemini などの強力な基盤モデルをデプロイして管理します。
  • エージェントとオーケストレーション フレームワーク: AI エージェントの構築には複雑なワークフローが伴います。Vertex AI は、LLM と MCP サーバーが提供するコンテキスト間の情報の流れを合理化するツールを提供し、推論して行動できる高度なエージェントの開発を簡素化します。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud