AI 程式設計教程中文版
官方教程中文版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 前先回答:

  1. Server 來源:誰維護,是否官方或內部可信。
  2. 執行位置:本地、遠端、容器、企業私有環境。
  3. 認證方式:OAuth、PAT、環境變數,還是輸入變數。
  4. 工具許可權:只讀、寫入、審批、刪除、執行命令。
  5. 資料邊界:能讀哪些儲存庫、檔案、API、日誌和客戶資料。
  6. 失敗證據:日誌在哪裡,如何重啟,如何停用。

這 6 個問題答不清,不要上線。

5. 典型接入路徑

  1. 從只讀 server 開始,例如 Fetch、GitHub repo 查詢、文件搜尋。
  2. 在 Agent mode 中手動選擇工具,觀察 Copilot 是否正確引用上下文。
  3. 把有效配置固化到個人 profile 或工作區 .vscode/mcp.json
  4. 如果團隊共享,提交 PR 審查 server 配置。
  5. 需要更多動作時,再按 toolset 分層開放寫能力。
深讀:為什麼不要預設啟用所有工具

Agent 會根據任務目標自動選擇工具。工具越多,模型越可能選擇一個你沒有預期的路徑,也更難解釋結果來自哪裡。

商業級 MCP 接入應該從“這個任務缺什麼上下文”出發,而不是從“這個 server 有多少工具”出發。

本章自檢

  1. 這個 MCP server 是否補了真實上下文缺口?
  2. 它是本地 server 還是遠端 server?
  3. 它的工具是否按只讀和寫入分層?
  4. 組織策略是否允許當前入口使用 MCP?
  5. 是否能在日誌裡看到 server 啟動、工具呼叫和錯誤?

透過標準:一個新人能看懂 server 用途、許可權、配置位置和停用方式。

官方來源

接下來去哪

本頁目錄