Model Context Protocol MCP は何を解こうとしているのか
MCP は共通の配線規格です。AI アプリケーションを、外部のデータやツールにつなぐためのものです。ここでは三つの役割、提供される三種類のもの、そして 2026 年の改訂で何がひっくり返ったのかを、平たく説明します。
仕様の改訂版 2026-07-28 にもとづく
01 — ひとことで
どの AI アプリケーションからでも、同じやり方でどのデータ源にもつなげる。それが MCP です。
正式名称は Model Context Protocol。Anthropic が 2024 年に提案しましたが、2025 年 12 月以降は Anthropic のものではありません。仕様は Agentic AI Foundation(Linux Foundation の下で Block、OpenAI とともに設立)へ寄贈され、いまはコミュニティが運営しています。
02 — なぜ要るのか
AI アプリケーションが 4 つ、つなぎたい先が 5 つあるとします。Google Drive、GitHub、データベース、Slack、社内 API。
共通の規格がない場合
4 × 5 = 20
「アプリ × データ源」の組み合わせごとに、その都度つなぎ込みを書きます。アプリが 1 つ増えれば 5 組、データ源が 1 つ増えれば 4 組。
共通の規格がある場合
4 + 5 = 9
アプリは「クライアントのふるまい」を一度書くだけ。データ源は「サーバのふるまい」を一度書くだけ。
これが N×M 問題です。MCP の価値はこの一文に尽きます。どの MCP クライアントも、どの MCP サーバにもつながる。USB と同じ話です。あれ以前は、周辺機器ごとに専用の口がありました。
03 — 三つの役割
MCP には三つの役割があります。取り違えられるのは、たいてい最初の二つです。「MCP クライアント」と言うとき、頭に浮かんでいるのはたいてい Claude Desktop ですが、あれはホストです。
- Host(ホスト)
- AI アプリケーションそのもの。Claude Desktop、VS Code、Claude Code はすべてホストです。モデルを持ち、会話を持ち、権限を決めます。ホストとは、その「アプリ」のことです。
- Client(クライアント)
- ホストの中にある接続部品で、サーバ一つにつき一つ。アプリではなく、アプリの内側の部品です。VS Code が二つのサーバにつなげば、クライアントは二つになります。
- Server(サーバ)
- ツールとデータを外に出すプログラム。手元の機械で動かすことも、遠隔に置くこともできます。会話は見えず、ほかのサーバも見えません。意図してそう設計されています。
04 — サーバが出すもの
サーバが出すものは三種類。その違いは「読み」対「書き」ではありません。そこがいちばんよくある取り違えです。
ほんとうの違いは誰が使うと決めるかです。次の三つの場面で、答えはそれぞれ違います。
答え:Resource — 決めるのはアプリ
書類を会話にドラッグする、あるいはホストが「この質問にはこのファイルが要る」と判断する。決めているのはアプリで、モデルではありません。モデルは中身を受け取っただけです。
よくある例:ファイルの中身、git の履歴、データベースのスキーマ。
答え:Tool — 決めるのはモデル
「このバグをチケットにして」と言えば、どの機能をどんな引数で呼ぶかはモデルが自分で決めます。決めているのはモデルです。
ここが肝心です。読むだけの照会でも tool になり得ます。モデルが自分で「引くかどうか」を決めるなら、それは tool です。だから「読み=resource、書き=tool」は誤りです。
答え:Prompt — 決めるのは利用者
メニューから「コードレビュー」を選ぶ、スラッシュコマンドを打つ。決めているのはあなたです。モデルが勝手に使いにいくことはありません。
よくある例:スラッシュコマンド、定型のメニュー。
├─ 三つの場面の違いはただ一つ。誰が決めるか。
05 — どう運ぶか
標準は二つ。stdio はサーバを子プロセスとして起動し、標準入出力でやり取りします。Streamable HTTP は一つのメッセージが一回の HTTP POST になります。これは「どう運ぶか」の違いであって、「どこにあるか」の違いではありません。手元で動くサーバでも Streamable HTTP は話せます。
知っておく価値があるのは、安全面がまったく違うことです。stdio はあなたの権限をそのまま引き継ぎ、認証の層がありません。HTTP のほうは OAuth が要り、送信元の確認が要ります。それと「ローカルのサーバ」とは「自分の機械で動いている」という意味であって、外に出ないという意味ではありません。手元のサーバも遠隔の API を叩きにいきます。
06 — この版で変わったこと
サーバは、もう何も覚えていません。
2026-07-28 は MCP が世に出てから最も大きな改訂で、後方互換を壊すものです。以前はクライアントがサーバと握手して接続を張り、その後は互いを覚えていました。いまは握手も、接続の段階もありません。すべての要求が自分でバージョンと身元を運び、サーバは処理し終えたら忘れます。
向きも変わりました。サーバのほうから問い返してくることはありません。「これが要る」と返して、その要求はそこで終わります。答えを得たクライアントがもう一度出し直します。
よそでこれらを見かけたら、その資料は古い
- ├─
initializeの握手 - ├─
Mcp-Session-Idヘッダ、プロトコル層のセッション - ├─ サーバが自分からクライアントへ要求を送ること
- └─
pingとlogging/setLevelの二つのメソッド
三つ目は誤解されやすいので、はっきり書きます。「サーバはもう何も要求できなくなった」という意味ではありません。なくなったのは「自分から送りつける」という仕組みのほうで、要求を出す能力ではありません。以前はサーバが要求を直接押し込めました。いまは応答の中で「これが要る」と述べて終わり、あとはクライアントが引き取ります。
ですから「サーバがクライアントに何かを求める」機能はすべて残っています。通り道が変わっただけです。Elicitation(利用者に一つ情報を求める)も Sampling(ホストのモデルを借りる。向きが直感と逆なので、とりわけ誤解されます)も同じです。
これとは別の話として、Roots(作業ディレクトリの範囲をサーバに伝える)、Sampling、Logging の三つが非推奨になりました。まだ動きますが、いまの構成として覚えないほうがよいものです。非推奨と、上に書いた仕組みの変更は別の話です。片方は「どう運ぶか」、もう片方は「残すかどうか」です。
07 — このページが指す版
MCP のバージョンは日付そのものです。示しているのは「最後に互換を壊す変更をした日」であって、リリースの周期ではありません。だから手元の MCP の資料は、対応する日付を見ればどれだけ新しいかがわかります。このページから持ち帰る価値がいちばん高いのは、この一点です。
2024-11-05 → 2025-03-26 → 2025-06-18 → 2025-11-25 → 2026-07-28
日付に依存する記述
- 前節「この版で変わったこと」は 2026-07-28 についてのみ成り立ちます。
- 非推奨になった三つが実際に削除されるのは、早くても 2027-07-28 以降のいずれかの版です。
- 仕様から接続の段階が消えたことと、現実のサーバが無状態になったことは別です。すでに動いている多くのサーバは古い版を話し続けており、この差はしばらく残ります。