1724 字
9 分鐘
VS Code MCP Server 設定前,先看懂 workspace、trust 與 sandbox

這幾天搜尋 VS Code 與 MCP 相關討論時,我看到不少人把重點放在「可以接哪些 MCP server」。但真正值得先釐清的是另一件事:你把 MCP server 加進 VS Code 時,它是裝在使用者層級、workspace 層級,還是會被團隊一起帶進 repo?

MCP 很方便,因為它能把檔案、資料庫、瀏覽器、API 這些工具接到 AI agent。但它也不是普通外掛。VS Code 官方文件提醒,本機 MCP servers 可以在你的機器上執行任意程式碼,因此來源、設定檔與信任決策都要看清楚。

VS Code 裡的 MCP server 是什麼#

在 VS Code 的 AI 功能裡,MCP servers 會提供工具、resources、prompts,甚至互動式 apps。常見例子像 Playwright MCP、GitHub MCP、資料庫工具或公司內部 API 工具。

對開發者來說,它的價值不是「多一個聊天功能」,而是讓 agent 能夠基於真實工作區做事。例如:

  • 用瀏覽器工具重現前端問題。
  • 讀取專案內特定 resources。
  • 呼叫內部 API 查狀態。
  • 透過 prompt template 固定團隊工作流。

但只要工具能動到本機或外部服務,就要把權限當成開發環境的一部分,而不是把它當成單純的 AI 小工具。

第一個選擇:User profile 還是 workspace#

VS Code 官方文件說 MCP 設定存在 mcp.json,位置可以是兩種:

位置適合情境風險
User profile你個人每個專案都會用的工具容易忘記某個全域 server 已啟用
.vscode/mcp.json團隊想共享同一組工具設定會進 repo,必須 review 設定內容

如果 MCP server 是純個人工具,例如你自己的 local memory 或瀏覽器測試工具,我會放 user profile。
如果是專案需要的工具,例如某個 dev container 內固定要用的測試 server,才考慮放 .vscode/mcp.json

關鍵是:**workspace 設定應該像 CI 設定一樣被 review。**不要因為它只是 JSON,就把 unknown command、API endpoint、credential 寫進 repo。

最小 mcp.json 長什麼樣子#

VS Code 的 MCP configuration reference 說,設定檔主要有三個區塊:

  • servers: server 名稱與啟動設定。
  • inputs: API key 這類敏感輸入。
  • sandbox: sandboxed server 的檔案系統與網路規則。

本機 stdio server 的最小概念大概像這樣:

{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}

實務上我不會直接把這段丟進 repo 就收工。至少要再問:

  • npx -y 會下載哪個 package?
  • package 來源是否可信?
  • 是否需要固定版本?
  • 是否需要 network access?
  • 是否會讀寫 workspace 外的資料?

MCP 設定不是只看能不能啟動,而是要看啟動後它能碰到什麼。

Trust prompt 不是形式#

VS Code 文件說,當你新增 workspace MCP server 或修改設定後,啟動前需要確認信任 server 與它的能力。第一次啟動時會出現 trust dialog;如果不信任,server 不會啟動,chat 也不會使用它提供的工具。

這個 prompt 值得點進去看設定,不要直接按掉。尤其是這幾種情況:

  1. commandnpxuvxdocker 或 shell script。
  2. args 裡有遠端 URL。
  3. envenvFile 會帶入金鑰。
  4. 設定檔來自別人的 PR。
  5. 你不清楚 server 會提供哪些 tools。

官方文件也提醒,如果你直接從 mcp.json 啟動 MCP server,就不會看到 trust prompt。這代表 review 設定檔本身更重要。

API key 不要硬寫進設定檔#

VS Code 的 MCP 文件明確提醒,不要 hardcode API keys,要使用 input variables 或 env files。這點跟一般後端設定一樣,但 MCP 更容易被忽略,因為它常常長得像「本機開發工具設定」。

我會用這個原則:

