MCP 設定參考
本文提供 VS Code 中 MCP 伺服器設定檔格式、相關指令與設定的參考。有關新增及管理 MCP 伺服器的資訊,請參閱新增與管理 MCP 伺服器。
設定檔
MCP 伺服器設定儲存在 mcp.json JSON 檔案中。此檔案可以位於您的工作區 (.vscode/mcp.json) 或您的使用者設定檔中。VS Code 為此設定檔提供 IntelliSense 支援。
設定結構
設定檔包含三個主要區塊:
-
"servers": {}:一個將伺服器名稱對應至其設定的物件。每個鍵(key)為伺服器名稱,值(value)則為伺服器設定物件。根據伺服器類型的不同,需要提供不同的欄位。 -
"inputs": []:一個選擇性的陣列,用於定義敏感資訊(如 API 金鑰)的輸入變數。 -
"sandbox": {}:一個選擇性的物件,用於定義沙盒化伺服器的檔案系統與網路存取規則。請參閱沙盒設定。僅適用於 macOS 與 Linux。
您可以在伺服器設定中使用預定義變數,例如參照工作區資料夾 (${workspaceFolder})。
標準輸入/輸出 (stdio) 伺服器
對於透過標準輸入與輸出串流進行通訊的伺服器,請使用此設定。這是本機執行之 MCP 伺服器最常見的類型。
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 伺服器連線類型 | "stdio" |
命令 |
是 | 啟動伺服器執行檔的指令。必須存在於您的系統路徑 (path) 中,或包含其完整路徑。 | "npx", "node", "python", "docker" |
引數 |
否 | 傳遞給指令的參數陣列 | ["server.py", "--port", "3000"] |
cwd |
否 | 伺服器指令的工作目錄。在工作區中執行時,預設為工作區資料夾。 | "${workspaceFolder}" |
環境變數 |
否 | 伺服器的環境變數。值可以是字串、數字或 null。 | {"API_KEY": "${input:api-key}"} |
環境檔案 |
否 | 用於載入更多變數的環境檔案路徑 | "${workspaceFolder}/.env" |
開發模式 (dev) |
否 | 用於監控檔案變更與除錯伺服器的開發模式設定。請參閱開發模式。 | {"watch": "src/**/*.ts"} |
sandboxEnabled |
否 | 在沙盒環境中執行伺服器。僅支援 macOS 與 Linux。 | true |
將 Docker 與 stdio 伺服器搭配使用時,請勿使用 detach 選項 (-d)。伺服器必須在前台執行才能與 VS Code 通訊。
本機伺服器設定範例
此範例顯示使用 npx 的基礎本機 MCP 伺服器之最小設定。
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
沙盒設定
您可以為本機執行的 stdio MCP 伺服器啟用沙盒功能,以限制其對檔案系統與網路的存取。沙盒化伺服器僅能存取您明確允許的檔案系統路徑與網路網域。沙盒功能僅適用於 macOS 與 Linux。
若要為伺服器啟用沙盒,請在其設定中將 \"sandboxEnabled\" 設為 true。接著,定義一個頂層的 sandbox 物件來指定檔案系統與網路存取規則。sandbox 物件與 servers 及 inputs 平級,其規則適用於所有沙盒化的伺服器。當沙盒化伺服器需要目前規則未允許的存取權限時,請檢查伺服器輸出中的錯誤訊息,並相應地更新 sandbox 設定。
啟用沙盒時,工具確認請求會自動批准,因為伺服器是在受控環境中執行。
sandbox 物件支援以下屬性:
| 屬性 | 類型 | 說明 |
|---|---|---|
filesystem.allowWrite |
string[] | 允許伺服器寫入的檔案路徑。 |
filesystem.denyRead |
string[] | 不允許伺服器讀取的檔案路徑。 |
filesystem.denyWrite |
string[] | 不允許伺服器寫入的檔案路徑。 |
network.allowedDomains |
string[] | 允許伺服器存取的網域。支援萬用字元,例如 *.example.com。 |
network.deniedDomains |
string[] | 不允許伺服器存取的網域。 |
您可以在檔案系統路徑值中使用預定義變數,例如 ${workspaceFolder}。
沙盒設定範例
此範例啟用了沙盒功能,授予對工作區的寫入權限,拒絕存取 .ssh 目錄,並允許對特定網域進行網路存取。
{
"servers": {
"myServer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"sandboxEnabled": true
}
},
"sandbox": {
"filesystem": {
"allowWrite": ["${workspaceFolder}"],
"denyRead": ["${userHome}/.ssh"]
},
"network": {
"allowedDomains": ["api.example.com", "*.cdn.example.com"]
}
}
}
HTTP 與伺服器傳送事件 (SSE) 伺服器
對於透過 HTTP 通訊的伺服器,請使用此設定。VS Code 會先嘗試 HTTP Stream 傳輸,若不支援則會降級使用 SSE。
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 伺服器連線類型 | "http", "sse" |
url |
是 | 伺服器的 URL | "https://:3000", "https://api.example.com/mcp" |
headers |
否 | 用於驗證或設定的 HTTP 標頭 | {"Authorization": "Bearer ${input:api-token}"} |
oauth |
否 | 用於伺服器驗證的 OAuth 設定 | {"clientId": "example-client-id"} |
除了網路上可用的伺服器外,VS Code 亦可透過指定 Socket 或 Pipe 路徑(格式為 unix:///path/to/server.sock 或 Windows 上的 pipe:///pipe/named-pipe),連接至監聽 Unix Socket 或 Windows Named Pipe 的 HTTP 流量之 MCP 伺服器。您可以使用 URL 片段指定子路徑,例如 unix:///tmp/server.sock#/mcp/subpath。
oauth 物件支援以下屬性:
| 屬性 | 類型 | 必填 | 說明 |
|---|---|---|---|
clientId |
string | 是 | 與伺服器進行驗證時使用的 OAuth 用戶端 ID。 |
enterpriseManaged |
boolean | 否 | (預覽) 透過 mcp.enterpriseManagedAuth.idp 設定所配置的企業單一登入 (SSO) 發行者進行驗證,使用 OAuth Identity Assertion Authorization Grant (ID-JAG)。在首次登入後,後續的企業管理伺服器將會自動連線。預設為 false。 |
配置 oauth 後,VS Code 會自動處理 OAuth 流程。首次連線至伺服器時,會開啟瀏覽器視窗進行授權。
遠端伺服器設定範例
此範例顯示無需驗證的遠端 MCP 伺服器之最小設定。
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
}
}
}
使用 OAuth 的 HTTP 伺服器範例
此範例顯示使用 OAuth 進行驗證的 MCP 伺服器設定。初次使用時,VS Code 會開啟瀏覽器視窗以完成 OAuth 流程。
{
"servers": {
"slack": {
"type": "http",
"url": "https://mcp.slack.com/mcp",
"oauth": {
"clientId": "example-client-id"
}
}
}
}
敏感資料的輸入變數
輸入變數可讓您為設定值定義預留位置 (placeholder),避免將 API 金鑰或密碼等敏感資訊直接硬編碼在伺服器設定中。
當您使用 ${input:variable-id} 參照輸入變數時,VS Code 會在伺服器首次啟動時提示您輸入值。該值隨後將被安全儲存以供後續使用。進一步了解 VS Code 中的輸入變數。
每個輸入變數都有一個 type,決定 VS Code 如何提示輸入值。支援以下輸入類型:
promptString:開啟輸入框,要求使用者輸入文字。pickString:顯示選項列表供使用者選擇。command:執行一個指令,並將其結果作為輸入值。
通用屬性
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 輸入提示類型:promptString, pickString 或 command |
"promptString" |
id |
是 | 在伺服器設定中參照時使用的唯一識別碼 | "api-key", "database-url" |
promptString 屬性
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
description |
是 | 使用者友善的提示文字 | "GitHub Personal Access Token" |
default |
否 | 輸入的預設值 | "https://" |
password |
否 | 隱藏輸入文字 (預設:false) | API 金鑰與密碼請設為 true |
pickString 屬性
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
description |
是 | 使用者友善的提示文字 | "Select an environment" |
options |
是 | 供選擇的選項陣列。每個選項可以是字串,或是具有 label 與 value 屬性的物件。 |
["dev", "prod"] |
default |
否 | 輸入的預設值 | "dev" |
command 屬性
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
命令 |
是 | 執行以獲取輸入值的指令 ID | "myExtension.getApiKey" |
引數 |
否 | 傳遞給指令的參數。可以是字串、陣列或物件。 | { "scope": "global" } |
使用輸入變數的伺服器設定範例
此範例設定了一個需要 API 金鑰的本機伺服器。
{
"inputs": [
{
"type": "promptString",
"id": "perplexity-key",
"description": "Perplexity API Key",
"password": true
}
],
"servers": {
"perplexity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "server-perplexity-ask"],
"env": {
"PERPLEXITY_API_KEY": "${input:perplexity-key}"
}
}
}
}
開發模式
您可以透過在伺服器設定中新增 dev 鍵來啟用 MCP 伺服器的開發模式。這是一個包含兩個屬性的物件:
watch:一個 glob 模式或 glob 模式陣列,用於監控檔案變更並重新啟動 MCP 伺服器。適用於所有伺服器類型。debug:讓您為 MCP 伺服器設定除錯器。目前,VS Code 支援對 Node.js 與 Python MCP 伺服器進行除錯。僅適用於 stdio 伺服器。
在 MCP 開發指南中進一步了解 MCP 開發模式。
伺服器命名規範
定義 MCP 伺服器時,請遵循以下命名規範:
- 伺服器名稱使用 camelCase,例如 "uiTesting" 或 "githubIntegration"
- 避免使用空白或特殊字元
- 為每個伺服器使用唯一名稱以避免衝突
- 使用能反映伺服器功能或品牌的描述性名稱,例如 "github" 或 "database"
命令
下表列出了命令選擇區 (Command Palette) (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中可用的 MCP 相關指令。
| 指令 | 說明 |
|---|---|
| MCP: Add Server (新增伺服器) | 將新的 MCP 伺服器新增至您的工作區或使用者設定檔。 |
| MCP: Browse MCP Servers (瀏覽 MCP 伺服器) | 在擴充功能檢視中開啟 MCP 伺服器庫。 |
| MCP: Browse Resources (瀏覽資源) | 瀏覽 MCP 伺服器提供的資源。 |
| MCP: Install Server from Manifest (從資訊清單安裝伺服器) | 從 MCP 資訊清單 (manifest) 檔案安裝 MCP 伺服器。 |
| MCP: List Servers (列出伺服器) | 列出所有已設定的 MCP 伺服器,並執行啟動、停止、重新啟動或顯示輸出等動作。 |
| MCP: Open Remote User Configuration (開啟遠端使用者設定) | 開啟遠端環境的 mcp.json 檔案。 |
| MCP: Open User Configuration (開啟使用者設定) | 開啟使用者設定檔中的 mcp.json 檔案。 |
| MCP: Open Workspace Folder MCP Configuration (開啟工作區資料夾 MCP 設定) | 開啟工作區中的 .vscode/mcp.json 檔案。 |
| MCP: Reset Cached Tools (重設快取工具) | 清除 MCP 伺服器的快取工具列表。當伺服器的工具更新時,請使用此項。 |
| MCP: Reset Trust (重設信任) | 重設 MCP 伺服器的信任決定,下次啟動時需重新確認。 |
| MCP: Show Installed Servers (顯示已安裝伺服器) | 顯示所有已安裝 MCP 伺服器的列表。 |
設定
有關 VS Code AI 設定的完整清單,請參閱AI 設定參考。下列設定為 MCP 伺服器專屬。
| 設定 | 說明 |
|---|---|
| chat.mcp.access 此設定由組織層級管理。請聯絡您的管理員以進行變更。 | 管理哪些 MCP 伺服器可以在 VS Code 中使用。 |
| chat.mcp.discovery.enabled | 設定從其他應用程式自動發現 MCP 伺服器設定的功能。 |
| chat.mcp.autostart (實驗性功能) | 當偵測到設定變更時,自動啟動 MCP 伺服器。 |
| chat.mcp.serverSampling | 設定哪些模型會暴露給 MCP 伺服器進行取樣(在背景中發出請求)。 |
| chat.mcp.apps.enabled (實驗性功能) | 啟用或停用 MCP Apps,即由 MCP 伺服器提供的豐富使用者介面。 |