在 VS Code 中使用 MCP 伺服器
模型上下文協議 (MCP) 是一個開放標準,允許 AI 模型透過統一介面使用外部工具和服務。在 VS Code 中,MCP 伺服器為檔案操作、資料庫或與外部 API 互動等任務添加了工具。
本文將指導您如何在 Visual Studio Code 中設定 MCP 伺服器,並在代理模式下使用工具。
MCP 是如何工作的?
MCP 遵循客戶端-伺服器架構
- MCP 客戶端(如 VS Code)連線到 MCP 伺服器,並代表 AI 模型請求操作
- MCP 伺服器提供一個或多個工具,透過定義良好的介面公開特定功能
- 模型上下文協議定義了客戶端和伺服器之間通訊的訊息格式,包括工具發現、呼叫和響應處理
例如,檔案系統 MCP 伺服器可能提供讀取、寫入或搜尋檔案和目錄的工具。GitHub 的 MCP 伺服器提供列出倉庫、建立拉取請求或管理 issue 的工具。MCP 伺服器可以本地執行在您的機器上,也可以遠端託管,VS Code 支援這兩種配置。
透過標準化這種互動,MCP 消除了每個 AI 模型和每個工具之間進行自定義整合的需要。這使您只需將新的 MCP 伺服器新增到工作區,即可擴充套件 AI 助手的能力。瞭解更多關於模型上下文協議規範的資訊。
VS Code 支援的 MCP 功能
VS Code 支援以下 MCP 功能
VS Code 中的 MCP 支援從 VS Code 1.102 版本開始普遍可用。
先決條件
- 安裝最新版本的 Visual Studio Code
- 訪問 Copilot
在 VS Code 中啟用 MCP 支援
chat.mcp.access 設定控制了哪些 MCP 伺服器可以在 VS Code 中安裝和執行。預設情況下,允許所有 MCP 伺服器。將此設定配置為 none
以停用 MCP 支援。
集中管理 MCP 支援
您有兩種選擇在您的組織中集中管理 MCP 支援
-
裝置管理:透過組策略或配置配置檔案在您的組織中集中啟用或停用 MCP 支援。瞭解更多關於使用裝置管理來管理 VS Code 設定的資訊。
-
GitHub Copilot 策略:透過 GitHub Copilot 策略控制組織中 MCP 伺服器的可用性。請在 GitHub Copilot 文件中瞭解更多關於在您的企業中管理 Copilot 的策略和功能的資訊。
新增 MCP 伺服器
MCP 伺服器可以在您的機器上執行任意程式碼。請僅新增來自可信來源的伺服器,並在啟動前審查釋出者和伺服器配置。當您首次啟動 MCP 伺服器時,VS Code 會提示您確認您信任該 MCP 伺服器。請閱讀關於在 VS Code 中使用 AI 的安全文件以瞭解其影響。
您有多種方式在 VS Code 中新增 MCP 伺服器
直接從網路安裝 MCP 伺服器
網站可以提供一個連結,直接在 VS Code 中安裝 MCP 伺服器,這樣無需手動配置即可輕鬆新增伺服器。
例如,要從精選 MCP 伺服器列表中安裝一個 MCP 伺服器:
-
開啟擴充套件檢視並在搜尋欄中輸入
@mcp
。 -
選擇瀏覽 MCP 伺服器以在瀏覽器中開啟 MCP 伺服器列表。或者,從命令面板執行 MCP: Browse Servers 命令。
-
在任何 MCP 伺服器上選擇安裝,這會開啟 VS Code 並顯示伺服器詳細資訊頁面。
-
在伺服器詳細資訊頁面上選擇安裝,將 MCP 伺服器新增到您的 VS Code 例項中。
MCP 伺服器安裝在您的使用者配置中,可以在任何工作區使用。
將 MCP 伺服器新增到您的工作區
要為特定工作區配置 MCP 伺服器,您可以在工作區資料夾中建立一個 .vscode/mcp.json
檔案。專案團隊成員隨後可以使用相同的伺服器配置。
請確保透過使用輸入變數或環境檔案來避免硬編碼 API 金鑰和其他憑據等敏感資訊。
要將 MCP 伺服器新增到您的工作區:
-
在您的工作區中建立一個
.vscode/mcp.json
檔案。 -
選擇新增伺服器按鈕為新伺服器新增一個模板。VS Code 為 MCP 伺服器配置檔案提供了智慧感知功能。
以下示例展示瞭如何配置 GitHub 遠端 MCP 伺服器。瞭解更多關於 VS Code 中的 MCP 配置格式。
{ "servers": { "github-mcp": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } } }
-
或者,從命令面板執行 MCP: Add Server 命令,選擇要新增的 MCP 伺服器型別並提供伺服器資訊。接下來,選擇工作區設定,如果您的工作區中不存在
.vscode/mcp.json
檔案,則會建立該檔案。
將 MCP 伺服器新增到您的使用者配置
要為所有工作區配置 MCP 伺服器,您可以將伺服器配置新增到您的使用者配置中。這使您可以在多個專案中重用相同的伺服器配置。
要將 MCP 新增到您的使用者配置中,請執行 MCP: Open User Configuration 命令,這會開啟您使用者配置檔案中的 mcp.json
檔案。如果檔案不存在,VS Code 會為您建立它。
或者,使用命令面板中的 MCP: Add Server 命令,提供伺服器資訊,然後選擇全域性將伺服器配置新增到您的個人資料中。
當您使用多個 VS Code 配置檔案時,這允許您根據當前活動的配置檔案在不同的 MCP 伺服器配置之間切換。例如,Playwright MCP 伺服器可以配置在 Web 開發配置檔案中,但不配置在 Python 開發配置檔案中。
MCP 伺服器在其配置的地方執行。如果您連線到遠端環境並希望伺服器在遠端機器上執行,則應在您的遠端設定(MCP: Open Remote User Configuration)或工作區設定中定義它。在您的使用者設定中定義的 MCP 伺服器總是本地執行。
將 MCP 伺服器新增到開發容器
可以透過 devcontainer.json
檔案在開發容器中配置 MCP 伺服器。這使您可以將 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 伺服器配置。
當 VS Code 首次啟動 MCP 伺服器時,它會發現伺服器的功能和工具。然後您可以在代理模式下使用這些工具。VS Code 會快取 MCP 伺服器的工具列表。要清除快取的工具,請在命令面板中使用 MCP: Reset Cached Tools 命令。
檢視已安裝的 MCP 伺服器
要檢視和管理已配置的 MCP 伺服器列表:
-
從命令面板執行 MCP: Show Installed Servers 命令以開啟 MCP 伺服器檢視。
或者,直接在擴充套件檢視 (⇧⌘X (Windows、Linux 為 Ctrl+Shift+X)) 中開啟 MCP SERVERS - INSTALLED 部分。
-
從命令面板執行 MCP: List Servers 命令以檢視已安裝的 MCP 伺服器列表。
在代理模式中使用 MCP 工具
新增 MCP 伺服器後,您可以在代理模式下使用它提供的工具。
在代理模式下使用 MCP 工具:
-
開啟聊天檢視 (⌃⌘I (Windows、Linux 為 Ctrl+Alt+I)),然後從下拉選單中選擇代理模式。
-
選擇工具按鈕以檢視可用工具列表。
(可選)選擇或取消選擇您想使用的工具。您可以透過在搜尋框中輸入來搜尋工具。
重要一個聊天請求一次最多可以啟用 128 個工具。如果您選擇了超過 128 個工具,請在工具選擇器中取消選擇一些工具以減少工具數量,或確保已啟用虛擬工具 (github.copilot.chat.virtualTools.threshold)。
-
在聊天輸入框中輸入一個提示,並注意工具是如何根據需要被自動呼叫的。例如,安裝 GitHub MCP 伺服器並提問“列出我的 GitHub 問題”。
提示您也可以透過輸入
#
後跟工具名稱來在提示中直接引用工具。您可以在所有聊天模式(提問、編輯和代理模式)中這樣做。 -
當出現提示時,請在確認前仔細審查工具呼叫詳情。
注意MCP 工具可能會在您的機器上本地執行,並可能執行修改檔案或資料的操作。請始終確保您瞭解該工具操作的影響。
使用繼續按鈕下拉選項,可以為當前會話、工作區或所有未來呼叫自動確認特定工具。
-
(可選)在執行工具之前,驗證並編輯工具的輸入引數。
使用 MCP 資源
除了工具,MCP 伺服器還可以提供資源,您可以在聊天提示中用作上下文。例如,檔案系統 MCP 伺服器可能提供對檔案和目錄的訪問,或者資料庫 MCP 伺服器可能提供對資料庫表的訪問。
要將來自 MCP 伺服器的資源新增到您的聊天提示中:
-
在聊天檢視中,選擇新增上下文 > MCP 資源
-
從列表中選擇一個資源型別,並提供可選的資源輸入引數。
要檢視 MCP 伺服器的可用資源列表,請使用 MCP: Browse Resources 命令,或使用 MCP: List Servers > Browse Resources 命令檢視特定伺服器的資源。
MCP 工具可以在其響應中返回資源。您可以透過選擇儲存或將資源拖放到資源管理器檢視中來檢視或儲存這些資源到您的工作區。
使用 MCP 提示
MCP 伺服器可以為常見任務提供預配置的提示,這樣您就不必輸入複雜的聊天提示了。您可以透過輸入 /
後跟提示名稱(格式為 mcp.servername.promptname
)來直接在聊天輸入框中呼叫這些提示。提示可能會要求您提供額外的輸入引數。
使用 MCP 引出
MCP 伺服器可以透過引出(elicitations)向您請求額外輸入。當 MCP 伺服器需要更多資訊來完成任務時,它可以提示您提供具體細節,例如確認、配置值或操作所需的其他引數。
當 MCP 伺服器傳送引出請求時,VS Code 會向您顯示一個對話方塊或輸入欄位,您可以在其中提供所請求的資訊。這允許 MCP 伺服器動態收集必要的資料,而無需預先設定所有配置。
將相關工具分組到工具集中
隨著您新增更多的 MCP 伺服器,工具列表可能會變得很長。這會使得管理單個工具變得繁瑣,例如當您想定義一個可重用的提示檔案或一個自定義聊天模式時。
為了幫助您管理工具,您可以將相關工具分組到一個工具集中。工具集是單個工具的集合,您可以將其作為一個實體來引用。工具集可以包含內建工具、MCP 工具或擴充套件提供的工具。
瞭解更多關於如何在 VS Code 中建立和使用工具集的資訊。
管理 MCP 伺服器
您可以對已安裝的 MCP 伺服器執行各種操作,例如啟動或停止伺服器、檢視伺服器日誌、解除安裝伺服器等。
要對 MCP 伺服器執行這些操作,請使用以下任一選項:
-
在 MCP SERVERS - INSTALLED 部分右鍵單擊伺服器或選擇齒輪圖示
-
開啟
mcp.json
配置檔案並在編輯器中內聯訪問操作(CodeLens)使用 MCP: Open User Configuration 或 MCP: Open Workspace Folder Configuration 命令來訪問 MCP 伺服器配置。
-
從命令面板執行 MCP: List Servers 命令並選擇一個伺服器
自動啟動 MCP 伺服器
當您新增 MCP 伺服器或更改其配置時,VS Code 需要(重新)啟動伺服器以發現其提供的工具。
您可以透過使用 chat.mcp.autostart 設定(實驗性)來配置 VS Code 在檢測到配置更改時自動重啟 MCP 伺服器。
或者,從聊天檢視中手動重啟 MCP 伺服器,或從 MCP 伺服器列表中選擇重啟操作。
命令列配置
您也可以使用 VS Code 命令列介面將 MCP 伺服器新增到您的使用者配置檔案或工作區。
要將 MCP 伺服器新增到您的使用者配置檔案,請使用 --add-mcp
命令列選項,並提供 JSON 伺服器配置,格式為 {\"name\":\"server-name\",\"command\":...}
。
code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"
URL 處理程式
VS Code 還包含一個 URL 處理程式,您可以用它來安裝 MCP 伺服器。要構建 URL,請以與提供給 --add-mcp
相同的格式構造一個 obj
物件,然後使用以下邏輯建立連結:
// For Insiders, use `vscode-insiders` instead of `code`
const link = `vscode:mcp/install?${encodeURIComponent(JSON.stringify(obj))}`;
此連結可以在瀏覽器中使用,或在命令列上開啟,例如在 Linux 上透過 xdg-open $LINK
。
查詢 MCP 伺服器
MCP 仍然是一個相對較新的標準,其生態系統正在迅速發展。隨著越來越多的開發者採用 MCP,您可以期待看到越來越多的伺服器和工具可用於與您的專案整合。
VS Code 網站上的精選 MCP 伺服器列表是一個很好的起點。您可以從不同類別中選擇,並直接在 VS Code 中安裝 MCP 伺服器。
MCP 的官方伺服器倉庫提供了官方和社群貢獻的伺服器,展示了 MCP 的多功能性。您可以探索用於各種功能的伺服器,如檔案系統操作、資料庫互動和 Web 服務。
VS Code 擴充套件也可以貢獻 MCP 伺服器,並在擴充套件的安裝過程中配置它們。請檢視 Visual Studio Marketplace 中提供 MCP 伺服器支援的擴充套件。
MCP 伺服器信任
MCP 伺服器可以在您的機器上執行任意程式碼。請僅新增來自可信來源的伺服器,並在啟動前審查釋出者和伺服器配置。請閱讀關於在 VS Code 中使用 AI 的安全文件以瞭解其影響。
當您將 MCP 伺服器新增到工作區或更改其配置時,您需要在啟動前確認您信任該伺服器及其功能。當您首次啟動伺服器時,VS Code 會顯示一個對話方塊來確認您信任該伺服器。選擇對話方塊中的 MCP 伺服器連結,可以在一個單獨的視窗中審查 MCP 伺服器配置。
如果您不信任該伺服器,它將不會啟動,聊天請求將繼續進行,但不會使用該伺服器提供的工具。
您可以透過從命令面板執行 MCP: Reset Trust 命令來重置對 MCP 伺服器的信任。
如果您直接從 mcp.json
檔案啟動 MCP 伺服器,系統不會提示您信任伺服器配置。
在裝置間同步 MCP 伺服器
啟用設定同步後,您可以在裝置間同步設定和配置,包括 MCP 伺服器配置。這使您能夠保持一致的開發環境,並在所有裝置上訪問相同的 MCP 伺服器。
要透過設定同步啟用 MCP 伺服器同步,請從命令面板執行 Settings Sync: Configure 命令,並確保 MCP Servers 包含在同步配置列表中。
配置格式
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 Stream 傳輸,如果不支援 HTTP,則回退到 SSE。
欄位 | 是否必需 | 描述 | 示例 |
---|---|---|---|
type |
是 | 伺服器連線型別 | "http" , "sse" |
url |
是 | 伺服器的 URL | "https://:3000" , "https://api.example.com/mcp" |
headers |
否 | 用於身份驗證或配置的 HTTP 標頭 | {"Authorization": "Bearer ${input:api-token}"} |
遠端伺服器配置示例
此示例顯示了無需身份驗證的遠端 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 個人訪問令牌" |
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: List Servers,選擇伺服器,然後選擇顯示輸出。
除錯 MCP 伺服器
您可以透過向 MCP 伺服器配置新增一個 dev
鍵來為 MCP 伺服器啟用開發模式。這是一個具有兩個屬性的物件:
watch
: 一個檔案 glob 模式,用於監視檔案變化,變化時將重啟 MCP 伺服器。debug
: 允許您為 MCP 伺服器設定一個偵錯程式。
{
"servers": {
"gistpad": {
"command": "node",
"args": ["build/index.js"],
"dev": {
"watch": "build/**/*.js",
"debug": { "type": "node" }
},
我們目前僅支援除錯分別由 node
和 python
啟動的 Node.js 和 Python 伺服器。
常見問題
我可以控制使用哪些 MCP 工具嗎?
- 在代理模式下,選擇聊天檢視中的工具按鈕,並根據需要開啟/關閉特定工具。
- 透過使用新增上下文按鈕或輸入
#
將特定工具新增到您的提示中。 - 要進行更高階的控制,您可以使用
.github/copilot-instructions.md
來微調工具的使用。
使用 Docker 時 MCP 伺服器無法啟動
請驗證命令引數是否正確,以及容器是否未在分離模式下執行(-d
選項)。您還可以檢查 MCP 伺服器輸出以獲取任何錯誤訊息(請參閱故障排除)。
我收到一個錯誤,提示“每個請求的工具不能超過 128 個。”
由於模型限制,一個聊天請求一次最多可以啟用 128 個工具。如果您選擇了超過 128 個工具,請透過在聊天檢視的工具選擇器中取消選擇一些工具或整個伺服器來減少工具數量,或確保已啟用虛擬工具 (github.copilot.chat.virtualTools.threshold)。