← 新聞追蹤

裝了 MCP 的第三天,AI 問我「這個資料夾可以動嗎」:我這才開始學權限、審批與除錯

來源:業州愚公 | 2026年11月5日

作者:業州愚公

業州愚公在使用MCP的第三天,遇到了一個意外的情況,AI詢問是否可以動某個資料夾,業州愚公在按下允許後才意識到自己從未設置過邊界。這個事件讓業州愚公開始學習MCP的三層權限、審批彈窗,還有使用官方Inspector排查錯誤的五步驟。業州愚公在這篇文章中分享了自己使用MCP的經驗,包括裝置MCP、串接伺服器、撰寫提示詞等。這個事件也讓業州愚公更加了解MCP的功能和設定,包括如何設置權限、審批和排查錯誤。

編輯評論 / Editor's Note

這個事件凸顯了人工智慧系統在實際應用中可能遇到的問題和挑戰,尤其是在權限管理和使用者溝通方面。使用者在操作AI系統時,需要對系統的權限和限制有清晰的理解,以避免意外的結果。同時,這也反映出AI系統的設計和使用指南需要更加完善和易於理解。

菜鳥之友系列:《AI 工具實操與提示詞》・工具篇作者:業州愚公

一、那聲「可以嗎」,其實是最後一道門

前面四篇,我們一路把 MCP 裝上、把幾個伺服器串起來、自己寫了一個最小的、又補上了 resources 和 prompts。到這個階段,AI 手上的活已經很實在了:能讀報表、能寫檔案、能跑指令。

然後有一天,它彈出一行字問你:「即將執行某個操作,是否允許?」

大多數人的反應是看一眼、按允許,然後繼續。我也是。直到有一次,它要動的是一個我早就不記得裡面裝了什麼的資料夾,我才發現——這聲「可以嗎」是我最後一道門,而我根本沒看清楚門後面是什麼。

MCP 把「讓 AI 做事」做得太順了,順到你會忘記:它做事,用的是你的權限。這一篇不談怎麼再多接一個工具,談的是接之前怎麼把邊界畫好,以及它不聽話時怎麼一步步查。

二、先把「權限」拆成三層

權限這件事,拆成三層看就清楚了:

層次 誰決定 管的是什麼 出事的典型樣子
系統層你的作業系統帳號這個進程能碰哪些檔案、能不能連外網用管理員身分開客戶端,伺服器也跟著有
伺服器層啟動時給的參數它被允許處理哪個目錄、連哪個資料庫只給了一個資料夾,它就只在那裡活動
呼叫層客戶端的審批彈窗每一次工具呼叫要不要放行你按了「永遠允許」,之後不再問你

三層是疊加的,不是三選一。系統層最寬,寬到你幾乎不會察覺;伺服器層是你唯一能真正收窄的地方;呼叫層則是最後的人工關卡。多數人只顧第三層——彈窗按得很勤,前兩層開到最大。

彈窗是剎車,不是護欄——護欄得在安裝時就立好。

三、最小權限:把它關進一個抽屜

具體怎麼做?記住一個動作:只給它一個抽屜,不給整個房間。

以官方的 filesystem 伺服器為例,啟動時要把允許存取的目錄當作參數傳進去,它就只能在那個範圍裡讀寫,範圍外的路徑會被拒絕。這是 MCP 伺服器設計裡最值得學的一點:權限不是靠「它很乖」,是靠「它根本拿不到」。

很多教學為了省事,直接把整個家目錄或整顆 D 槽丟進去。跑起來當然順,什麼都找得到;但這等於把家裡所有鑰匙串成一把交出去,真出事時你連它碰過什麼都說不清。

實務上我自己是這樣做的:

按任務開抽屜。 做報表的伺服器只給報表目錄,碰不到照片和合約。要處理另一批檔案,就再開一個抽屜,而不是把抽屜換成整層樓。

抽屜要能隨時收回。 專案結束就把那條設定註解掉或刪掉。留著不用的伺服器,等於留著一把沒人管的鑰匙。

能讀就別給寫。 只是查資料的場景,就別接一個有寫入能力的伺服器。真需要寫,也盡量讓它寫到一個專門的輸出目錄。

另外,MCP 規格裡還有一個叫 roots 的機制:客戶端可以告訴伺服器「我這次的工作範圍是這幾個目錄」,伺服器應該尊重這個邊界。它比啟動參數靈活,適合一個伺服器服務多個專案。但別把它當成安全機制——它是約定,不是鎖。真正的鎖,還是啟動時那個目錄參數。

四、審批彈窗怎麼看:提示只是提示

彈窗上通常顯示工具名稱、參數。新手最容易犯的錯,是把「永遠允許」當成省事按鈕。

我的規矩很簡單:凡是會改變東西的,一律不開永遠允許。

什麼算「會改變東西」?MCP 規格給工具加了幾個標註:

readOnlyHint——只讀,理論上不會改動任何東西,例如查匯率、讀檔案。

destructiveHint——可能造成破壞性改動,例如刪檔、覆蓋、執行刪除語句。

idempotentHint——重複執行結果一樣,重試比較安全。

openWorldHint——會跟外部世界打交道,例如上網抓資料、呼叫第三方服務。

重點在最後這句:這些都只是 hint(提示),不是強制。 伺服器可以標錯,也可以乾脆不標;客戶端可以參考,也可以完全不理。所以看到「只讀」兩個字就放心按下去,是把安全寄託在別人的自覺上。

我自己的習慣是看參數,而不是看標籤:這次呼叫帶了路徑嗎?帶了刪除或覆蓋這類動詞嗎?參數裡有我沒見過的網址嗎?三個問題問完,通常三秒鐘就有答案。

