現已釋出!閱讀關於 11 月新增功能和修復的內容。

在 VS Code 中使用 MCP 伺服器

模型上下文協議 (MCP) 是一種開放標準,允許 AI 模型透過統一的介面使用外部工具和服務。在 VS Code 中,MCP 伺服器提供 工具 來執行檔案操作、資料庫或與外部 API 互動等任務。

MCP 伺服器是擴充套件 VS Code 中聊天工具的三種方式之一,另外兩種是內建工具和擴充套件貢獻的工具。瞭解更多關於 工具型別 的資訊。

本文件將引導您完成在 Visual Studio Code 中設定 MCP 伺服器並使用其功能。

MCP 如何工作?

MCP 遵循客戶端-伺服器架構

  • MCP 客戶端(如 VS Code)連線到 MCP 伺服器,並代表 AI 模型請求操作
  • MCP 伺服器提供一個或多個工具,這些工具透過定義良好的介面公開特定功能
  • 模型上下文協議定義了客戶端和伺服器之間通訊的訊息格式,包括工具發現、呼叫和響應處理

例如,檔案系統 MCP 伺服器可能提供讀取、寫入或搜尋檔案和目錄的工具。GitHub 的 MCP 伺服器提供列出儲存庫、建立拉取請求或管理問題的工具。MCP 伺服器可以在本地計算機上執行,也可以遠端託管,VS Code 支援這兩種配置。

透過標準化這種互動,MCP 消除了每個 AI 模型和每個工具之間進行自定義整合的需求。這樣,您只需將新的 MCP 伺服器新增到工作區即可擴充套件 AI 助手的能力。瞭解更多關於 模型上下文協議規範 的資訊。

VS Code 中支援的 MCP 功能

VS Code 支援以下 MCP 功能

  • 傳輸:

    • 本地標準輸入/輸出 (stdio)
    • 流式 HTTP (http)
    • 伺服器傳送事件 (sse) - 相容支援。
  • 功能:

    • 工具
    • 提示
    • 資源
    • 引導
    • 取樣
    • 認證
    • 伺服器指令
注意

MCP 在 VS Code 中的支援從 VS Code 1.102 開始普遍可用。

先決條件

新增 MCP 伺服器

注意

本地 MCP 伺服器可以在您的計算機上執行任意程式碼。請僅新增來自受信任來源的伺服器,並在啟動伺服器之前檢視釋出者和伺服器配置。首次啟動 MCP 伺服器時,VS Code 會提示您確認您 信任該 MCP 伺服器。閱讀有關在 VS Code 中使用 AI 的 安全文件,以瞭解相關影響。

從 GitHub MCP 伺服器登錄檔新增 MCP 伺服器

您可以透過 VS Code 中的“擴充套件”檢視直接從 GitHub MCP 伺服器登錄檔 安裝 MCP 伺服器。您可以選擇將 MCP 伺服器安裝到您的 使用者配置檔案 或當前工作區中。

從“擴充套件”檢視安裝 MCP 伺服器

  1. 透過 chat.mcp.gallery.enabled 設定啟用 MCP 伺服器相簿。

  2. 開啟“擴充套件”檢視 (⇧⌘X (Windows, Linux Ctrl+Shift+X))

  3. 在搜尋欄位中輸入 @mcp 以顯示 MCP 伺服器列表,或從命令面板執行 **MCP: 瀏覽伺服器** 命令。

    VS Code 從 GitHub MCP 伺服器登錄檔檢索 MCP 伺服器列表。

  4. 安裝 MCP 伺服器

    • 在您的使用者配置檔案中:選擇 **安裝**

    • 在您的工作區中:右鍵單擊 MCP 伺服器,然後選擇 **安裝到工作區**

  5. 要檢視 MCP 伺服器的詳細資訊,請在列表中選擇該 MCP 伺服器。

新增 MCP 伺服器的其他選項

您還有其他幾種在 VS Code 中新增 MCP 伺服器的選項

將 MCP 伺服器新增到工作區的 `mcp.json` 檔案

