超越工具:在 VS Code 中加入 MCP
2025 年 5 月 14 日,作者:Harald Kirschner
當我們首次在 VS Code 中引入代理模式(agent mode)時,它開啟了透過聊天與程式碼及工作區進行互動的全新方式。你可以要求代理程式檢查檔案、執行建置,甚至是除錯測試。但你受限於模型訓練的內容以及工作區內的檔案。因此,下一步的目標很明確:我們需要一種方式,讓代理程式能夠超越這些邊界,並以安全且由使用者控制的方式與真實的外部服務互動。
我們的首次嘗試遵循了熟悉的 VS Code 模式:透過工具(Tools)和聊天參與者(Chat participants) API 進行擴充。考慮到生態系統中已有數千個擴充功能,這很合理,但業界正迅速朝向一個新標準發展:模型上下文協定(Model Context Protocol, MCP)。MCP 可以被理解為一種以一致方式將 AI 代理連接到廣泛外部工具與服務的協定,就像 HTTP 標準化了網路通訊一樣。其目標是讓任何客戶端(不僅僅是 VS Code)都能掛載強大的工具伺服器(如資料庫、程式碼搜尋和部署系統),並使其「直接可用」。
轉向 MCP 幾乎在一夜之間解鎖了更廣闊的生態系統。現在,VS Code 使用者可以利用諸如用於前端驗證的 Playwright MCP Server、用於儲存庫洞察與提取請求的 GitHub MCP Server,或是用於更聰明 API 使用的 Context7 等伺服器。伺服器列表持續增長,MCP 已迅速成為跨 AI 代理引入額外功能的基石。
讓 MCP 為每個人服務:應用 VS Code 的設計原則
VS Code 的設計哲學始終致力於讓強大功能易於使用、預設安全,並給予使用者明確的控制權。這些相同的原則也指引了我們的 MCP 整合。
以往要開始使用 MCP 伺服器,意味著必須將 JSON 區塊複製到設定檔中並管理命令列旗標。我們希望能簡化此過程:透過 MCP: Add Server 命令,你可以從套件管理員(NPM、PyPI、Docker)設定伺服器,剩下的交由 VS Code 處理。網站甚至可以提供一個「在 VS Code 中安裝」按鈕來進一步簡化新手入門流程,且 VS Code 在可能的情況下會自動偵測其他客戶端(如 Claude Desktop)的設定。

安全性是另一個重點。管理 MCP 伺服器的機密資訊不應該意味著將密碼提交到原始碼控制中。我們增加了對輸入變數(input variables)的支援,它會提示你輸入一次,然後安全地加密儲存這些機密資訊,並支援參考你本地開發中已信任的現有 .env 檔案。這讓團隊能更安全地共享和檢視設定。

使用者控制是體驗的核心。透過工具選擇器(tool picker),你可以在特定工作階段中決定代理程式可以存取哪些工具,並查看清晰的說明與控制項。對於那些開發或除錯伺服器的使用者,VS Code 提供了日誌記錄,並簡化了啟動、停止和重新啟動伺服器的操作。這些細節讓 MCP 不僅強大,對終端使用者和伺服器開發者來說也更易於親近。
超越基礎:更豐富的 MCP 功能
我們的旅程並沒有止步於實現工具的基本相容性。MCP 的許多價值來自於其規範中更深層的功能。這些功能在得到完整支援後,能讓工具更具上下文感知力、適應性更強且更穩健。
例如,根目錄(roots)支援讓 MCP 伺服器能夠理解你的工作區結構。伺服器無需詢問使用者資料夾路徑或依賴設定,而是直接接收工作區資料夾列表,從而能夠為當前專案量身打造工具。這實現了諸如在整個單體儲存庫(monorepo)中搜尋所有 TODO,或根據偵測到的基礎架構檔案啟動部署工具等應用場景。
動態工具探索允許伺服器即時變更可用工具集。伺服器不再只有靜態列表,而是可以根據上下文或專案狀態調整工具——例如在工作流程推進時顯示不同動作,或呈現與你在程式碼庫中偵測到的框架相關的工具。這能保持代理功能的可關聯性並減少混亂。如需實際使用範例,請查看 TypeScript SDK 的 動態伺服器範例,或 GitHub MCP Server 中的 動態工具集探索功能。
最新的 VS Code 更新也增加了對 工具註釋(tool annotations)的支援,這有助於伺服器為工具提供有用的元資料,例如人類可讀的名稱或關於工具是否應以唯讀模式執行的提示。這些細節改善了代理程式的行為與使用者的理解。
最後,串流 HTTP(streamable HTTP)現已被支援為 MCP 規範中的最新傳輸方式。這使得遠端伺服器整合更加順暢且具可擴充性,特別是對於雲端託管或無伺服器(serverless)工具提供者而言。
我們的目標是在 VS Code 中支援最新的 MCP 功能,讓使用者能從豐富的 AI 體驗中獲益,同時讓伺服器開發者能放心地實作這些功能。
擴大生態系統:協作與未來展望
MCP 目前已驅動來自 GitHub、Playwright、Azure 和 Perplexity 的官方伺服器,且生態系統正持續擴大。VS Code 的與眾不同之處不僅在於提早採用,更在於對「規範優先」工程的堅持。透過密切遵循 MCP 規範,並在授權、發現和安全性方面貢獻改進意見,我們正在協助該協定走向成熟,確保生態系統中的創新能造福每一個人,而不僅僅是 VS Code 使用者。
展望未來,我們正積極致力於讓 VS Code 支援規範中即將推出的 MCP 功能,包括授權(Authorization)、提示詞(Prompts)、資源(Resources)以及取樣(Sampling)。隨著這些功能加入產品,將帶來更豐富、更靈活的代理程式整合。
如果你正在建構開發者工具或基礎架構,MCP 現在是一個實用且開放的方式,能讓你的工具對 VS Code 及其他環境中的 AI 代理變得觸手可及。無論你是想使用現成的伺服器,還是想建立自己的伺服器,其體驗都應當既穩健又直觀。
若要開始使用,請參考 ModelContextProtocol.io、VS Code MCP 文件,或 GitHub 上的參考伺服器。
我們很期待看到你所建構的內容,以及隨著生態系統擴張,代理程式工作流程將如何演進。
祝您開發愉快!