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