MCP 配置參考
本文提供 MCP 伺服器配置檔案格式、相關命令以及 VS Code 中設定的參考。如需新增和管理 MCP 伺服器的資訊,請參閱新增和管理 MCP 伺服器。
配置檔案
MCP 伺服器配置儲存在 mcp.json JSON 檔案中。此檔案可以位於您的工作區 (.vscode/mcp.json) 或您的使用者設定檔中。VS Code 為配置檔案提供 IntelliSense。
配置結構
配置檔案有兩個主要區塊
-
"servers": {}:一個將伺服器名稱對應到其配置的物件。每個鍵是伺服器名稱,而值是伺服器配置物件。根據伺服器類型,需要不同的欄位。 -
"inputs": []:一個選用陣列,用於定義敏感資訊 (例如 API 金鑰) 的輸入變數。
您可以在伺服器配置中使用預定義變數,例如參考工作區資料夾 (${workspaceFolder})。
標準 I/O (stdio) 伺服器
對於透過標準輸入和輸出串流通訊的伺服器,請使用此配置。這是本機執行 MCP 伺服器最常見的類型。
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 伺服器連線類型 | "stdio" |
命令 |
是 | 啟動伺服器執行檔的命令。必須在您的系統路徑中可用,或包含其完整路徑。 | "npx"、"node"、"python"、"docker" |
引數 |
否 | 傳遞給命令的引數陣列 | ["server.py", "--port", "3000"] |
環境變數 |
否 | 伺服器的環境變數 | {"API_KEY": "${input:api-key}"} |
環境檔案 |
否 | 用於載入更多變數的環境檔案路徑 | "${workspaceFolder}/.env" |
sandboxEnabled |
否 | 在沙箱環境中執行伺服器。僅支援 macOS 和 Linux。 | true |
沙箱 |
否 | 沙箱伺服器的檔案系統和網路存取規則。僅在 sandboxEnabled 為 true 時適用。請參閱沙箱配置。 |
{"filesystem": {...}, "network": {...}} |
將 Docker 與 stdio 伺服器搭配使用時,請勿使用分離選項 (-d)。伺服器必須在前台執行才能與 VS Code 通訊。
本機伺服器配置範例
此範例顯示使用 npx 的基本本機 MCP 伺服器的最小配置。
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
沙箱配置
您可以為本機執行的 stdio MCP 伺服器啟用沙箱,以限制其對檔案系統和網路的存取。沙箱伺服器只能存取您明確允許的檔案系統路徑和網路網域。沙箱功能僅適用於 macOS 和 Linux。
若要啟用伺服器的沙箱,請在其配置中設定 "sandboxEnabled": true。然後,使用 sandbox 物件來定義檔案系統和網路存取規則。當沙箱伺服器需要目前規則不允許的存取權限時,請檢查伺服器輸出中的錯誤訊息並相應地更新 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 串流傳輸,如果 HTTP 不支援,則會退回至 SSE。
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 伺服器連線類型 | "http"、"sse" |
網址 |
是 | 伺服器的 URL | "https://:3000"、"https://api.example.com/mcp" |
標頭 |
否 | 用於驗證或配置的 HTTP 標頭 | {"Authorization": "Bearer ${input:api-token}"} |
除了透過網路可用的伺服器外,VS Code 還可以連接到在 Unix socket 或 Windows 具名管道上監聽 HTTP 流量的 MCP 伺服器,方法是指定 socket 或管道路徑,格式為 unix:///path/to/server.sock 或 Windows 上的 pipe:///pipe/named-pipe。您可以透過使用 URL 片段來指定子路徑,例如 unix:///tmp/server.sock#/mcp/subpath。
遠端伺服器配置範例
此範例顯示沒有驗證的遠端 MCP 伺服器的最小配置。
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
}
}
}
敏感資料的輸入變數
輸入變數可讓您為配置值定義預留位置,避免將 API 金鑰或密碼等敏感資訊直接硬編碼到伺服器配置中。
當您使用 ${input:variable-id} 參考輸入變數時,VS Code 會在伺服器首次啟動時提示您輸入值。然後該值會安全地儲存以供後續使用。在 VS Code 中了解更多關於輸入變數的資訊。
輸入變數屬性
| 欄位 | 必填 | 說明 | 範例 |
|---|---|---|---|
類型 |
是 | 輸入提示類型 | "promptString" |
id |
是 | 在伺服器配置中參考的唯一識別碼 | "api-key"、"database-url" |
description |
是 | 使用者友善的提示文字 | "GitHub 個人存取權杖" |
密碼 |
否 | 隱藏輸入的內容 (預設:false) | API 金鑰和密碼為 true |
帶有輸入變數的伺服器配置範例
此範例配置一個需要 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 模式,用於監控檔案變更以重新啟動 MCP 伺服器。debug:讓您可以為 MCP 伺服器設定偵錯工具。目前,VS Code 支援偵錯 Node.js 和 Python MCP 伺服器。
在 MCP 開發指南中了解更多關於 MCP 開發模式的資訊。
伺服器命名慣例
定義 MCP 伺服器時,請遵循以下伺服器命名慣例:
- 伺服器名稱使用 camelCase (駝峰式命名法),例如 "uiTesting" 或 "githubIntegration"
- 避免使用空白字元或特殊字元。
- 為每個伺服器使用唯一的名稱以避免衝突。
- 使用能反映伺服器功能或品牌的描述性名稱,例如 "github" 或 "database"。
命令
下表列出命令選擇區中可用的 MCP 相關命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
| 指令 | 說明 |
|---|---|
| MCP:新增伺服器 | 將新的 MCP 伺服器新增至您的工作區或使用者設定檔。 |
| MCP:瀏覽 MCP 伺服器 | 在「延伸模組」檢視中開啟 MCP 伺服器庫。 |
| MCP:瀏覽資源 | 瀏覽 MCP 伺服器提供的資源。 |
| MCP:從 Manifest 安裝伺服器 | 從 MCP manifest 檔案安裝 MCP 伺服器。 |
| MCP:列出伺服器 | 列出所有已配置的 MCP 伺服器並執行諸如啟動、停止、重新啟動或顯示輸出等操作。 |
| MCP:開啟遠端使用者配置 | 開啟遠端環境的 mcp.json 檔案。 |
| MCP:開啟使用者配置 | 開啟您使用者設定檔中的 mcp.json 檔案。 |
| MCP:開啟工作區資料夾 MCP 配置 | 開啟您的工作區中的 .vscode/mcp.json 檔案。 |
| MCP:重設快取工具 | 清除 MCP 伺服器的快取工具清單。當伺服器的工具發生變更時使用此功能。 |
| MCP:重設信任 | 重設 MCP 伺服器的信任決定,下次啟動時需要重新確認。 |
| MCP:顯示已安裝伺服器 | 顯示所有已安裝 MCP 伺服器的清單。 |
設定
如需 VS Code AI 設定的完整清單,請參閱AI 設定參考。以下設定專屬於 MCP 伺服器。
| 設定 | 說明 |
|---|---|
| chat.mcp.access 此設定由組織層級管理。請聯絡您的管理員以進行變更。 | 管理可以在 VS Code 中使用的 MCP 伺服器。 |
| chat.mcp.discovery.enabled | 配置從其他應用程式自動探索 MCP 伺服器配置。 |
| chat.mcp.autostart (實驗性) | 偵測到配置變更時自動啟動 MCP 伺服器。 |
| chat.mcp.serverSampling | 配置哪些模型會暴露給 MCP 伺服器進行取樣 (在背景中發出請求)。 |
| chat.mcp.apps.enabled (實驗性) | 啟用或停用 MCP 應用程式,這些應用程式是由 MCP 伺服器提供的豐富使用者介面。 |