官方教程中文版MCP 與外部工具
MCP 是什麼
解釋 Model Context Protocol 如何把外部系統接入 Copilot,並給出安全接入判斷。
GitHub 官方定義裡,MCP(Model Context Protocol)是一個開放標準,用來讓應用把上下文共享給大語言模型。放到 Copilot 裡看,它就是一層工具協議:Copilot 透過 MCP client(客戶端)連線 MCP server(服務端),server 再提供 tools(可呼叫的動作)、resources(資料資源)和 prompts(預設任務入口)。
結論先說:MCP 的核心不是“多一個外掛”,而是讓 Copilot 以受控方式呼叫外部系統。
MCP server 可能讀取檔案、訪問網路、呼叫 API、建立 issue、操作 PR。接入前先審 server 來源和工具許可權。
1. MCP 的四個角色
flowchart LR
Copilot["Copilot Chat / Agent"] --> Client["MCP client"]
Client --> Server["MCP server"]
Server --> Tool["Tools: 執行動作"]
Server --> Resource["Resources: 提供資料"]
Server --> Prompt["Prompts: 預設互動入口"]
Tool --> System["外部系統"]
Resource --> System
Prompt --> Copilot
style Client fill:#dbeafe,stroke:#2563eb,stroke-width:2px
style Server fill:#dcfce7,stroke:#16a34a,stroke-width:2px
style System fill:#fef3c7,stroke:#d97706,stroke-width:2px
- MCP client:VS Code、Copilot CLI、Cloud Agent 等負責連線 server 的宿主。
- MCP server:暴露工具和上下文的服務,可以本地執行,也可以遠端訪問。
- Tools:agent 可以呼叫的動作,例如搜尋儲存庫、讀取 issue、建立 PR。
- Resources:server 提供給 Chat 的資料,例如儲存庫內容、文件、物件詳情。
- Prompts:server 預設的 slash command 式任務入口。
這層結構的好處是統一:不用每個工具都單獨為 Copilot 寫一套整合,也不用把外部系統狀態手動複製進 Chat。
2. Copilot 哪些入口支援 MCP
GitHub 官方文件列出的支援邊界:
- IDEs:廣泛支援本地 MCP server,遠端 MCP server 支援也在增長,具體看編輯器文件。
- Copilot CLI:支援本地和遠端 MCP server;GitHub MCP server 是內建的,不需要額外配置。
- Copilot cloud agent:支援儲存庫級 MCP server;GitHub MCP server 和 Playwright MCP server 預設配置。
企業和組織可以透過 “MCP servers in Copilot” 策略啟用或停用 MCP。官方文件說明該策略預設關閉,所以團隊裡“我本地能用”不代表組織賬號也能用。
3. 什麼時候需要 MCP
適合:
- Copilot 需要查詢 GitHub issue、PR、Actions、security alerts。
- Copilot 需要讀內部文件、API、資料庫或支援系統。
- 團隊希望統一 server 配置,而不是讓每個人手工複製上下文。
- 外部系統狀態變化快,不能靠靜態 instructions 維護。
不適合:
- 一次性解釋概念。
- 只需要專案長期規範,此時用 instructions。
- 只需要重複 prompt,此時用 prompt file。
- 工具來源不可信,或無法說明它會讀寫什麼。
- 沒有審批和回復,卻想開放寫操作。
4. 最小安全模型
接入 MCP 前先回答:
- Server 來源:誰維護,是否官方或內部可信。
- 執行位置:本地、遠端、容器、企業私有環境。
- 認證方式:OAuth、PAT、環境變數,還是輸入變數。
- 工具許可權:只讀、寫入、審批、刪除、執行命令。
- 資料邊界:能讀哪些儲存庫、檔案、API、日誌和客戶資料。
- 失敗證據:日誌在哪裡,如何重啟,如何停用。
這 6 個問題答不清,不要上線。
5. 典型接入路徑
- 從只讀 server 開始,例如 Fetch、GitHub repo 查詢、文件搜尋。
- 在 Agent mode 中手動選擇工具,觀察 Copilot 是否正確引用上下文。
- 把有效配置固化到個人 profile 或工作區
.vscode/mcp.json。 - 如果團隊共享,提交 PR 審查 server 配置。
- 需要更多動作時,再按 toolset 分層開放寫能力。
深讀:為什麼不要預設啟用所有工具
Agent 會根據任務目標自動選擇工具。工具越多,模型越可能選擇一個你沒有預期的路徑,也更難解釋結果來自哪裡。
商業級 MCP 接入應該從“這個任務缺什麼上下文”出發,而不是從“這個 server 有多少工具”出發。
本章自檢
- 這個 MCP server 是否補了真實上下文缺口?
- 它是本地 server 還是遠端 server?
- 它的工具是否按只讀和寫入分層?
- 組織策略是否允許當前入口使用 MCP?
- 是否能在日誌裡看到 server 啟動、工具呼叫和錯誤?
透過標準:一個新人能看懂 server 用途、許可權、配置位置和停用方式。
官方來源
- About Model Context Protocol (MCP) —— GitHub 官方 MCP 概念、可用入口和策略說明。
- Extending GitHub Copilot Chat with MCP servers —— GitHub 官方 IDE MCP 使用流程。
- Add and manage MCP servers in VS Code —— VS Code 官方 MCP server 配置、信任和管理。