五、MCP Inspector:不上線也能先試

前面講的都是「該怎麼設」,真遇到問題,你需要的是「它到底怎麼了」。官方有一個專門的排查工具,叫 MCP Inspector,不必裝進日常用的客戶端,可以單獨跑起來,在瀏覽器裡直接看它提供了什麼、呼叫會不會出錯。

最簡單的用法是一行指令,把你要測的伺服器指令接在後面:

npx @modelcontextprotocol/inspector node ./mcp-server/index.js

跑完之後,瀏覽器會打開一個介面。介面細節各版本略有不同,以官方最新版本為準,但大致的分區是固定的:

連線區。 填入啟動指令、參數、環境變數。這一塊等於把客戶端裡那條設定單獨拿出來試,出問題時第一個要看的就是它。

能力列表。 左側會列出這個伺服器宣告的 tools、resources、prompts。這裡有一個很實用的判斷:如果列表是空的,問題不在 AI,而在伺服器根本沒把東西註冊出去。

呼叫面板。 選一個工具、填好參數、按執行,直接看回傳的內容。這一步能回答掉大部分「AI 說它不能用」的疑問:是伺服器回錯了,還是 AI 沒選對工具,一眼就分曉。

通知與日誌區。 伺服器自己吐出來的訊息會顯示在這裡。這是最容易被忽略、卻往往最有價值的一塊。

有了它,你就不必在「改設定、重開客戶端、問 AI、猜」這個循環裡轉。先讓 Inspector 跑通,再接回客戶端——順序反了,你會同時面對兩個未知。

六、五個常見故障,對照著查

症狀 常見原因 怎麼查
顯示已連接,工具列表卻是空的伺服器起來了但沒註冊任何能力,或初始化階段就報錯用 Inspector 連一次,看能力列表與日誌
一啟動就退出,完全沒訊息啟動指令或路徑不對、相依套件沒裝把同一行指令貼到終端機手動跑,看它自己報什麼
明明連上了,一呼叫就斷程式往標準輸出印了非協定內容見下方單獨說明
呼叫一直轉圈,最後逾時這次要做的事太久,超過客戶端等待時間拆成小步驟,先確認是不是單次耗時的問題
讀到的檔案亂碼或缺字編碼不一致換一個小檔案對照,確認是內容問題還是傳輸問題

其中「一呼叫就斷」值得單獨說。stdio 這種傳輸方式下,標準輸出就是協定通道,伺服器與客戶端之間的所有訊息都走這條線。所以你的程式只要往標準輸出多印一行 console.log、一個啟動橫幅,整條協定就被這行雜訊污染,客戶端解析失敗,看起來就像「連上了但完全不理人」。

正解是把日誌改走標準錯誤(stderr)。這條我在寫最小伺服器時踩過一次,排查了一下午——它看起來完全不像錯誤,只是「沒有反應」。

七、把除錯變成三個固定動作

踩過幾次之後,我現在遇到「AI 說它不能用」,只做三件事,順序固定:

第一步,先問它有沒有那個能力。 讓 AI 列出它看到的工具。如果連名字都沒有,問題在連接層,不在 AI 的判斷。

第二步,用 Inspector 直接呼叫一次。 同樣的參數,繞過 AI 直接打。成功,代表是 AI 選錯工具或參數填錯;失敗,代表伺服器本身有問題,回頭看日誌。

第三步,把範圍縮到最小。 換一個最簡單的參數、一個最小的檔案,能過就逐步加回去。這一步很笨,但幾乎每次有效——大部分問題不是「壞了」,而是某個輸入觸發了沒寫好的分支。

這三步的共同點是:每次只改變一個變數。 一邊改設定一邊改參數,就算最後通了,你也不知道是哪一步通的。

八、交鑰匙之前,先立三條規矩

回到最開始那個問題:怎麼敢把鑰匙交出去?

我的答案不是「找一個很安全的伺服器」,而是三條自己守得住的規矩。

規矩一:一次只加一個伺服器。 加完就跑一次 Inspector,確認能力列表、試一次呼叫。一次加三個,出問題連是哪個在搗亂都不知道。

規矩二:設定檔裡不放長期有效的密鑰。 環境變數寫在客戶端設定裡,本質上就是明文;設定檔同步到雲端或丟進版本庫,等於把密鑰一起送出去。能換短期憑證就換,不能就至少別讓它進版本庫。

規矩三:破壞性的工具單獨開。 刪檔、改資料庫、發送對外訊息這一類,能拆就拆成另一個伺服器,平時不啟用。真要用的時候再開,用完關掉——這比任何彈窗都可靠。

做完這三條,那個審批彈窗就不再是每次盲目按掉的干擾,而是一道你真的看得懂、也真的會拒絕的門。

權限這件事說到底並不複雜:能給一個抽屜就別給一整層樓,能讓它讀就別讓它寫,能每次問就別開永遠允許。 剩下的,交給 Inspector 和日誌。

工具推薦隨身機器人(新用戶免費試用 7 天)

照著做卡住的地方——伺服器起不來、設定貼上去沒反應、日誌看半天看不出所以然——不用自己悶頭查一下午。隨身機器人可以直接幫你看報錯、給你排查順序,新用戶免費試用 7 天。

下一篇預告: 換一台新電腦,半天重建整套工作環境——把 MCP 設定、專案知識和常用問法攢成一個可攜帶的入門包,複製過去就能開工。

業州愚公 | SY 視野(sylogs.com)原創內容,轉載請註明出處。