Ian Chou's Blog

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 就是給人類用的「快速填單系統」。

關鍵特性

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 中

實際範例:事件移交 (Incident Handoff)

假設你是一個 SRE 團隊,需要經常做交接。你可以建立一個 incident_handoff Prompt:

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 輔助。