なぜMCPが必要か
約10分
なぜMCPが必要か
Section titled “なぜMCPが必要か”MCP(Model Context Protocol)は、AIアプリケーションを外部システムへ接続するためのオープン標準です。公式ドキュメントでも「AIアプリケーション向けのUSB-C」のような標準接続として説明されています。[1] MCPが必要な理由は、M×N統合問題にあります。AIアプリケーションの数(M)と外部ツールの数(N)が増えるにつれて、カスタム統合コードの数が掛け算で増加し、スケールしなくなるという問題です。MCPはこの問題をM+Nに削減します。
M×N統合問題とは
Section titled “M×N統合問題とは”MCPがない世界
Section titled “MCPがない世界”MCPが存在しない場合、各AIアプリケーションは接続したいツールごとに専用のコードを実装する必要があります。
たとえば、3つのAIアプリと3つのツールがあるとします。
AIアプリ1 → データベース用コード
AIアプリ1 → ファイルシステム用コード
AIアプリ1 → 計算機API用コード
AIアプリ2 → データベース用コード(別実装)
AIアプリ2 → ファイルシステム用コード(別実装)
AIアプリ2 → 計算機API用コード(別実装)
AIアプリ3 → ...(同様に3つ)3つのアプリ × 3つのツール = 9通りの統合コードが必要になります。
graph LR
subgraph "MCPなし(M×N = 9通り)"
A1[AI App 1] -->|専用コード| T1[(データベース)]
A1 -->|専用コード| T2[ファイル\nシステム]
A1 -->|専用コード| T3[計算機 API]
A2[AI App 2] -->|専用コード| T1
A2 -->|専用コード| T2
A2 -->|専用コード| T3
A3[AI App 3] -->|専用コード| T1
A3 -->|専用コード| T2
A3 -->|専用コード| T3
end問題が深刻化する理由
Section titled “問題が深刻化する理由”この構造には以下の問題があります。
| 問題 | 説明 |
|---|---|
| 開発コストの爆発 | MとNが増えるたびに統合コードが掛け算で増える |
| 保守の困難さ | ツールのAPIが変わると、それを使う全AIアプリのコードを修正する必要がある |
| 品質のばらつき | 各チームが独自実装するため、エラーハンドリングやセキュリティが統一されない |
| ツール提供者の負担 | 各AIプラットフォームに対して個別のSDKやプラグインを提供しなければならない |
現実には、MCPの公式ドキュメントでもClaude、ChatGPT、Visual Studio Code、Cursorなど複数のクライアントや開発ツールの対応が紹介されています。[1] ツール側もファイル、データベース、検索、ワークフローなど多様であり、個別実装のままだと組み合わせが急速に増えます。
現実のサービスで理解するM×N問題
Section titled “現実のサービスで理解するM×N問題”抽象的な説明だけでは分かりにくいので、実際のサービス名で考えてみましょう。
具体的なシナリオ
Section titled “具体的なシナリオ”AIアプリ3つ: Claude Desktop・Cursor・Windsurf 外部ツール3つ: GitHub・Slack・Figma
MCPがない世界では、こうなります。
| AIアプリ | GitHub連携 | Slack連携 | Figma連携 |
|---|---|---|---|
| Claude Desktop | 独自実装A | 独自実装B | 独自実装C |
| Cursor | 独自実装D | 独自実装E | 独自実装F |
| Windsurf | 独自実装G | 独自実装H | 独自実装I |
3 × 3 = 9種類の「繋ぐためのコード」が必要になります。この表の数値は、説明用に「各アプリが各ツールへ個別接続する」と仮定した単純計算です。
しかも、GitHubがAPIを更新したら、独自実装A・D・Gの3箇所を全部修正しなければなりません。
MCPがある世界
Section titled “MCPがある世界”同じシナリオでMCPを使うと:
- GitHubはGitHub MCPサーバーを1つ公開する
- SlackはSlack MCPサーバーを1つ公開する
- FigmaはFigma MCPサーバーを1つ公開する
- Claude Desktop・Cursor・Windsurfは、それぞれMCPクライアントを1つ実装する
合計: 3(AIアプリ)+ 3(ツール)= 6つの実装で済みます。
GitHubがAPIを更新しても、修正が必要なのはGitHub MCPサーバーの1箇所だけです。
規模が大きくなるほど差が出る
Section titled “規模が大きくなるほど差が出る”| 規模 | MCPなし | MCPあり | 削減率 |
|---|---|---|---|
| 3アプリ × 3ツール | 9通り | 6通り(3+3) | 33%削減 |
| 10アプリ × 20ツール | 200通り | 30通り(10+20) | 85%削減 |
| 100アプリ × 100ツール | 10,000通り | 200通り(100+100) | 98%削減 |
アプリとツールが増えるほど、個別接続を標準接続へ寄せる効果は大きくなります。
MCPによる解決:M+N
Section titled “MCPによる解決:M+N”MCPがある世界
Section titled “MCPがある世界”MCPを導入すると、構造が根本的に変わります。
- 各AIアプリは「MCPクライアント」を一度だけ実装する
- 各ツールは「MCPサーバー」を一度だけ実装する
- 共通プロトコル(MCP)で話すため、新しい組み合わせに追加コードは不要
graph LR
subgraph "MCPあり(M+N = 6つの実装のみ)"
A1[AI App 1\nMCPクライアント] --> MCP{MCP\nプロトコル}
A2[AI App 2\nMCPクライアント] --> MCP
A3[AI App 3\nMCPクライアント] --> MCP
MCP --> T1[(データベース\nMCPサーバー)]
MCP --> T2[ファイルシステム\nMCPサーバー]
MCP --> T3[計算機 API\nMCPサーバー]
end削減効果の比較
Section titled “削減効果の比較”| 項目 | MCPなし | MCPあり |
|---|---|---|
| 統合実装数(3アプリ×3ツール) | 9通り | 6通り(3+3) |
| 統合実装数(10アプリ×20ツール) | 200通り | 30通り(10+20) |
| 統合実装数(100アプリ×100ツール) | 10,000通り | 200通り(100+100) |
| ツールのAPI変更時の影響範囲 | すべてのAIアプリ | MCPサーバー1箇所のみ |
アプリとツールが増えるほど、MCPの効果は大きくなります。
AIアプリ開発者にとって
Section titled “AIアプリ開発者にとって”MCPクライアントを一度実装すれば、MCPに対応したサーバーと共通プロトコルで接続できます。[2] 新しいツールが登場しても、個別APIごとの接続コードを毎回書く必要は小さくなります。
ツール提供者にとって
Section titled “ツール提供者にとって”MCPサーバーを一度公開すれば、MCPに対応したクライアントから同じプロトコルで利用してもらえます。[2] 特定のAIプラットフォーム向けにカスタム統合を重ねる必要を減らせます。
エンドユーザーにとって
Section titled “エンドユーザーにとって”利用するAIアプリを変えても、同じツールをそのまま使い続けられます。ツールとアプリの組み合わせの自由度が高まります。
- MCPがない場合、M個のAIアプリとN個のツールの統合にはM×N通りの実装が必要
- MCPを使うと、AIアプリ側とツール側それぞれ1回ずつ実装するだけで済み、M+N通りに削減
- アプリとツールが増えるほど、この削減効果は指数的に大きくなる
よくある質問
Section titled “よくある質問”Q: M×N問題はMCP以前にはどのように解決されていましたか?
A: 各AIプロバイダーが独自のプラグインシステムを提供していました(例:OpenAI Plugins、LangChainのツール機能)。しかしこれらは標準化されていないため、あるAIアプリ向けに作ったプラグインを別のAIアプリで再利用することはできませんでした。MCPはこの問題を業界全体の共通規格として解決しようとしています。
Q: MCPはLangChainやLlamaIndexなどのフレームワークとどう違いますか?
A: LangChainやLlamaIndexは特定のプログラミング言語(主にPython/TypeScript)で書かれたフレームワークで、AIアプリケーションを構築するためのライブラリです。MCPは言語に依存しないプロトコル(通信規格)です。LangChainアプリがMCPクライアントを実装し、MCPサーバーと通信するという組み合わせも可能です。
Q: すべてのAIアプリがMCPに対応しているわけではないのですか?
A: MCP公式ドキュメントでは、Claude、ChatGPT、Visual Studio Code、Cursorなどの対応例が紹介されています。[1] ただし、すべてのAIアプリが対応しているわけではなく、利用前に各アプリの現行ドキュメントを確認してください。
- MCPとは — MCPの基本概念
- MCPのアーキテクチャ — Host・Client・Serverの役割
- Model Context Protocol, What is the Model Context Protocol?
- Model Context Protocol, Architecture overview