MCP 伺服器會擴充 Agent 的能力。這正是它的價值所在,也是風險所在:你正在把一個第三方程式接入一個已經能夠讀取原始碼並執行命令的工作階段。
這份清單用於評估並非由你編寫的伺服器。內容並不特殊,只是把你對任何以自身權限執行的相依套件應有的謹慎,同樣套用到 MCP 伺服器上。
安裝之前
閱讀它實際會做什麼。 MCP 伺服器通常只是一個小程式。如果原始碼公開,工具定義一般集中在一個檔案中,十分鐘就能讀完。
檢查它要求哪些權限。 一個讀取行事曆的伺服器沒有理由要求檔案系統存取權。安裝時就索取過多權限,是你能得到的最明確警訊之一。
優先選擇能夠固定版本的伺服器。 鎖定的版本不會在你不知情時改變。任何在 Agent 工作階段中執行並自動更新的元件,都等於依照別人的時程,在沒有提示的情況下重新授予信任。
憑證
絕不要把長期有效的憑證貼進工具描述或提示詞。 提示詞中的內容會進入工作階段記錄,而記錄可能被保存、摘要或繼續傳遞。
把權杖權限縮到最低。 如果伺服器只需讀取一個程式碼儲存庫,就只授權這一個儲存庫。大多數 API 都支援這種限制,只是許多安裝說明沒有提到。
把密鑰放在環境變數中,不要寫進可能被提交的設定檔。 將 .env 加入 .gitignore 只是最低要求,但仍能避免最常見的錯誤。
Agent 會看到什麼
工具的描述會進入模型上下文,因此惡意伺服器可以把指令寫在其中。應把工具輸出視為不受信任的輸入,就像 Agent 取得的網頁一樣:工具回傳的是資料,不是需要服從的指令。
對於會取得遠端內容的伺服器,這一點尤其重要。伺服器回傳某個 URL 的內容時,也可能是在回傳攻擊者能夠控制的文字。
持續檢查
- 定期檢查已連接的伺服器,移除不再使用的項目
- 更新後留意權限變更
- 讓 Agent 只在任務所需的最小檔案系統範圍內執行
這份清單無法解決什麼
它無法讓一個不可信任的伺服器變得安全,也無法識別一個刻意編寫且偽裝良好的惡意伺服器。它能降低意外風險,而現實中的大多數問題正來自這些意外。