知識がなくても始められる、AIと共にある豊かな毎日。
AI

MCP入門:AIエージェントと外部ツールをつなぐプロトコルの仕組みと最新動向

dify-api

最終更新:2026年2月13日|本記事はMCP公式仕様(2025-11-25版)に基づいて正確性を検証しています。

MCPとは何か:AIエージェントと外部ツールをつなぐ標準プロトコル

MCPによるAIエージェントと外部ツールの接続イメージ

Model Context Protocol(MCP)は、Anthropicが2024年に公開したオープンプロトコルです。AIアプリケーションと外部のデータソースやツールを、標準的な方法で接続できます。よく「AIとツールをつなぐUSB-C」と表現される仕組みです。現在はLinux Foundationがホストするオープンソースプロジェクトとして運営されています。

2025年以降、Claude DesktopやVisual Studio Code、Cursor、Windsurfなど多くのAIアプリケーションがこのプロトコルに対応しました。その結果、エコシステムは急速に拡大しています。対応サーバーはGitHub、Slack、データベース、ファイルシステムなど多岐にわたります。そのため、開発者はこれらのツールをAIエージェントに簡単に接続できるようになりました。

この記事では、プロトコルの基本的な仕組みから、2025年後半に導入された最新のトランスポート層の進化まで解説します。すべての情報は公式仕様に基づいています。

クライアント・サーバーモデルの全体像

MCPはクライアント・サーバーアーキテクチャを採用しています。具体的には、AIアプリケーション(ホスト)が1つ以上のサーバーに接続する形です。それぞれの接続は、専用のクライアントによって管理されます。

アーキテクチャは2つの層で構成されています。まずデータ層はJSON-RPC 2.0ベースのプロトコルで、ツールの実行やリソースの取得を定義します。一方、トランスポート層はクライアントとサーバー間の通信チャネルを管理します。つまり、メッセージの配送を担当する部分です。

サーバーが提供できる主要な機能(プリミティブ)は3つあります。Tools(ツール)は、AIが呼び出せる実行可能な関数です。たとえばファイル操作やAPI呼び出しが該当します。Resources(リソース)は、AIにコンテキストを提供するデータソースです。さらにPrompts(プロンプト)は、LLMとの対話を構造化するテンプレートです。

トランスポート層の進化:Streamable HTTPの登場

Streamable HTTPトランスポートの進化イメージ

トランスポート層は、2025年に大きな進化を遂げました。この変更は、開発者にとって最も実務的に重要なポイントです。

初期の仕様(2024-11-05版)では、リモートサーバーとの通信にHTTP+SSE方式が使われていました。しかし、この方式では複雑な手順が必要でした。具体的には、クライアントがGETリクエストでSSEストリームを開き、サーバーがエンドポイントURLを返し、その後のメッセージをPOSTで送信するという流れです。

最新の仕様では、この方式がStreamable HTTPに置き換えられました。新しい方式はよりシンプルです。単一のHTTPエンドポイントでPOSTとGETの両方を処理できます。したがって、クライアントはPOSTでJSON-RPCメッセージを送信し、サーバーは通常のJSONレスポンスまたはSSEストリームで応答できます。

この進化には大きなメリットがあります。まず、基本的なサーバーであればシンプルなHTTPのリクエスト・レスポンスだけで実装可能です。加えて、SSEは必要な場合だけ使えばよいのです。また、セッション管理が正式にサポートされました。さらに、SSEストリームの再接続と再配信も標準化されています。

リアルタイム通知の仕組みとメリット

このプロトコルには、ポーリングなしで変更を検知する仕組みが組み込まれています。それが通知(Notification)システムです。

たとえば、サーバーのツール一覧が変更された場合を考えましょう。サーバーは接続中のクライアントに対して notifications/tools/list_changed という通知メッセージを送信します。すると、クライアントはツール一覧を再取得して最新の状態を反映します。この仕組みはリソースやプロンプトにも適用されます。

重要なのは、クライアントがサーバーに繰り返し問い合わせる必要がない点です。つまり、変更時だけサーバーから通知が届くイベント駆動型の設計が実現されています。

日付ベースのバージョン管理

仕様バージョンについて、一つ大切なポイントがあります。このプロトコルは「1.0」「2.0」のような数値ベースのバージョン番号を使いません。代わりにYYYY-MM-DD形式の日付ベースで管理しています。

2026年2月現在、安定版は2025-11-25です。これが本番環境で使うべきバージョンになります。一方、開発中のドラフト版には、TasksやElicitationなど新しい機能が含まれています。

後方互換性を維持する変更であれば、バージョン番号は変わりません。したがって、破壊的変更があったときだけ新しい日付が発行されます。なお、ネット上で「MCP 2.0」という表記を見かけることがありますが、公式にはそのようなバージョンは存在しません。

実装を始めるための選択肢

MCPによるAIとツールの連携イメージ

実際に使い始めるには、いくつかの方法があります。最も手軽なのは、既存のサーバーを利用する方法です。公式リポジトリにはファイルシステム、GitHub、Google Drive、PostgreSQL、Slackなど、多数のリファレンス実装が公開されています。Claude DesktopやVS Codeなどの対応ホストアプリをインストールし、設定ファイルでサーバーを指定するだけで開始できます。

独自のサーバーを開発したい場合は、公式SDKが用意されています。対応言語はTypeScript、Python、Java、Kotlin、C#に加え、Go、PHP、Ruby、Rust、Swiftにも広がりました。そのため、ほとんどの開発環境でサーバーを構築できます。ローカル環境ならstdioトランスポート、リモート環境ならStreamable HTTPを選ぶのが基本です。

加えて、開発時にはMCP Inspectorというデバッグツールも活用できます。ブラウザ上でサーバーの動作を確認・テストでき、開発の効率を大幅に向上させてくれます。

まとめ:AIエージェント連携の未来

MCPは、AIエージェントが外部の世界と対話するための「共通言語」を提供しています。したがって、個別のツールごとにカスタム統合を書く必要はなくなりつつあります。共通プロトコルで接続する時代へと移行が進んでいるのです。

Streamable HTTPトランスポートの導入、通知システムによるリアルタイム更新、セッション管理の標準化など、仕様は着実に成熟しています。さらにドラフト版では、長時間タスクを管理するTasksやユーザー情報を取得するElicitationなど、新機能も提案されています。

まだ比較的新しいプロトコルですが、すでに107以上のクライアントアプリが対応しています。今後のAIエージェント開発における基盤技術になる可能性は高いです。ぜひ今のうちに基本を理解し、実際に試してみてください。

AIの活用に興味がある方は「AI自動化奮闘記」もあわせてご覧ください。

ABOUT ME
swiftwand
swiftwand
AIを使って、毎日の生活をもっと快適にするアイデアや将来像を発信しています。 初心者にもわかりやすく、すぐに取り入れられる実践的な情報をお届けします。
記事URLをコピーしました