如果您想為特定專案配置 MCP 伺服器,可以將伺服器配置新增到工作區中的 .vscode/mcp.json 檔案。這樣,您就可以與專案團隊共享相同的 MCP 伺服器配置。

重要

請務必避免將 API 金鑰和其他憑據等敏感資訊硬編碼,而應使用輸入變數或環境檔案。

將 MCP 伺服器新增到您的工作區

  1. 在工作區中建立 .vscode/mcp.json 檔案。

  2. 在編輯器中選擇 **新增伺服器** 按鈕以新增新伺服器的模板。VS Code 為 MCP 伺服器配置檔案提供 IntelliSense。

    以下示例展示瞭如何配置 GitHub 遠端 MCP 伺服器。瞭解更多關於 VS Code 中的 MCP 配置格式

    {
      "servers": {
        "github-mcp": {
          "type": "http",
          "url": "https://api.githubcopilot.com/mcp"
        }
      }
    }
    
  3. 或者,從命令面板執行 **MCP: 新增伺服器** 命令,選擇要新增的 MCP 伺服器型別,然後提供伺服器資訊。接下來,選擇 **工作區** 將伺服器新增到工作區中的 .vscode/mcp.json 檔案。

將 MCP 伺服器新增到您的使用者配置

要為所有工作區配置 MCP 伺服器,您可以將伺服器配置新增到您的使用者 配置檔案。這樣,您就可以在多個專案之間重用相同的伺服器配置。

將 MCP 伺服器新增到您的使用者配置

  • 從命令面板執行 **MCP: 新增伺服器** 命令,提供伺服器資訊,然後選擇 **全域性** 將伺服器配置新增到您的配置檔案。

  • 或者,執行 **MCP: 開啟使用者配置** 命令,這將開啟使用者配置檔案中的 mcp.json 檔案。然後,您可以手動將伺服器配置新增到該檔案中。

當您使用多個 VS Code 配置檔案時,這允許您根據活動配置檔案在不同的 MCP 伺服器配置之間切換。例如,可以在 Web 開發配置檔案中配置 Playwright MCP 伺服器,但在 Python 開發配置檔案中不配置。

MCP 伺服器將在其配置的位置執行。如果您連線到 遠端 並且希望伺服器在遠端計算機上執行,則應在遠端設定(**MCP: 開啟遠端使用者配置**)或工作區設定中定義它。在使用者設定中定義的 MCP 伺服器始終在本地執行。

將 MCP 伺服器新增到開發容器

MCP 伺服器可以透過 devcontainer.json 檔案在開發容器中進行配置。這允許您將 MCP 伺服器配置包含在容器化開發環境的一部分。

要在開發容器中配置 MCP 伺服器,請將伺服器配置新增到 customizations.vscode.mcp 部分

{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
  "customizations": {
    "vscode": {
      "mcp": {
        "servers": {
          "playwright": {
            "command": "npx",
            "args": ["-y", "@microsoft/mcp-server-playwright"]
          }
        }
      }
    }
  }
}

建立開發容器時,VS Code 會自動將 MCP 伺服器配置寫入遠端 mcp.json 檔案,從而在容器化開發環境中可用。

自動發現 MCP 伺服器

VS Code 可以自動檢測並重用來自其他應用程式(如 Claude Desktop)的 MCP 伺服器配置。

透過 chat.mcp.discovery.enabled 設定配置自動發現。從這些工具中選擇一個或多個工具來發現 MCP 伺服器配置。

從命令列安裝 MCP 伺服器

您還可以使用 VS Code 命令列介面將 MCP 伺服器新增到您的使用者配置檔案或工作區。

