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 物件與 serversinputs 平級,其規則適用於所有沙盒化的伺服器。當沙盒化伺服器需要目前規則未允許的存取權限時,請檢查伺服器輸出中的錯誤訊息,並相應地更新 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, pickStringcommand "promptString"
id 在伺服器設定中參照時使用的唯一識別碼 "api-key", "database-url"

promptString 屬性

欄位 必填 說明 範例
description 使用者友善的提示文字 "GitHub Personal Access Token"
default 輸入的預設值 "https://"
password 隱藏輸入文字 (預設:false) API 金鑰與密碼請設為 true

pickString 屬性

欄位 必填 說明 範例
description 使用者友善的提示文字 "Select an environment"
options 供選擇的選項陣列。每個選項可以是字串,或是具有 labelvalue 屬性的物件。 ["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 在 VS Code 中開啟 在 VS Code Insiders 中開啟 此設定由組織層級管理。請聯絡您的管理員以進行變更。 管理哪些 MCP 伺服器可以在 VS Code 中使用。
chat.mcp.discovery.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定從其他應用程式自動發現 MCP 伺服器設定的功能。
chat.mcp.autostart 在 VS Code 中開啟 在 VS Code Insiders 中開啟 (實驗性功能) 當偵測到設定變更時,自動啟動 MCP 伺服器。
chat.mcp.serverSampling 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定哪些模型會暴露給 MCP 伺服器進行取樣(在背景中發出請求)。
chat.mcp.apps.enabled 在 VS Code 中開啟 在 VS Code Insiders 中開啟 (實驗性功能) 啟用或停用 MCP Apps,即由 MCP 伺服器提供的豐富使用者介面。
© . This site is unofficial and not affiliated with Microsoft.