コンテンツにスキップ
LinkedInX

なぜMCPが必要か

約10分

対象読者: AIツール(Claude・ChatGPT など)を使ったことがある方
前提知識: 特になし

MCP(Model Context Protocol)は、AIアプリケーションを外部システムへ接続するためのオープン標準です。公式ドキュメントでも「AIアプリケーション向けのUSB-C」のような標準接続として説明されています。[1] MCPが必要な理由は、M×N統合問題にあります。AIアプリケーションの数(M)と外部ツールの数(N)が増えるにつれて、カスタム統合コードの数が掛け算で増加し、スケールしなくなるという問題です。MCPはこの問題をM+Nに削減します。

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

この構造には以下の問題があります。

問題説明
開発コストの爆発MとNが増えるたびに統合コードが掛け算で増える
保守の困難さツールのAPIが変わると、それを使う全AIアプリのコードを修正する必要がある
品質のばらつき各チームが独自実装するため、エラーハンドリングやセキュリティが統一されない
ツール提供者の負担各AIプラットフォームに対して個別のSDKやプラグインを提供しなければならない

現実には、MCPの公式ドキュメントでもClaude、ChatGPT、Visual Studio Code、Cursorなど複数のクライアントや開発ツールの対応が紹介されています。[1] ツール側もファイル、データベース、検索、ワークフローなど多様であり、個別実装のままだと組み合わせが急速に増えます。

現実のサービスで理解するM×N問題

Section titled “現実のサービスで理解するM×N問題”

抽象的な説明だけでは分かりにくいので、実際のサービス名で考えてみましょう。

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を使うと:

  • 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を導入すると、構造が根本的に変わります。

  • 各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
項目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の効果は大きくなります。

MCPクライアントを一度実装すれば、MCPに対応したサーバーと共通プロトコルで接続できます。[2] 新しいツールが登場しても、個別APIごとの接続コードを毎回書く必要は小さくなります。

MCPサーバーを一度公開すれば、MCPに対応したクライアントから同じプロトコルで利用してもらえます。[2] 特定のAIプラットフォーム向けにカスタム統合を重ねる必要を減らせます。

利用するAIアプリを変えても、同じツールをそのまま使い続けられます。ツールとアプリの組み合わせの自由度が高まります。

  • MCPがない場合、M個のAIアプリとN個のツールの統合にはM×N通りの実装が必要
  • MCPを使うと、AIアプリ側とツール側それぞれ1回ずつ実装するだけで済み、M+N通りに削減
  • アプリとツールが増えるほど、この削減効果は指数的に大きくなる

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アプリが対応しているわけではなく、利用前に各アプリの現行ドキュメントを確認してください。

  1. Model Context Protocol, What is the Model Context Protocol?
  2. Model Context Protocol, Architecture overview
クイズ