Ian Chou's Blog

MCP 核心概念指南:Resource、Tool 與 Prompt

MCP 核心概念指南:Resource、Tool 與 Prompt

用 HTTP 方法來類比 MCP 概念,幫助你更直覺地理解它們的用途與差異。


1. Resource ≈ HTTP GET (靜態資源)

就像你瀏覽網頁 (GET https://example.com/user/123) 一樣,MCP Resource 也是「讀取」一個狀態或內容。

特性:

使用範例:


2. Tool ≈ HTTP POST (功能/函式)

這是真正對應 HTTP POST 的角色,代表「執行一個動作」。

特性:

使用範例:

什麼是副作用 (Side Effect)?

這裡的「副作用」跟一般講 HTTP POST / 函式式程式設計時的 side effect 概念是一樣的:除了「回傳一個結果」之外,還改變了系統或外部世界的狀態。

在 HTTP / REST 裡的副作用

以 POST 為例,常見的副作用包括:

映射到 MCP Tool 的意義

在 MCP 裡,Tool 是「可以被模型呼叫來執行動作」的介面,所以也通常會有副作用:

總結: 副作用是指任何會讓系統、資料或外部環境在這次呼叫之後變得不一樣的效果,而不只是算一算再把結果丟回來。


3. Prompt (預設指令模板)

這是一個特殊的概念,不太像 HTTP POST,它更像是一個 "UI 模板""預填表單"

用途: 它是給使用者 (Human) 用的,不是給 AI 用的。

情境範例:

假設你有一個常用的複雜指令:

「請幫我檢查這段程式碼的安全性、效能和可讀性,並列點說明」

你不用每次都打這麼多字,你可以把這個指令做成一個 mcp.prompt。當你在 Claude 介面上選擇這個 Prompt 時,它會自動把這些字填入對話框,讓你發送給 AI。

類比: 它比較像是在 Postman 裡的 "Saved Request" (儲存的請求模板),或者是網頁上的「快速填單按鈕」。


總結對照表

MCP 概念 HTTP 類比 角色 誰來用? 目的
Resource GET 資料提供者 AI 獲取上下文 (Context) 以便回答問題
Tool POST 功能執行者 AI 執行操作、計算、改變狀態
Prompt (無直接對應) 預設指令模板 使用者 (你) 快速重用常見的提問模式 (Slash Command)

一句話總結

Resource 給 AI 讀資料,Tool 給 AI 做事情,Prompt 給你省打字。