MCPとは何か—ホスト・クライアント・サーバーを図解
Model Context Protocol(MCP)は、AIアプリケーションと外部のデータや機能を標準化して接続するためのプロトコルです。USBが機器接続の共通規格になったように、AIへ道具を追加する接続面をそろえる発想です。
三つの登場人物
“`text
┌────────────────────────────┐
│ MCP Host: Hermes Agent │
│ ┌────────┐ ┌────────┐ │
│ │Client A│ │Client B│ │
│ └───┬────┘ └───┬────┘ │
└──────┼────────────┼────────┘
│ │
┌──────▼─────┐ ┌────▼────────┐
│freee Server│ │PLAUD Server │
└────────────┘ └─────────────┘
“`
- Host:Hermes AgentのようなAIアプリ。接続、権限、LLM、文脈を管理する
- Client:Host内で一つのServerとの接続を担当する
- Server:専門のデータや機能を公開する。ローカルでもリモートでもよい
2025-11-25版の公式仕様では、一つのHostが複数のClientを持ち、ClientとServerは一対一の接続を維持する構成が説明されています。
Serverが公開する三つのPrimitive
- Tools:外部API呼び出し、計算、ファイル書き込みなど実行可能な機能
- Resources:ファイル、DBレコード、APIレスポンスなどの文脈データ
- Prompts:再利用できる入力テンプレート
Toolはモデルが選ぶ機能です。だからこそ、名前、説明、入力スキーマ、副作用を明確にする必要があります。「save」より「create_notion_task」の方が何をするか分かります。
Transportは二種類が中心
ローカルServerでは標準入力・標準出力を使うstdio、リモートServerではStreamable HTTPが代表的です。MCPはデータ層でJSON-RPC 2.0を使い、Transport層で接続方法と認証を扱います。
MCPが解決しないこと
MCPは接続規格であり、AIの判断が正しいことを保証しません。Serverが安全に実装されているか、Toolへ何を許可するか、利用者承認をどこへ置くかはHostと実装者の責任です。
公式仕様も、Hostが権限、同意、Server間の隔離を管理し、各Serverは必要な情報だけを受け取るという設計原則を示しています。
2026年7月の注意
2026年7月20日時点では、公式仕様ページが2025-11-25をLatestと表示しています。一方、2026-07-28仕様のRelease Candidateも公開され、stateless coreやExtension frameworkなどの破壊的変更が予告されています。7月28日以降に実装する場合は、正式版と利用SDKの対応状況を再確認してください。
まとめ
MCPの価値は、AIと外部サービスの接続を、小さく交換可能なServerへ分けられることです。接続できることより、どのServerへ何を許可したかを説明できることが運用上は重要です。
参考にした一次情報
- [MCP Architecture—2025-11-25 Latest](https://modelcontextprotocol.io/specification/2025-11-25/architecture)
- [MCP Server Overview](https://modelcontextprotocol.io/specification/2025-11-25/server)
- [MCP Tools](https://modelcontextprotocol.io/specification/2025-11-25/server/tools)
- [2026-07-28 MCP Specification Release Candidate](https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/)
