Model Context Protocol
Model Context Protocol(MCP)は、LLMベースのAIアプリケーションを外部ツールやデータソースに接続するためのオープン標準で、Anthropicが2024年11月に公開しました。各データソースごとに個別のコネクタを構築するのではなく、単一の標準化されたインターフェースを通じてモデルと外部システムを接続し、「AIのためのUSB-C」とも呼ばれています。
Model Context Protocol(MCP)は、LLMアプリケーションを外部ツールやデータソースに接続するためのオープン標準であり、2024年11月25日にAnthropicによって公開されました。
MCPの公式ドキュメントでは、これを「AIアプリケーション向けのUSB-Cポート」と表現し、1つの標準化されたインターフェースを通じてモデルを外部システムに接続すると説明しています。
そのアーキテクチャは、ホスト、クライアント、サーバーの3要素で成り立っており、ホストは接続を維持するために各サーバーごとに専用クライアントを起動します。
通信はJSON-RPC 2.0上で行われ、サーバーはツール、リソース、プロンプトを公開し、クライアントはサンプリングやユーザー入力要求などの機能を提供します。
その中核的な価値は、あらゆるデータソースごとにカスタムコネクタを構築するN×M統合問題を、1つの共通プロトコルに置き換えることにあります。
概要
TheModel Context Protocol(MCP)は、ChatGPTやClaudeのようなLLMアプリケーションが、ファイル、データベース、検索エンジン、業務ツールなどの外部システムにアクセスして情報を取得し、操作を実行できるようにするオープン標準です。MCPの公式ドキュメントでは、これを「AIアプリケーションを外部システムに接続するオープンソース標準」と定義し、「AIアプリケーション向けのUSB-Cポート」と比較しています。USB-Cがデバイス間の接続方法を統一したように、MCPはAIアプリケーションが周囲のシステムに接続する方法を標準化します。
MCP以前は、モデルが必要とする新しいデータソースやツールごとに、それぞれ専用のコネクタが必要でした。Anthropicはこれを「新しいデータソースごとに独自の実装が必要な世界」と表現しており、一般にN×M統合問題として知られています。つまり、N個のモデルをM個のツールに1つずつ接続しなければならない状況です。MCPはこの断片化を単一の共有プロトコルに集約し、開発者はデータソースごとに別個のコネクタを維持するのではなく、1つの標準に対して一度だけ実装すればよくなります。
ホスト、クライアント、サーバー
MCPはクライアント・ホスト・サーバー設計に従います。アーキテクチャのドキュメントでは、次の3つの主要な参加要素が説明されています。
MCPホスト: 言語モデルが動作するAIアプリケーションです。Claude Desktop、Claude Code、VS Codeなどのツールがホストとして機能し、1つ以上のMCPクライアントを調整・管理します。
MCPクライアント: ホスト内に存在し、MCPサーバーへのリンクを維持するコネクタコンポーネントです。ホストはサーバーごとに専用クライアントを1つ作成し、各クライアントはそのサーバーと1対1の接続を保持します。
MCPサーバー: クライアントにコンテキスト(データと機能)を提供する独立したプログラムです。ローカルでもリモートでも実行できます。
たとえば、VS Codeがホストとして機能し、SentryのようなMCPサーバーに接続する場合、ランタイムはそのサーバーへの接続を維持する単一のMCPクライアントオブジェクトを生成します。次にローカルファイルシステムサーバーへ接続すると、別のクライアントオブジェクトが起動します。このようにサーバーごとに個別のクライアントを保持することで、明確なセキュリティ境界が作られ、関心事が分離されます。
動作レイヤーとプリミティブ
MCPは2つのレイヤーで構成されています。データレイヤーはクライアント・サーバー間の通信プロトコルであり、JSON-RPC 2.0をベースにしています。JSON-RPC 2.0; これはライフサイクル管理、つまり接続の初期化と終了を担い、コアとなるプリミティブを定義します。トランスポート層は実際の通信チャネルと認証を担当し、ローカルのプロセス間通信向けの stdio transport と、リモート通信向けの Streamable HTTP transport をサポートします。
MCP において最も重要な概念はプリミティブであり、クライアントとサーバーが互いに提供できるものを定義します。サーバーは 3 つのコアプリミティブを公開できます:
Tools: AI が作業を実行するために呼び出せる実行可能な関数。たとえば、ファイル操作、API 呼び出し、データベースクエリなどです。
Resources: ファイル内容、データベースレコード、API レスポンスなど、AI にコンテキスト情報を提供するデータソースです。
Prompts: システムプロンプトや few-shot の例など、モデルとのやり取りの構造を定める再利用可能なテンプレートです。
クライアント側もプリミティブを公開できます。最も注目すべきなのはsamplingで、サーバーがホストの LLM に completion を依頼できるようにし、自前の言語モデル SDK を同梱せずにモデルへアクセスできるようにします。これに加えて、elicitation はユーザーから追加情報を取得し、logging はデバッグを支援します。各プリミティブには discovery (*/list)、retrieval (*/get)、execution (tools/call) の各メソッドが付属します。
以下の例は、クライアントが利用可能な tools を問い合わせる JSON-RPC 2.0 のリクエストとレスポンスを示しています。
// リクエスト: 利用可能な tools を一覧表示する
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
// レスポンス(抜粋)
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "weather_current",
"title": "Weather Information",
"description": "Get current weather information for any location",
"inputSchema": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
}
}
]
}
}意義と根拠
2024年11月25日、Anthropic は公式ブログで MCP を「データソースと AI 搭載ツールの間に安全な双方向接続を構築できる、開発者向けのオープン標準」として発表しました。この発表は、MCP 仕様と SDK、Claude Desktop アプリにおけるローカル MCP サーバーのサポート、そして MCP サーバーのオープンソースリポジトリと同時に提供されました。Anthropic はまた、Google Drive、Slack、GitHub、Git、Postgres、Puppeteer など、広く使われているシステム向けの事前構築済み MCP サーバーも提供しました。
この発表では、Block と Apollo が初期導入企業として挙げられ、Zed、Replit、Codeium、Sourcegraph などの開発ツールが自社プラットフォームへの MCP 統合に取り組んでいることも示されました。現時点の公式ドキュメントでは、Claude や ChatGPT のような AI アシスタント、VS Code や Cursor のような開発ツールを含む幅広いクライアントとサーバーのエコシステムが MCP をサポートしており、「一度作れば、どこにでも統合できる」ことを目標としています。
GEOおよびAI検索の観点から、MCPが重要なのは、生成AIが事前学習済みの知識だけに依存するのではなく、ライブの外部データやツールへアクセスするための標準化された経路を開くからです。AIアプリケーションが接続するデータソースやツールは、その応答の根拠づけと適用範囲を左右するため、MCPはLLMベースのエージェントが外部コンテキストを取り込むための重要なインターフェースとして確立されつつあります。