🎯 什麼情境該想到我

當你要做 MCP server、卻分不清「該把某個能力做成 tool、resource 還是 prompt」的時候。關鍵是問「誰控制它」

⚙️ 怎麼用(按「誰控制」對號入座)

  1. Tools(模型控制):LLM 主動決定何時呼叫的動作——寫資料庫、呼叫 API、改檔案。用 JSON Schema 定義 typed 輸入/輸出;tools/list 發現、tools/call 執行;執行前通常需使用者同意。例:searchFlightscreateCalendarEvent
  2. Resources(應用控制):唯讀的情境資料——檔案內容、DB schema、API 文件。每個有唯一 URI(file:///...)與 MIME type;支援固定 URI帶參數的 Resource Templatetravel://activities/{city})。resources/listresources/readresources/subscribe。由應用決定要塞多少進脈絡。
  3. Prompts(使用者控制):可重用的指令模板,需使用者明確叫用(非自動觸發),可帶參數、可引用 tools/resources。prompts/listprompts/get。例:「Plan a vacation」帶 destination/duration/budget。
  4. 設計法則:一個 tool 只做一件事、schema 清楚;把「AI 要採取的行動」放 tools、「AI 需要知道的資料」放 resources、「引導使用者的流程」放 prompts。

🧪 我實際套用的紀錄

  • 2026-07-26:(待填)

⚠️ 注意 / 什麼時候不適用

  • Tools 由模型自動叫用,風險最高——務必留人類同意/核准的關卡(見 工具-MCP安全防護要點)。
  • 別把唯讀資料硬做成 tool;resource 才是給脈絡的正解。

🔗 相關工具