要將 MCP 伺服器新增到您的使用者配置檔案,請使用 --add-mcp VS Code 命令列選項,並以 {\"name\":\"server-name\",\"command\":...} 形式提供 JSON 伺服器配置。

code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"

在聊天中使用 MCP 工具

新增 MCP 伺服器後,您就可以在聊天中使用它提供的工具。MCP 工具在 VS Code 中的工作方式與其他工具類似:當使用代理時,它們可以被自動呼叫,或者在您的提示中顯式引用。

在聊天中使用 MCP 工具

  1. 開啟 **聊天** 檢視 (⌃⌘I (Windows, Linux Ctrl+Alt+I))。

  2. 開啟工具選擇器,選擇代理允許使用的工具。MCP 工具按 MCP 伺服器分組。

    提示

    當您建立 自定義提示自定義代理 時,您還可以指定可以使用哪些 MCP 工具。

  3. 使用代理時,工具會根據您的提示按需自動呼叫。

    例如,安裝 GitHub MCP 伺服器,然後提問“列出我的 GitHub 問題”。

    Screenshot of the Chat view, showing an MCP tool invocation when using agents.

  4. 您還可以透過輸入 # 後跟工具名稱來顯式引用 MCP 工具。

  5. 在收到提示時,檢視並批准工具呼叫。

    Screenshot of the MCP tool confirmation dialog in chat.

瞭解更多關於 在聊天中使用工具 的資訊,包括如何管理工具批准、使用工具選擇器以及建立工具集。

清除快取的 MCP 工具

當 VS Code 首次啟動 MCP 伺服器時,它會發現伺服器的功能和工具。然後,您可以在聊天中使用 這些工具。VS Code 會快取 MCP 伺服器的工具列表。要清除快取的工具,請在命令面板中使用 **MCP: 重置快取工具** 命令。

使用 MCP 資源

MCP 伺服器可以直接訪問您可以作為聊天提示上下文的資源。例如,檔案系統 MCP 伺服器可以讓您訪問檔案和目錄,或者資料庫 MCP 伺服器可以提供對資料庫表的訪問。

將 MCP 伺服器中的資源新增到聊天提示

  1. 在“聊天”檢視中,選擇 **新增上下文** > **MCP 資源**

  2. 從列表中選擇資源型別,並提供可選的資源輸入引數。

    Screenshot of the MCP resource Quick Pick, showing resource types provided by the GitHub MCP server.

要檢視 MCP 伺服器可用資源的列表,請使用 **MCP: 瀏覽資源** 命令,或使用 **MCP: 列出伺服器** > **瀏覽資源** 命令來檢視特定伺服器的資源。

MCP 工具可以在其響應中返回資源。您可以選擇 **儲存** 或將資源拖放到“資源管理器”檢視中來檢視或儲存這些資源到您的工作區。

使用 MCP 提示

MCP 伺服器可以為常見任務提供預配置的提示,您可以使用斜槓命令在聊天中呼叫它們。要在聊天中呼叫 MCP 提示,請在聊天輸入欄位中輸入 /,後跟提示名稱,格式為 mcp.servername.promptname

可選地,MCP 提示可能會要求您提供額外的輸入引數。

Screenshot of the Chat view, showing an MCP prompt invocation and a dialog asking for additional input parameters.

隨著您新增更多 MCP 伺服器,工具列表可能會變長。您可以將相關工具分組到工具集中,以便於管理和引用。

瞭解更多關於如何 建立和使用工具集

管理已安裝的 MCP 伺服器

您可以對已安裝的 MCP 伺服器執行各種操作,例如啟動或停止伺服器、檢視伺服器日誌、解除安裝伺服器等。

要對 MCP 伺服器執行這些操作,請使用以下任一選項

  • 右鍵單擊“已安裝的 MCP 伺服器”部分中的伺服器或選擇齒輪圖示

    Screenshot showing the MCP servers in the Extensions view.

  • 開啟 mcp.json 配置檔案,並在編輯器內(程式碼透鏡)訪問操作

    MCP server configuration with lenses to manage server.

    執行 **MCP: 開啟使用者配置** 或 **MCP: 開啟工作區資料夾配置** 命令以訪問 MCP 伺服器配置。

  • 從命令面板執行 **MCP: 列出伺服器** 命令並選擇一個伺服器

    Screenshot showing the actions for an MCP server in the Command Palette.

自動啟動 MCP 伺服器

當您新增 MCP 伺服器或更改其配置時,VS Code 需要(重新)啟動伺服器以發現它提供的工具。

您可以透過使用 chat.mcp.autostart 設定(實驗性)來配置 VS Code 在檢測到配置更改時自動重新啟動 MCP 伺服器。

或者,從“聊天”檢視手動重新啟動 MCP 伺服器,或透過從 MCP 伺服器列表 中選擇重新啟動操作來重新啟動。

Screenshot showing the Refresh button in the Chat view.

查詢 MCP 伺服器

MCP 仍然是一個相對較新的標準,生態系統正在快速發展。隨著越來越多的開發人員採用 MCP,您可以期待看到越來越多的伺服器和工具可用於整合到您的專案中。

GitHub MCP 伺服器登錄檔是出發的好地方。您可以直接從 VS Code 中的“擴充套件”檢視訪問該登錄檔。

MCP 的 官方伺服器儲存庫 提供了官方和社群貢獻的伺服器,展示了 MCP 的多功能性。您可以探索用於各種功能的伺服器,例如檔案系統操作、資料庫互動和 Web 服務。

VS Code 擴充套件也可以貢獻 MCP 伺服器,並在擴充套件安裝過程中進行配置。請檢視 Visual Studio Marketplace 中提供 MCP 伺服器支援的擴充套件。

MCP 伺服器信任

MCP 伺服器可以在您的計算機上執行任意程式碼。請僅新增來自受信任來源的伺服器,並在啟動伺服器之前檢視釋出者和伺服器配置。閱讀有關在 VS Code 中使用 AI 的 安全文件,以瞭解相關影響。

當您將 MCP 伺服器新增到工作區或更改其配置時,您需要在啟動伺服器之前確認您信任該伺服器及其功能。首次啟動伺服器時,VS Code 會顯示一個對話方塊以確認您信任該伺服器。單擊對話方塊中的 MCP 伺服器連結,在單獨的視窗中檢視 MCP 伺服器配置。

Screenshot showing the MCP server trust prompt.

如果您不信任該伺服器,它將不會啟動,聊天請求將不使用該伺服器提供的工具繼續。

您可以透過執行命令面板中的 **MCP: 重置信任** 命令來重置 MCP 伺服器的信任。

注意

如果您直接從 mcp.json 檔案啟動 MCP 伺服器,則不會提示您信任該伺服器配置。

跨裝置同步 MCP 伺服器

啟用 設定同步 後,您可以跨裝置同步設定和配置,包括 MCP 伺服器配置。這樣,您就可以維護一致的開發環境,並在所有裝置上訪問相同的 MCP 伺服器。

要啟用 MCP 伺服器與設定同步的同步,請從命令面板執行 **設定同步: 配置** 命令,並確保 **MCP 伺服器** 包含在同步配置列表中。

配置格式

MCP 伺服器使用 JSON 檔案 (mcp.json) 進行配置,該檔案定義了兩個主要部分:伺服器定義和可選的敏感資料輸入變數。

MCP 伺服器可以使用不同的傳輸方式進行連線。根據您的伺服器如何通訊選擇合適的配置。

配置結構

配置檔案包含兩個主要部分

  • "servers": {} - 包含 MCP 伺服器列表及其配置
  • "inputs": [] - 可選佔位符,用於敏感資訊(如 API 金鑰)

您可以在伺服器配置中使用 預定義變數,例如引用工作區資料夾 (${workspaceFolder})。

標準 I/O (stdio) 伺服器

使用此配置來處理透過標準輸入輸出流進行通訊的伺服器。這是本地執行的 MCP 伺服器最常見的型別。

欄位 必需 描述 示例
type 伺服器連線型別 "stdio"
command 用於啟動伺服器可執行檔案的命令。必須在系統路徑中可用或包含其完整路徑。 "npx", "node", "python", "docker"
args 傳遞給命令的引數陣列 ["server.py", "--port", "3000"]
env 伺服器的環境變數 {"API_KEY": "${input:api-key}"}
envFile 用於載入更多變數的環境檔案路徑 "${workspaceFolder}/.env"
注意

使用 Docker 和 stdio 伺服器時,請勿使用分離選項 (-d)。伺服器必須在前臺執行才能與 VS Code 通訊。

本地伺服器配置示例

此示例顯示了使用 npx 的基本本地 MCP 伺服器的最小配置

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

HTTP 和伺服器傳送事件 (SSE) 伺服器

使用此配置來處理透過 HTTP 進行通訊的伺服器。VS Code 首先嚐試 HTTP 流傳輸,如果不支援 HTTP,則回退到 SSE。

欄位 必需 描述 示例
type 伺服器連線型別 "http", "sse"
url 伺服器的 URL "https://:3000", "https://api.example.com/mcp"
headers 用於身份驗證或配置的 HTTP 標頭 {"Authorization": "Bearer ${input:api-token}"}

除了網路上的伺服器之外,VS Code 還可以透過在 Unix 套接字或 Windows 命名管道上監聽 HTTP 流量的 MCP 伺服器進行連線,方法是在 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 中 輸入變數 的資訊。

輸入變數屬性

欄位 必需 描述 示例
type 輸入提示的型別 "promptString"
id 用於在伺服器配置中引用的唯一識別符號 "api-key", "database-url"
描述 使用者友好的提示文字 "GitHub Personal Access Token"
password 隱藏輸入的字元(預設值: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}"
      }
    }
  }
}

