AI News HubLIVE
サイト内リライト2 分で読了

モデルコンテキストプロトコル(MCP)を3段階の難易度で解説

Model Context Protocol(MCP)はAnthropicが導入したオープンスタンダードで、AIアプリケーションと外部ツール・データソース間の通信を標準化します。本記事では、MCPが必要な理由、アーキテクチャとリクエストフロー、そして本番環境でのトランスポート、セキュリティ、デプロイメントの考慮事項を3つのレベルで解説します。

ソースMachine Learning Mastery著者: Bala Priya C

モデルコンテキストプロトコル(MCP)は、Anthropicによって導入されたオープンスタンダードであり、AIアプリケーションと外部システム間の統合問題を解決します。大規模言語モデルはトレーニング時点で知識が固定されており、ファイルやデータベース、リアルタイムメールなどにアクセスできません。従来はカスタム統合を開発していましたが、モデルやツールの数が増えるにつれてメンテナンスコストが爆発的に増加します。MCPは統一プロトコルを提供することで、各AIクライアントと各ツールが一度だけプロトコルを実装すればよく、統合ポイントをM×NからM+Nに削減します。

MCPアーキテクチャは3つのコンポーネントで構成されます。ホスト(Host)はユーザーが対話するアプリケーションで、言語モデルを含みます。クライアント(Client)はホスト内に存在し、プロトコルメカニズムを担当します。利用可能なMCPサーバーのレジストリを維持し、モデルのリクエストを適切なMCP呼び出しに変換し、正しいサーバーにディスパッチし、レスポンスをモデルが使用できる形式に変換します。サーバー(Server)は外部システムへのブリッジであり、その機能(ツール、リソース、プロンプト)を登録し、クライアントからのリクエストに応答します。ユーザーが「データベースからQ2の収益数値を取得してチーム向けのサマリーを作成して」と依頼した場合、モデルは2つのタスクを認識し、クライアントが適切なサーバーを見つけ、モデルがデータベースクエリツールとメール下書きツールを順次呼び出します。サーバーはそれぞれの処理を実行し、開発者はグルーコードを一切記述する必要がありません。

MCPサーバーは3種類の機能を公開します。ツール(Tools)は呼び出し可能な関数で、アクションを実行したり計算結果を取得したりします。リソース(Resources)は読み取り可能なデータ(ファイル、レコード、ドキュメント)で、モデルがコンテキストとして取り込めます。プロンプト(Prompts)は再利用可能なテンプレートで、組織のタスク標準化に役立ちます。ツールとリソースは運用上区別され、リソースは受動的でリスクが低いのに対し、ツールは書き込み操作を含むため、異なる認可ポリシーを適用できます。

トランスポート層では、MCPはJSON-RPC 2.0をデータ層として使用し、2つのトランスポートを定義しています。stdioはローカルサーバー向けで、クライアントがサーバーをサブプロセスとして起動し、標準入出力で通信します。シンプルで高速、ネットワーク設定不要であり、IDEプラグインやローカルファイルアクセスに適しています。Streamable HTTPはリモートサーバー向けで、単一のHTTPエンドポイントを介してJSON-RPCメッセージを交換し、サーバーはServer-Sent Eventsを使用して複数のメッセージをストリーミングできます。セキュリティ面では、認証のリスク(セッションIDの推測、認可コードの転送など)に注意が必要です。GoogleのMCP概要では、ユーザー同意の取得、サーバーの可視範囲制限、ツールの自己説明の信頼制限、戻り値のサニタイズ、ツールアクティビティの監査を推奨しています。

デプロイメントの選択肢として、ローカルサーバーはホストと同じマシンでサブプロセスとして実行され、機密データや個人開発環境に適しています。リモートサーバーは独立して実行され、複数のクライアントにサービスを提供でき、本番環境に適しています。サーバーレスプラットフォーム(Cloud Runなど)はシンプルなステートレスツールに、マネージドKubernetesはステートフルまたは高スループットのサーバーに適しています。MCPはオープンソースであり、主要言語のSDKや、GitHub、Slack、Postgresなどの既製サーバーが充実しています。クライアントサポートも進み、Visual Studio CodeやClaudeなどがネイティブ対応しています。MCPは、AI統合の構築可能なエコシステムを形成しつつあります。