この回のゴール
- 「ツールを標準化する」という MCP の問題意識を理解する
- M × N 問題(LLM 数 × ツール数 の組み合わせ爆発)を直視する
- MCP がこれをどう解決するか、構造 を掴む
- 自分自身、第 4〜6 章で 同じツールを何度も実装していた ことに気付く
1. 第 6 章までの復習
ここまでで作ったもの:
| 章 | 作ったもの | 各ツールの定義 |
|---|---|---|
| 04 | 電卓、時刻、辞書、天気 | JSON Schema + Python 関数 |
| 05 | 検索ツール (RAG) | JSON Schema + Python 関数 |
| 06 | 複数ツールの統合エージェント | JSON Schema + Python 関数 |
毎回、同じパターン で:
TOOLS = [{"name": "...", "input_schema": {...}}]
TOOL_FUNCS = {"...": lambda: ...}
これを チャンネル 1 つ(Claude API)に向けて 書いてきた。
2. M × N 問題
現在の状況
世の中には多数の LLM プロバイダーがあります:
- LLM プロバイダ (M): Claude, GPT-4, Gemini, Llama, Mistral ...
- ツール (N): Slack, Gmail, GitHub, Drive, Notion, Jira, Salesforce, DB, 社内 API ...
もし全部の組み合わせで独自実装が必要だと:
$$ \text{実装数} = M \times N $$
M=10, N=100 なら 1000 個の実装。これを 各社バラバラに 書いている現状。
図で見ると
Without MCP:
Claude ───┬──── Slack
├──── Gmail
├──── GitHub ← Claude 用 SDK
└──── ...
GPT-4 ───┬──── Slack ← GPT-4 用 SDK (重複実装)
├──── Gmail ← 同上
├──── GitHub ← 同上
└──── ...
Gemini ───┬──── Slack ← Gemini 用 SDK...
...
結果: 同じ機能を何度も実装 する無駄と、ツール作者の負担増。
3. MCP の解決策
MCP = Model Context Protocol
2024 年 11 月に Anthropic が発表 した オープンな標準プロトコル:
「ツールの 定義 と 呼び出し を 標準化 しよう。誰が ツールを作っても どの LLM からも使えるように」
図で見ると
With MCP:
Claude ──┐
GPT-4 ──┤
Gemini ──┼──── [MCP] ───┬──── Slack MCP サーバー
Llama ──┤ ├──── Gmail (誰かが 1 回
Mistral──┘ ├──── GitHub 作れば全 LLM で使える)
└──── ...
- ツール作者 → MCP サーバーを 1 つ書くだけ
- LLM プロバイダ → MCP クライアントを実装するだけ
- ユーザー → 好きな LLM と好きなツールを 自由に組み合わせ
USB-C のアナロジー
MCP は 「AI 時代の USB-C」
- USB-C 以前: プロプライエタリなコネクタ (iPhone lightning, Android microB 等)
- USB-C 以降: 1 本のケーブルで 全機器 充電・通信
- MCP 以前: 各 LLM に各ツール個別対応
- MCP 以降: 標準規格で エコシステムが爆発的に広がる
4. MCP の構成要素
3 つの中心概念
| 概念 | 内容 | 例 |
|---|---|---|
| Server | ツールを提供する側 | Slack MCP サーバー、GitHub MCP サーバー |
| Client | ツールを使う側 | Claude Desktop, VSCode 拡張, あなたのアプリ |
| Host | クライアントを動かす環境 | Claude Desktop, Cursor, LM Studio |
サーバーが提供する 3 種類のもの
| 種類 | 意味 | 第 6 章との対応 |
|---|---|---|
| Tools | LLM が呼ぶ関数 | tool_use 相当 |
| Resources | ファイル的な参照データ | RAG のドキュメント相当 |
| Prompts | テンプレ化されたプロンプト | system プロンプトの再利用 |
5. エコシステムの現状(2026 年時点)
公式 MCP サーバー(Anthropic 公認)
@modelcontextprotocol/server-filesystem— ローカルファイルアクセス@modelcontextprotocol/server-github— GitHub 連携@modelcontextprotocol/server-slack— Slack@modelcontextprotocol/server-postgres— PostgreSQL@modelcontextprotocol/server-google-drive— Google Drive
サードパーティ MCP サーバー
- Linear, Notion, Jira, Figma, Asana, Stripe, PayPal ...(数百〜数千)
対応 LLM アプリ
- Claude Desktop (Anthropic) — 最初の MCP ホスト
- Cursor, Zed, VSCode — コードエディタ
- LM Studio, Continue.dev — ローカル LLM
- OpenAI, Google も 2025 年以降 MCP サポートを表明
6. 本章の流れ
| 回 | 内容 |
|---|---|
| 01 (今回) | M×N 問題 と MCP の構造 |
| 02 | MCP の プロトコル 詳細 (JSON-RPC 2.0) |
| 03 | 最小 MCP サーバー を自作 |
| 04 | Claude Desktop と繋いで実運用 |
まとめ
- M (LLM) × N (ツール) の組み合わせ爆発を、MCP が「1 つの標準プロトコル」に統合
- MCP = USB-C 的な共通規格 — サーバー作者は 1 回書けば全 LLM クライアントから使える
- 3 概念: Server (提供側) / Client (使う側) / Host (環境)
- 3 プリミティブ: Tools / Resources / Prompts
この回の限界(次への動機)
「標準プロトコル」の中身は具体的にどうなっている? どの JSON が、どの順序で、どの通信路で流れる? 👉 次回「MCP のプロトコル」で、JSON-RPC 2.0 の生のメッセージを読み解きます。
参考文献
- MCP 公式サイト
- Anthropic MCP 発表記事 (2024-11)
- awesome-mcp-servers