伺服器命名約定

定義 MCP 伺服器時,請遵循伺服器名稱的以下命名約定

  • 伺服器名稱使用駝峰式命名法,例如“uiTesting”或“githubIntegration”
  • 避免使用空格或特殊字元
  • 為每個伺服器使用唯一的名稱以避免衝突
  • 使用描述性名稱,反映伺服器的功能或品牌,例如“github”或“database”

排查和除錯 MCP 伺服器

MCP 輸出日誌

當 VS Code 遇到 MCP 伺服器問題時,會在“聊天”檢視中顯示錯誤指示器。

MCP Server Error

在“聊天”檢視中選擇錯誤通知,然後選擇 **顯示輸出** 選項以檢視伺服器日誌。或者,從命令面板執行 **MCP: 列出伺服器**,選擇伺服器,然後選擇 **顯示輸出**。

MCP Server Error Output

除錯 MCP 伺服器

您可以透過向 MCP 伺服器配置新增 dev 鍵來啟用 MCP 伺服器的*開發模式*。這是一個包含兩個屬性的物件

  • watch:一個檔案 glob 模式,用於監視檔案更改以重新啟動 MCP 伺服器。
  • debug:允許您設定 MCP 伺服器的偵錯程式。目前,VS Code 支援除錯 Node.js 和 Python MCP 伺服器。

