建構我們的 MCP 客戶端的最後一步是實作提示功能。這讓我們能夠列出伺服器上所有可用的提示,並取得填入變數後的特定提示。
實作列出提示
list_prompts 方法很直接。它呼叫 session 的列出提示函式並回傳這些提示:
python
async def list_prompts(self) -> list[types.Prompt]:
result = await self.session().list_prompts()
return result.prompts取得個別提示
get_prompt 方法更有趣,因為它處理變數插值。當您請求一個提示時,您提供的引數會以關鍵字引數的形式傳遞給提示函式:
python
async def get_prompt(self, prompt_name, args: dict[str, str]):
result = await self.session().get_prompt(prompt_name, args)
return result.messages舉例來說,如果您的伺服器有一個 format_document 提示,它預期一個 doc_id 參數,那麼引數字典會包含 {"doc_id": "plan.md"}。這個值會被插入到提示範本中。
實際測試提示
實作完成後,您可以透過 CLI 測試提示。當您輸入斜線(/)時,可用的提示會以指令的形式出現。選擇像「format」這樣的提示,會提示您從可用的文件中選擇。

選擇文件後,系統會將完整的提示傳送給 Claude。AI 會同時收到格式化指示和文件 ID,然後使用可用的工具來擷取並處理內容。
提示如何運作

提示定義了一組客戶端可以使用的使用者和助手訊息。它們應該是高品質、經過充分測試,並與您的 MCP 伺服器的目的相關。工作流程如下:
- 撰寫並評估與您伺服器功能相關的提示
- 使用
@mcp.prompt裝飾器在您的 MCP 伺服器中定義提示 - 客戶端可以隨時請求該提示
- 客戶端提供的引數會成為您提示函式中的關鍵字引數
- 該函式會回傳格式化好的訊息,準備供 AI 模型使用
這個系統建立了可重複使用、參數化的提示,在允許透過變數進行自訂的同時維持一致性。這對於複雜的工作流程特別有用,在這些工作流程中,您希望確保 AI 每次都能收到結構正確的指示。