メインコンテンツへスキップ

ツール・リソース・プロンプト:誰が選ぶかで見分ける

  • レッスン 1
  • 11分

このレッスンで

終わる頃には、次ができるようになります

  • ツール・リソース・プロンプトを「誰が選ぶか」という制御の軸で説明できる
  • 3つそれぞれの基本のやり取り(一覧を尋ねる、実行や取得を頼む)を大づかみに言える
  • 自分がつないでいるMCPサーバーの機能を、3つのどれに当たるか分類できる

MCPサーバーをつないで、話しかけて、何かをやってもらう。ここまではもう経験済みという前提で、このコースを始めます。

つないだ経験がまだなければ、先にMCP(外の世界とつなぐ)やMCPとは何かで、つなぐかどうかの判断そのものを扱っています。このコースはその先、MCPサーバーの中で実際に何が起きているかという仕組みの話です。

3つの土台を、機能でなく「誰が選ぶか」で見る

MCPサーバーが公開できる機能は、大きく3種類に決まっています。ツール・リソース・プロンプトです。

名前だけを見ると、どれも「AIに何かを渡す仕組み」に思えます。ですが公式仕様は、この3つを機能の強さではなく、誰が使うかどうかを決めるかという軸で分けています。決める主体が、モデルなのか、アプリなのか、ユーザーなのか。ここが分かれ目です。

ツール(Tools)

モデルが選ぶ。Claudeが会話の文脈から、自分で呼ぶかどうかを判断する

リソース(Resources)

アプリが選ぶ。つないでいるアプリ(Claude Codeなど)がいつ・どう取り込むかを決める

プロンプト(Prompts)

ユーザーが選ぶ。スラッシュコマンドのように、人が明示的に呼び出す

3つの土台と、誰が選ぶか

強い順や高度な順ではありません。次の一手を誰が決めるかが違うだけです。


ツール:モデルが選ぶ

ツールは、Claudeが会話の中で「これを使うべきだ」と自分で判断して呼び出す機能です。天気を調べる、計算する、社内システムに問い合わせる。こうした「実行」を担うのがツールです。

やり取りは単純で、まずクライアント側が「使えるツールを教えて」と尋ね、サーバーが名前と説明を返します。次にClaudeが会話の内容から必要なツールを選び、実際に呼び出します。

ツールが呼ばれるまで

1

一覧を尋ねる

つないだ直後、どんなツールが使えるかをサーバーに尋ねる

2

モデルが選ぶ

会話の文脈から、Claudeがどのツールを使うべきか判断する

3

実行を頼む

選んだツールの名前と入力値を渡し、実行を依頼する

4

結果を受け取る

ツールの実行結果が返り、会話の続きに使われる

公式仕様は、ここに一つ注意を添えています。ツールを実行に移す前には、常に人間が止められる機会を残すべきだという原則です。何のツールが使われようとしているか画面に示し、実行前に確認を求める。これは実装側の義務として明記されています。


リソース:アプリが選ぶ

リソースは、読み取り専用のデータをClaudeの文脈に渡す仕組みです。ドキュメントの中身、設定ファイル、データベースのレコード。ツールと違って「実行」ではなく「参照」だけを担います。

ここで選ぶ主体はモデルではありません。つないでいるアプリ側です。一覧から選ばせる画面を出すのか、検索させるのか、それとも文脈に応じて自動で差し込むのか。どう取り込むかはアプリの設計次第で、公式仕様はやり方を一つに決めていません。

01

一覧を尋ねる

つないだサーバーが公開しているリソースを尋ねる

02

アプリが選ぶ

一覧表示・検索・自動選択など、選び方はアプリの設計次第

03

読み取る

選ばれたリソースの中身を取得する

04

文脈に入る

取得した内容が会話の材料として使われる

リソースが文脈に入るまで

直接指定できるリソースと、パラメータ付きで指定するリソースの違いは、次のレッスンで扱います。


プロンプト:ユーザーが選ぶ

3つ目のプロンプトは、少し紛らわしい名前です。ここで言うプロンプトは、あなたが毎回考えて打ち込む文章のことではありません。サーバー作者があらかじめ用意した、質の高い指示テンプレートを指します。

公式仕様は、プロンプトを「ユーザー制御」と位置づけています。典型的な現れ方は、スラッシュコマンドです。

プロンプトの呼び出しイメージ
$/summarize-week meeting_id=weekly-42
[サーバー側で用意されたテンプレートに meeting_id が差し込まれ、整った指示として展開される]

ユーザーが自分でゼロから文章を組み立てる代わりに、サーバー作者が事前にテストした型を選ぶだけで済みます。誰がどうやってそのテンプレートを見つけ、引数をどう渡すかは、次の次のレッスンで詳しく扱います。


やってみよう

演習1:3つに分類してみる

自分がすでにつないでいる、または知っているMCPサーバーを1つ思い浮かべてください。そのサーバーが提供している機能を書き出し、それぞれがツール・リソース・プロンプトのどれに当たるか分類してみてください。

分類に迷った機能があれば、「これは誰が選んでいるか」を自問してみてください。Claudeが自分の判断で使っているなら、たいていツールです。

演習2:自分の業務に当てはめる

自分の仕事で「読み取り専用のデータを渡したいだけ」という場面と、「AIに実行までしてほしい」という場面を、それぞれ1つずつ挙げてください。前者はリソース向き、後者はツール向きの候補です。


今日のまとめ

3行で振り返ります。

  • ツール・リソース・プロンプトは、機能の強さではなく「誰が選ぶか」で見分ける
  • ツールはモデルが選び、リソースはアプリが選び、プロンプトはユーザーが選ぶ
  • ツールの実行前には、人間が止められる機会を残すべきだと公式仕様は定めている

次のレッスンでは、リソースをもう一段深く見ていきます。直接指定するリソースと、パラメータで指定するリソースの違い、そして更新を知らせてもらう購読の仕組みです。

セルフチェック

1. MCPの公式仕様が、ツール・リソース・プロンプトを分類するときの軸は何ですか。

2. ツールの実行について、公式仕様が定めている原則として正しいものはどれですか。

3. MCPにおける「プロンプト」の説明として正しいものはどれですか。

SourceARTICLE
MCP公式仕様: Tools

ツールがモデル制御である理由と、人間の承認を求める原則の一次情報。

Webmodelcontextprotocol.io
modelcontextprotocol.io/specification/2025-06-18/server/tools
SourceARTICLE
MCP公式仕様: Resources / Prompts

リソースがアプリ制御である理由の一次情報。プロンプトの仕様は同階層のPromptsページにある。

Webmodelcontextprotocol.io
modelcontextprotocol.io/specification/2025-06-18/server/resources

このレッスンは役に立ちましたか?