在 MCP 開發指南中瞭解更多關於 MCP 開發模式 的資訊。

集中控制 MCP 訪問

組織可以透過 GitHub 策略集中管理對 MCP 伺服器的訪問。瞭解更多關於 企業管理 MCP 伺服器 的資訊。

常見問題

我能控制使用哪些 MCP 工具嗎?

  • 使用代理時,在“聊天”檢視中選擇 **工具** 按鈕,然後根據需要切換特定工具的開關。
  • 透過使用 **新增上下文** 按鈕或輸入 #,將特定工具新增到您的提示中。
  • 為了更精細地控制,您可以使用 .github/copilot-instructions.md 來微調工具的使用。

使用 Docker 時 MCP 伺服器未啟動

驗證命令引數是否正確,以及容器是否未以分離模式執行(-d 選項)。您還可以檢查 MCP 伺服器的輸出是否有任何錯誤訊息(請參閱 排查)。

我收到一個錯誤,提示“每次請求不能超過 128 個工具。”

由於模型限制,一次聊天請求最多隻能啟用 128 個工具。如果您選擇了超過 128 個工具,請透過在“聊天”檢視的工具選擇器中取消選擇某些工具或整個伺服器來減少工具數量,或者確保啟用了虛擬工具(github.copilot.chat.virtualTools.threshold)。

Screenshot showing the Chat view, highlighting the Tools icon in the chat input and showing the tools Quick Pick where you can select which tools are active.

© . This site is unofficial and not affiliated with Microsoft.