MCPの仕組み入門|Host・Client・Serverの役割とメッセージの流れ
MCPのHost・Client・Serverが呼び出し元・接続の入口・接続先としてどうつながるかを、公式のアーキテクチャ解説をもとに整理します。1つのClientが1つのServerと対になる関係や、要求が渡って結果が会話に戻るまでの流れ、Serverが渡す3つの要素を、設定手順に踏み込まず入門者向けに解説します。
- MCP
- Model Context Protocol
- Host Client Server
- アーキテクチャ
- Claude
- 他4
Host・Client・Serverという名前はどこかで見たけれど、実際に誰が誰に何を渡しているのかを図で説明しようとすると詰まる。そんな経験はないでしょうか。設定画面を開く前に、自分がいまどの部品を触ろうとしているのか確かめたい、という声もよく聞きます。
この記事では、Host・Client・Serverそれぞれの中身、1つのClientが1つのServerと対になる関係、要求が渡って結果が戻るまでの流れ、そしてServerがClientに渡せる3種類の要素を順番に整理します。読み終える頃には、三層の役割を自分の言葉と簡単な図で説明できるようになるはずです。
MCPそのものの定義や、APIやプラグインとの違い、いま導入が必要かどうかの判断はMCPとは何か整理した記事で扱っており、本記事では扱いません。また、この記事は仕組みの整理までが範囲で、実際の接続手順や設定ファイルの書き方には踏み込みません。
今日の結論
- Hostは会話やAgentの呼び出し元となるAIアプリ本体、ClientはHostがServerごとに用意する接続の入口、Serverは外部ツールやデータの窓口になるプログラムです。ClientはHostの中にあり、普段は見えにくい部品です
- 1つのClientはだいたい1つのServerと対になります。つなぐServerが増えれば、Hostが持つClientの数もその分だけ増えます。ローカルとリモートの違いはServerが動く場所の違いで、役割そのものは変わりません
- やり取りは「Hostが接続の入口を用意する→入口がServerに何ができるか尋ねる→Serverが持ち物を返す→AIが必要なものを呼ぶ→結果が会話に戻る」という一往復で捉えれば足ります。書式は共通(JSON-RPC)ですが、名前を暗記する必要はありません
- Serverが渡せるのはTools(実行できる操作)・Resources(読める情報)・Prompts(定型の指示)の3種類です。設定画面で「使えるツールが増えた」ように見えるのは、Serverがこの中のToolsを返しているからです
- 設定画面で触るのはHostであるアプリのClient側で、つなぎ先がServerです。仕組みが分かっても、外部ツールをつなぐ用途がいまなければ、設定画面を開く必要はありません
Host・Client・Serverは「呼び出し元・接続の入口・接続先」の3つの部品
まず、三層それぞれの中身を表で整理します。
| 役割名 | 何をする部品か | 製品でいうとどこか |
|---|---|---|
| Host | 会話やAgentの呼び出し元となるAIアプリ本体。複数のClientをまとめて管理する側 | 公式のアーキテクチャ解説が例として挙げるアプリでは、Claude Code、Claude Desktop、VS Code |
| Client | Hostの中にあり、1本のServerとの接続を受け持つ部品。Serverから受け取ったものをHostに渡す | 設定画面には項目として現れるが、Clientという部品名自体はほとんど表に出ない |
| Server | ファイルや外部サービスなど、接続先ごとに存在する外部ツール・データの窓口になるプログラム | 接続先のプログラムそのもの |
HostはAIアプリ本体で、呼び出し元。ClientはHostの中にいる部品で、読者の目には見えにくい存在です。設定画面を開いてもClientという名前を意識することはあまりありませんが、内部ではHostの中でServerとの接続を1本ずつ受け持っています。
誤解しやすい点にも触れておきます。AIモデルそのものは、この三層のどれにも当たりません。モデルはHostの中で使われる側であり、呼び出し元・接続の入口・接続先という役割分担の外にあります。執筆時点の公式アーキテクチャ解説で確認した範囲では、Host・Client・Serverの3つが構成の中心です。詳しい定義は、公式サイトのアーキテクチャ解説ページで確認できます。
1つのClientは1つのServerと対になる(Serverの数だけClientがある)
Hostは接続したいServerごとに1つのClientを用意し、それぞれのClientは対応するServerと専用の接続を保ちます。執筆時点の公式の整理では、これは1対1の関係です。

