1. MCPの動機と背景
核心概念:モデルの能力は、それが受け取るコンテキスト情報に大きく依存します。
進化の道筋:初期のチャットボットではすべてのコンテキストを手動で入力する必要がありましたが、モデルが直接データソースやツールに接続できるようになり、より強力で個性的なAIアプリケーションが実現されるようになりました。
MCPの目標:開放型プロトコルとして、AIアプリケーション、エージェントとさまざまなツール、データソースとのシームレスな統合を実現することを目的としています。
図1: AIのコンテキスト能力の進化の模式図
2. MCPの類推と構成
APIとの類推: APIがWebアプリケーションのフロントエンドとバックエンドのやり取りを標準化したように。
LSP (Language Server Protocol) との類推: LSPがIDEとプログラミング言語ツールのやり取りを標準化したように。
MCPは、AIアプリケーションと外部機能のやり取りの標準的な方法を定義しており、主に3つのコアインターフェイスが含まれています。
図2: MCPの類推と3つのコアインターフェイス
インターフェイス1: Prompts (プロンプト)
制御主体:「ユーザー」 👤
ユーザーが手動でトリガーする事前定義されたテンプレートで、一般的な予測可能な対話パターンに使用されます。
例:ドキュメント質問応答テンプレート、コード要約テンプレート。
インターフェイス2: Tools (ツール)
制御主体:「モデル」 🧠
モデル (LLM) は、必要に応じてこれらのツールを自律的に決定し、タスクを完了するために呼び出すことができます。
例:データの検索、メールの送信、データベースの更新。
インターフェイス3: Resources (リソース)
制御主体:「アプリケーション」 🖼️
アプリケーションが制御するデータソースで、アプリケーションはいつ、どのようにこれらのデータを使用するかを柔軟に決定することができます。
例:画像、テキストファイル、JSONデータ、リアルタイムデータストリーム。
3. MCPが解決する問題:断片化
現在の問題点: 異なるチームやアプリケーションがAIシステムを構築する方法がまちまちであり、深刻な断片化と重複開発が発生しています。
MCPのビジョン: AI開発プロセスを標準化すること。アプリケーション開発者は、MCPに互換性があれば、MCPをサポートするすべてのサーバーにゼロコストで接続できます。
- MCP Server (サーバー側): さまざまなシステムやツール (データベース、CRM、API、バージョン管理など) をカプセル化し、LLMに標準的なアクセスインターフェイスを提供します。
- MCP Clients (クライアント側): コンテキストとツール機能が必要なAIアプリケーション (Cursor、Windsurf、Gooseなど)。
図3: MCPが統合の断片化問題を解決する方法
4. MCPの核心価値
- アプリケーション開発者 👨💻: 一度互換性を持たせれば、どこでも接続できます。アプリケーションは、カスタム開発をすることなく、すべてのMCP Serverにシームレスに接続できます。
- ツール/API提供者 🛠️: MCP Serverを一度構築すれば、多くのAIアプリケーションに統合され、使用されることができます。
- エンドユーザー 😊: 機能がより強力で、コンテキスト感知能力がより高いAIアプリケーション体験を得ることができます。
- 企業 🏢: チームの役割を明確にし (インフラストラクチャチームがサーバーを保守し、アプリケーションチームがアプリケーションに集中するなど)、AIの導入を加速することができます。
図4: MCPがエコシステムにもたらす価値
5. MCPの採用状況
複数の分野で注目を集め、採用されています:
- AIアプリケーション/IDE: Github、ドキュメントサイトなど。
- MCP Server: コミュニティでは1000を超えるサーバーが構築されており、Cloudflare、Stripeなどの企業が公式に統合を提供しています。
- オープンソースコミュニティ: 活発に貢献しています。
図5: MCPエコシステムの採用概観
6. MCPアプリケーションの構築
MCP Client (クライアント側):
Tool
を呼び出して操作を実行します。Resource
をクエリしてデータを取得します。Prompt
テンプレートを埋めてユーザーと対話します。
MCP Server (サーバー側):
Tool
、Resource
およびPrompt
を露出して、Clientが使用できるようにします。
7. Tool, Resource, Promptの詳細
図7: MCPの3つのインターフェイスの詳細
Tool (モデル制御)
- LLMが自律的に呼び出しタイミングを決定します。
- 用途:データの検索/送信、データベースの更新、ファイルの書き込み、コードの実行など。
Resource (アプリケーション制御)
- アプリケーションがどのように使用するかを決定します。
- 内容:画像、テキスト、JSON、構造化データなど。
- 静的および動的リソースをサポートします。
- リソースの変更通知をサポートします (ServerはClientに更新を自動的に通知することができます)。
Prompt (ユーザー制御)
- ユーザーが手動で選択してトリガーします。
- 用途:一般的な対話テンプレートを定義し、ユーザー操作を簡素化します。
8. MCPとAgentの関係
MCPはAgentの基礎プロトコルです。
強化型LLM (Augmented LLM): LLMと検索システム、ツール、メモリなどの外部コンポーネントの組み合わせを指します。MCPは、LLMとこれらのコンポーネントとのやり取りの標準的な方法を提供します。
Agentの核心サイクル: Agentは、本質的にはサイクル内で動作するAugmented LLMであり、タスクを実行し続け、ツールを呼び出し (MCPを介して)、結果を分析し、次のステップを計画します。
MCPの役割: Agentに拡張性を与え、実行時に新しい機能を動的に発見して使用することができるようにします (異なるMCP Serverに接続することによって)。
図8: MCPがAgentの動作サイクルにおける役割
9. mcp - agent
フレームワーク (LastMile AIによる)
MCPを利用してAgentシステムを構築する方法を示しています。
- Agentを構築するためのコンポーネント (Agent、Task) のセットを提供します。
- Agentの構築プロセスを簡素化し、開発者がAgentの核心ロジックに集中できるようにします。
- 宣言的な方法でAgentタスクとそれらが使用できるMCP ServerおよびToolを定義します。
図9: mcp - agent
フレームワークによるAgent開発の簡素化
10. Agentプロトコルの能力
Sampling (推論リクエスト)
MCP Serverは、Client (アプリケーション) にLLM推論呼び出しを実行するように要求することができます。Serverは自らLLMを統合する必要はありません。
Composability (組み合わせ可能性)
すべてのアプリケーションまたはAPIは、MCP ClientとMCP Serverの両方として機能することができ、機能のネストと組み合わせを実現します。
11. MCPのロードマップ
- リモートサーバーと認証: OAuth 2.0認証をサポートし、Serverが認証プロセスを処理します。リモートホストされたServerを実現し、ユーザーが手動でインストールおよび構成する必要はありません。Session Tokenを通じてClientとServerの安全なやり取りを実現します。
- レジストリ (Registry): 統一的に管理されるメタデータサービスで、MCP Serverの検出と管理に使用されます。Serverの検出と公開の問題を解決します。バージョン管理、認証、セキュリティ検証などの機能をサポートします。
- 開発者体験 & エコシステム: 開発者体験の向上とドキュメントの充実を強調します。
図11: MCPの未来の開発ロードマップ