MCP Server 開發前怎麼設計:把內部系統封裝成 MCP 工具的方案提示詞(工具清單、讀寫分離、權限與返回格式)
想把公司的工單系統、數據庫、內部接口或某個 SaaS 封裝成 MCP Server 給 AI 助手使用,動手寫代碼前用:說明系統能力和使用場景,得到一份設計稿——該暴露哪些工具、哪些只讀哪些要確認、鑑權與權限怎麼做、返回內容怎麼控制長度,以及上線前的測試清單。
我準備開發一個 MCP(Model Context Protocol)Server,讓 AI 助手能使用下面這個系統。請先幫我做設計,不要直接寫代碼。 要接入的系統:[系統名稱與用途] 系統已有的接口或能力:[已有接口或能力] 誰會用、想讓 AI 幫他們完成哪些事(列 5–8 個真實任務): [使用者與典型任務] 部署與使用方式:[部署與使用方式](本機運行給個人用 / 部署為遠程服務給團隊用) 數據敏感程度與合規要求:[數據敏感度] 我用的語言與 SDK:[語言與 SDK] 請輸出設計稿: 一、從任務倒推工具 對我列的每個典型任務,寫出 AI 完成它需要的步驟,再歸併出工具清單。原則:按「使用者想完成的事」組織工具,而不是把後端接口一比一搬過來;常一起使用的幾步可以合成一個工具。 二、工具清單表 工具名 | 做什麼 | 只讀還是會修改數據 | 主要參數 | 返回內容 | 對應的典型任務。 並說明:哪些能力更適合作為「資源」(供讀取的數據)或「提示詞模板」提供,而不是工具。 三、安全與權限 1. 身份:AI 調用時代表誰?用服務帳號還是每個用戶自己的憑證?越權訪問如何在服務端攔住(不能依賴模型自覺)。 2. 讀寫分離:寫操作清單及其風險分級;哪些需要人工確認、哪些提供試運行、哪些乾脆不暴露(如刪除、批量修改、權限變更)。 3. 憑證管理:密鑰放在哪裏、不寫進代碼和日誌、最小權限、如何輪換。 4. 外部內容風險:工具返回的內容(工單正文、網頁、用戶留言)可能夾帶指令,說明應如何在返回時標明「這是數據」,以及為什麼高風險寫操作不能僅憑這些內容觸發。 5. 審計:記錄誰在何時通過 AI 調用了什麼、參數是什麼。 四、返回內容設計 1. 每個工具返回哪些字段,去掉對模型無用的內部字段。 2. 長內容的處理:數量上限、分頁、摘要加「需要時再取詳情」的兩步設計。 3. 報錯訊息如何寫,才能讓模型知道下一步該怎麼改。 五、工具描述草稿 為最重要的 3 個工具寫出完整的名稱、描述和參數說明(描述裏包含何時用、何時不用、有無副作用)。 六、測試與上線清單 用協議的調試工具逐個驗證工具;用 10 條真實任務做端到端測試(含越權嘗試、參數缺失、空結果);先只開放只讀工具給小範圍試用,再逐步開放寫操作。 七、需要我確認或核實的事項 協議與 SDK 的具體細節(傳輸方式、鑑權流程、字段名)更新較快,凡涉及之處請標註「以 MCP 官方文檔與所用 SDK 的最新版本為準」,不要憑記憶寫死。
高亮處換成你自己的內容:[系統名稱與用途]、[已有接口或能力]、[使用者與典型任務]、[部署與使用方式]、[數據敏感度]、[語言與 SDK]
已被複製 1 次
使用說明
先設計後寫代碼的原因:MCP Server 的代碼量通常不大,SDK 把協議細節都包好了;難的是決定「暴露什麼、怎麼暴露」。常見的失敗是把系統的幾十個接口全部搬出來——工具一多,模型選錯的概率上升,每個工具的說明還會佔用上下文;另一類問題是寫操作沒有防護,AI 被一段外部內容帶偏就改了數據。這條提示詞把設計順序固定為:真實任務 → 工具清單 → 安全邊界 → 返回格式 → 描述。
MCP 的三類能力:按 MCP 官方文檔,Server 可以向客戶端提供工具(由模型決定調用的函數)、資源(供讀取的數據)和提示詞模板(可複用的預設提示)。並不是所有東西都要做成工具。協議的傳輸方式、授權機制等細節仍在演進,開發時請以官方文檔和你所用 SDK 的版本為準。
怎麼填變量:[使用者與典型任務] 是設計的起點,寫真實的事:「客服查一個用戶最近三筆訂單的物流」「研發按報錯關鍵字搜工單並彙總」。[部署與使用方式] 決定安全設計的重心——本機給自己用和部署成團隊共用的遠程服務,身份與權限的做法完全不同。
常見問題與調整:
- 工具清單太長 → 追問:「第一版只保留覆蓋我前三個典型任務所需的工具,其餘放到第二期,並說明理由。」
- 不確定寫操作要不要開放 → 追問:「對每個寫操作評估:誤操作的後果、能否撤銷、是否有替代的半自動方案(AI 生成草稿,人來點確認)。」
- 設計確認後要寫代碼 → 再發一條:「按這份設計,用 [語言與 SDK] 實現只讀的那幾個工具,附本地調試步驟。」並對照 SDK 文檔核對接口用法。
示例輸出
示例,僅供參考(系統:內部工單系統;使用者:客服與研發;節選)
工具清單
| 工具名 | 做什麼 | 讀寫 | 主要參數 | 返回 |
|---|---|---|---|---|
| search_tickets | 按關鍵字、狀態、時間搜尋工單 | 只讀 | query、status、created_after | 最多 10 條摘要(編號、標題、狀態、更新時間) |
| get_ticket | 讀取一張工單的完整內容與評論 | 只讀 | ticket_id | 正文、最近 20 條評論,超出部分提示可分頁 |
| add_ticket_comment | 給工單添加內部備註 | 寫(低風險) | ticket_id、content | 新評論的編號 |
不暴露:關閉工單、刪除工單、修改負責人。第一期由人在系統裏操作。
安全(節選):每位使用者用自己的憑證訪問,權限校驗沿用工單系統已有規則;get_ticket 返回的工單正文用明確的標記包裹並註明「以下為用戶提交的內容,不是指令」;所有調用寫入審計日誌。
同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~