MCP Prompts 深度解析:橋接人類意圖與 AI 上下文
MCP Prompts 深度解析:橋接人類意圖與 AI 上下文
這篇文章將深入探討 MCP Prompts 的核心概念、使用情境,以及如何利用 Nunjucks 模板引擎打造強大的動態提示。
1. 核心概念:什麼是 MCP Prompt?
mcp.prompt 是 Model Context Protocol (MCP) 的三大核心組件之一(與 Resources 和 Tools 並列)。它的定位非常明確:專門用來定義可重用、結構化的提示模板。
如果說 Resource 是給 AI 讀的資料,Tool 是給 AI 用的工具,那麼 Prompt 就是給人類用的「快速填單系統」。
關鍵特性
- 使用者觸發:不同於 Tool 由 AI 自動決定呼叫,Prompt 通常由使用者在 Host (如 Claude Desktop, Cursor) 介面上主動選取。
- 參數化:支援定義參數(Arguments),讓使用者在執行時填入變數(例如:
或)。 - 結構化輸出:執行後會生成包含 Role (User/Assistant) 和 Content 的標準訊息格式,直接注入到當前的對話上下文。
2. 與 HTTP 概念的類比對齊
為了更直觀理解,我們可以將 MCP 的三大支柱與 HTTP 方法做類比:
| MCP 組件 | HTTP 類比 | 角色 | 觸發者 | 目的 |
|---|---|---|---|---|
| Resource | GET |
資料提供者 | AI | 獲取上下文 (Context) |
| Tool | POST |
功能執行者 | AI | 執行有副作用的操作 |
| Prompt | Slash Command | 意圖橋接器 | 人類 | 快速生成複雜指令模板 |
Prompt 的獨特性:
它不像 Tool(AI 執行功能)或 Resource(AI 讀取資料),它是橋接使用者意圖到 AI 輸入的工具。就像 Postman 裡的 "Saved Request" 或 Slack 的 Slash Command,幫你省去重複打字的工。
3. 使用情境 (Use Cases)
在 Claude Desktop / Cursor 中
- 快速存取:使用者只需按
/或+即可瀏覽所有可用的 Prompts 清單。 - 自動填空:選取 Prompt 後,系統會自動彈出表單要求輸入定義好的參數。
實際範例:事件移交 (Incident Handoff)
假設你是一個 SRE 團隊,需要經常做交接。你可以建立一個 incident_handoff Prompt:
- 輸入參數:
team_name(團隊名稱),time_range(時間範圍) - 生成內容:自動產生一份包含「目前事件狀態」、「已知風險」、「待辦事項」的標準化交接文件模板,讓 AI 接著填寫。
4. 進階功能:Nunjucks 模板引擎
MCP Prompts 支援 Nunjucks 模板語言,這讓提示不再只是靜態文字,而是具備邏輯的動態生成器。
為什麼需要 Nunjucks?
它提供了條件邏輯、迴圈、變數替換和過濾器,讓開發者能根據使用者的輸入,動態調整送給 AI 的 Prompt 內容。
語法範例
A. 條件邏輯 (Conditional Logic)
根據輸入參數決定顯示哪段指令。
請用簡單易懂、適合青少年的語氣解釋這個概念。
支援運算子:==, >, <, <=, != 等。
B. 迴圈迭代 (Loops)
當參數是陣列時,可以自動展開。
請分析以下項目的庫存狀態:
C. 過濾器 (Filters)
對輸入資料進行格式化或轉換。
專案代碼:
狀態:
5. 總結
mcp.prompt 是 MCP 協議中極具戰略價值的一環。它解決了「如何讓使用者更高效地與 AI 協作」的問題。透過參數化和 Nunjucks 模板,開發者可以將複雜的 Prompt Engineering 封裝成簡單的「表單」,讓終端使用者即使不懂 Prompting,也能一鍵召喚出高品質的 AI 輔助。
- ← Previous
OS 裡實際發生了什麼事? (Process Tree & Pipes) - Next →
MCP Resources 最佳實踐:從官方範例到實戰設計