{
"servers": {
"internal-api": {
"type": "stdio",
"command": "node",
"args": ["./scripts/mcp/internal-api.js"],
"env": {
"INTERNAL_API_TOKEN": "${input:internal-api-token}"
}
}
},
"inputs": [
{
"id": "internal-api-token",
"type": "promptString",
"description": "Internal API token",
"password": true
}
]
}

這段只是示意,不代表你要照抄。重點是把 credential 從 repo 裡移出來,並讓輸入流程有機會使用安全儲存或互動式輸入。

macOS / Linux 可以考慮 sandbox#

VS Code 文件提到,macOS 和 Linux 上可以對本機 stdio MCP servers 開啟 sandbox,限制它能存取的檔案路徑與網路 domain。設定上可以用 "sandboxEnabled": true,再用 top-level sandbox 描述允許範圍。

這很適合用在「工具本身有用,但你不想讓它碰整台機器」的情境。例如只允許寫 workspace、只允許連到某個 API domain。

但要注意兩件事:

  • sandbox 不是 Windows 可用功能。
  • sandboxed server 的 tool calls 可能因為受控環境而被 auto-approved,設定範圍要更保守。

我的原則是先從最小權限開始。需要寫檔就只開 workspace;需要打 API 就只開必要 domain。能不用全域 filesystem access,就不要開。

接進團隊 repo 前的 review checklist#

如果有人送 PR 新增 .vscode/mcp.json,我會至少看這幾點:

檢查項目要問的問題
server 來源package、image 或 script 是否可信?
版本是否固定版本,還是每次抓 latest?
credentials有沒有硬寫 token、cookie、API key?
filesystem會不會讀寫 workspace 外的路徑?
network會連到哪些 domain?
trust團隊是否知道啟動後 server 提供哪些 tools?
logs出錯時要去哪裡看 MCP output?

VS Code 有 MCP: List ServersMCP: Open User ConfigurationMCP: Open Workspace Folder ConfigurationMCP: Reset Trust 這類命令可以輔助管理。設定完後,不要只問 agent 「能不能用」,也要確認 VS Code 裡看到的 server 狀態與 output log。

實際結論#

VS Code 支援 MCP servers 之後,AI coding workflow 會更容易接到真實工具。但越接近真實工具,越不能只靠「看起來能跑」判斷是否安全。

我的建議是:

  1. 個人工具放 user profile,團隊工具才放 workspace。
  2. .vscode/mcp.json 要像程式碼一樣 review。
  3. Trust prompt 要點開看設定,不要只按同意。
  4. API key 用 inputs 或 env file,不要硬寫。
  5. macOS / Linux 上能 sandbox 就先縮權限。

MCP 的價值在於讓 agent 做更具體的事。也正因為它能做事,權限邊界要在接入前就設好。

常見問題#

Q: VS Code 的 MCP 設定應該放 user profile 還是 .vscode/mcp.json#

A: 個人工具優先放 user profile,避免把個人習慣帶進 repo。只有當專案或團隊真的需要共享同一組 MCP server 設定時,才放 .vscode/mcp.json,並把它納入 code review。

Q: MCP server trust prompt 可以直接按同意嗎?#

A: 不建議。VS Code 官方文件提醒本機 MCP servers 可以在你的機器上執行任意程式碼。按同意前至少要看 commandargsenv、來源 package、是否需要網路與檔案系統權限。

Q: VS Code MCP sandbox 可以取代 review 嗎?#

A: 不行。sandbox 可以在 macOS / Linux 上限制本機 stdio MCP server 的檔案與網路存取,但它不是所有平台都有,也不會替你判斷 package 來源是否可信。review 設定與縮小權限仍然要做。

參考資料:

Visual Studio Code Docs:Add and manage MCP servers in VS Code

Visual Studio Code Docs:MCP configuration reference

Visual Studio Code Docs:Security

VS Code MCP Server 設定前,先看懂 workspace、trust 與 sandbox
https://laplusda.com/posts/vscode-mcp-server-trust-checklist/
作者
Zero
發佈於
2026-07-09
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。