MCPのTools・Resources・Promptsは何が違うのか
MCPサーバーの紹介には、Tools・Resources・Promptsという機能名が出てきます。サーバーに接続できても、その3つを同じ使い方で扱えるわけではありません。処理を呼び出すのか、参照データを読むのか、指示のひな形を受け取るのかを分けると、アプリに必要な対応が分かります。
この記事は、MCPサーバーを選んだり、その説明を読んだりする初学者向けの解説です。公式仕様を基に3つの役割を比べます。以下の調査例は説明用に作ったもので、特定のサーバーを実行した結果ではありません。
処理・参照データ・指示テンプレートを分ける
公式のサーバー解説では、Toolsは処理を実行する機能、Resourcesはモデルが参照するデータ、Promptsは再利用できる指示テンプレートとして説明されています。主な操作を並べると、何を取得するのかを区別できます。
| 機能 | 取得・実行するもの | 主な操作 |
|---|---|---|
| Tools | 名前と引数で指定する処理と、その結果 | tools/list → tools/call |
| Resources | URIで指定する参照データの内容 | resources/list → resources/read |
| Prompts | 名前と引数に応じた指示テンプレートのメッセージ | prompts/list → prompts/get |
Toolsの仕様は、データベースへの問い合わせやAPIの呼び出し、計算などを用途に挙げています。Toolsには検索のような読み取り処理も含まれます。Toolsを「書き込み専用」と覚えると、Resourcesとの違いを取り違えます。
Resourcesの仕様では、参照する対象をURIで識別し、その内容を読み出します。内容にはテキストだけでなくバイナリデータも使えます。アプリは取得した内容を、必要に応じてモデルの文脈へ組み込みます。
Promptsの仕様では、テンプレートの名前と必要な引数を渡して、メッセージを取得します。prompts/getが返すのはモデルに渡す指示などのメッセージです。それを使ってモデルが生成する回答とは、段階が異なります。
同じ調査でも、3つの機能は併用できる
社内用語を調べ、読み手に合わせて説明するアプリを考えます。次の例は3機能を組み合わせる設計例であり、この構成がMCPの必須条件という意味ではありません。
用語集をResourcesで提供するなら、アプリはそのURIから本文を取得し、説明に必要な部分をモデルへ渡せます。一方、膨大な用語データベースから検索条件に合う項目を探す処理は、検索用のToolとして提供する設計も考えられます。同じ情報を扱う場合でも、データを渡す役割と、検索処理を呼ぶ役割を分けられます。
さらに「新入社員向けに説明する」というPromptを用意すれば、利用者がそのひな形を選び、用語などの引数を指定する構成にできます。アプリは参照データや検索結果と指示を使って、モデルに回答を求めます。3機能はどれか1つを選ぶだけの関係ではなく、目的に応じて組み合わせられます。
モデル・アプリ・利用者の役割と、画面の違い
公式の説明では、Toolsはmodel-controlled、Resourcesはapplication-driven、Promptsはuser-controlledと整理されています。モデルが必要な処理を選ぶこと、アプリが文脈への取り込み方を決めること、利用者がひな形の利用を選ぶことの違いです。
ここでいうPromptsのuser-controlledは、使うタイミングを利用者が選べるという設計を指します。テンプレートの内容を定義するのはサーバー側です。利用者が一から文章を書く機能だけを意味する言葉ではありません。
ただし、3つの仕様はいずれも特定の操作画面を強制していません。Resourcesを一覧から選ぶ画面や、Promptを呼ぶスラッシュコマンドは実装例です。また、Toolsの自動選択を、すべての処理が利用者の確認なしに実行されるという意味に広げることもできません。
公式仕様を読んだ範囲と、実装前の確認
参照したのは2026-07-28版の公式仕様とサーバー解説で、確認日は2026年10月27日です。サーバーは対応する機能をcapabilitiesで宣言します。接続先が3機能すべてを提供し、使うアプリがその機能をすべて同じように表示するとは限りません。
導入前には、接続先が提供する機能と、利用するアプリの対応を照合します。今回確認したのは仕様の記述で、特定アプリの画面、サーバーへの実接続、認証、モデルへの文脈の渡し方は検証していません。
接続先の一覧や呼び出し結果を調べる道具については、MCP Inspectorで調べる、接続・ツール一覧・呼び出し結果で紹介しています。この記事で役割を分けてから読むと、InspectorのTools・Resources・Promptsで何を確かめたいかを判断しやすくなります。