Serverを2つつなげば、Hostが持つClientも2つに増えます。Clientは Server ごとの専用の接続を1本ずつ受け持つ部品。だから、担当するServerが増えれば、それに応じてClientの数も増える、という仕組みです。
ローカルのServerとリモートのServerの違いは、Serverプログラムが動く場所の違いです。役割そのものは変わりません。接続の運び方には、同じパソコンの中でプロセス同士をつなぐStdioと、ネットワーク越しにつなぐStreamable HTTPの2つが執筆時点の公式にあります。名前と用途を覚えておけば十分で、どちらが優れているかの比較や実装の詳細はここでは扱いません。
要求が渡って結果が戻るまでの流れ
流れは、次の一本の道筋で捉えると分かりやすくなります。
Hostが接続の入口を用意する → 入口がServerに何ができるか尋ねる → Serverが持ち物を返す → AIが必要なものを呼ぶ → 結果がHostの会話に戻る
Hostは、つなぎたいServerの数だけ接続の入口(Client)を用意します。その入口がServerに対して「何ができるか」を尋ね、Serverは自分が持っている操作や情報(次の見出しで扱う3種類)を返します。会話の中でAIが必要な操作や情報を選ぶと、Client経由でServerに依頼が渡り、Serverが実行・取得した結果は同じ経路をたどってHostの会話に戻ります。
HostとServerは直接やり取りせず、間には必ずClientがいます。この一往復さえ押さえれば十分。メッセージの書式はJSON-RPCという共通の形式なので、どのServerとやり取りする場合でも同じ形で会話ができます。名前まで覚える必要はありません。

ServerがClientに渡せるものは3種(Tools・Resources・Prompts)
Serverが渡せるものは、執筆時点の公式がcore primitivesとして挙げる次の3種類です。
| 名前 | 一言 | たとえば |
|---|---|---|
| Tools | AIが実行できる操作 | ファイル操作、外部API呼び出し、データベース検索など |
| Resources | AIが読める情報 | ファイルの内容、レコード、APIの応答など |
| Prompts | 定型の指示や手順のひな形 | よく使う質問のテンプレートなど |
これらはServer側が用意し、Clientが一覧としてまとめてHostに渡します。設定画面で「使えるツールが増えた」ように見えるのは、Serverがこの中のToolsを返しているからです。読者が普段目にする現象と、三層の役割分担が、ここでつながります。
まとめ:設定画面で触るのはClient側、いま設定しなくてよい
ここまでの内容を一文ずつ振り返ります。Hostは呼び出し元のAIアプリ本体、ClientはHostの中でServerとの接続を受け持つ部品、Serverは外部ツールやデータの窓口です。1つのClientはだいたい1つのServerと対になります。要求は「用意する→尋ねる→返す→呼ぶ→戻る」の一往復で会話に戻ります。Serverが渡せるのはTools・Resources・Promptsの3種類です。
設定画面との対応にも触れておきます。読者が普段開く設定画面は、HostであるアプリのClient側です。そこには、どのServerとどう接続するかを書く場所があります。名前や書き方はここでは扱いません。つなぎ先がServerです。ClientとServerが分かれているからこそ、権限も「どのServerに何を渡すか」という単位で考えられます。
仕組みが分かっても、外部ツールをつなぐ用途がいまなければ、設定画面を開く必要はありません。この記事で扱うのは仕組みまでで、実際の接続手順や設定ファイルの書き方は範囲外です。
MCPまわりの用語や権限の注意点をまとめて見たい方は、MCPの全体像を整理した記事が入り口になります。いますぐ設定に進みたい方は、Claudeでの設定手順やCursorでの設定手順も参考にしてください。
本記事の内容は執筆時点(2026-09-05)の情報に基づきます。MCPの仕様、Host・Client・Serverの呼称、通信方式(transport)の名称や対応、Serverが提供できる要素の種類は変更される可能性があります。各アプリの内部実装は本文の整理と異なる場合があります。接続先に渡す権限やトークンの扱いは各公式ドキュメントと利用規約で確認してください。本記事は動作や安全性を保証するものではありません。