---
title: "MCP 與外部工具"
description: "把 GitHub MCP Server、IDE MCP 配置、toolsets、registry 和企業部署邊界串成可落地流程。"
verifiedAt: "2026-05-06"
---

MCP（Model Context Protocol，模型上下文協議）不是“給 Copilot 裝更多外掛”，而是把外部系統以可發現、可授權、可審計的工具形式接入 agent。真正要管住的是三件事：誰提供工具、工具能訪問什麼、結果怎麼驗證。

這組頁面按 GitHub 和 VS Code 官方文件整理 MCP 的實戰邊界：從概念、GitHub MCP Server、IDE Chat 使用，到 enterprise、toolsets 和 registry。

> [!TIP]
> **閱讀目標**：讀完本組後，你應該能判斷一個外部系統是否應該接 MCP、應該放工作區還是個人配置、應該開放哪些 toolsets、以及上線前要留哪些審計證據。

## 1. 一張圖看清 MCP

```mermaid
flowchart TD
    User["開發者任務"] --> Chat["Copilot Chat / Agent"]
    Chat --> Client["MCP client"]
    Client --> Server["MCP server"]
    Server --> Tools["Tools"]
    Server --> Resources["Resources"]
    Server --> Prompts["Prompts"]
    Tools --> External["GitHub / 文件 / API / 資料庫 / 內部系統"]
    External --> Evidence["結果、日誌、許可權、錯誤資訊"]
    Evidence --> Chat

    style Chat fill:#dbeafe,stroke:#2563eb,stroke-width:2px
    style Server fill:#dcfce7,stroke:#16a34a,stroke-width:2px
    style External fill:#fef3c7,stroke:#d97706,stroke-width:2px
```

## 2. 本組頁面

<Cards>
  <Card title="MCP 是什麼" description="理解 MCP 的 client、server、tools、resources、prompts 和許可權邊界。" href="/zh-Hant/docs/github-copilot/official/07-mcp/mcp-concept" />
  <Card title="GitHub MCP Server" description="配置並使用 GitHub 官方維護的 MCP server 讀取和操作 GitHub 上下文。" href="/zh-Hant/docs/github-copilot/official/07-mcp/github-mcp-server" />
  <Card title="用 MCP 擴充套件 Chat" description="在 IDE 中配置 MCP server，並讓 Copilot Agent 使用外部工具。" href="/zh-Hant/docs/github-copilot/official/07-mcp/extend-chat-with-mcp" />
  <Card title="企業 MCP 配置" description="處理 GHEC data residency、GHES、本地 server、toolsets 和 registry。" href="/zh-Hant/docs/github-copilot/official/07-mcp/enterprise-mcp" />
</Cards>

## 3. 推薦接入順序

1. 先定義上下文缺口：缺 issue、PR、文件、網頁、資料庫還是內部 API。
2. 先接只讀工具：驗證 Copilot 能正確讀取上下文。
3. 再開寫工具：只開放具體任務需要的最小 toolset。
4. 再做共享配置：團隊級用 `.vscode/mcp.json`，個人級用 user profile。
5. 最後做企業治理：registry、server access、toolsets、PAT/OAuth、日誌和回復。

不要為了“能力多”一次性啟用所有 server。MCP 越多，agent 可做的動作越多，排障和審計成本也越高。

## 4. 上線前檢查

- Server 來源可信，publisher、映象、指令碼、網路目標都能解釋。
- 工具清單明確，不預設啟用 `all`。
- 寫操作需要人工確認或有回復路徑。
- Token 不寫進儲存庫，使用 input variables、env 或受控憑據。
- 組織策略允許 MCP，且成員知道哪些工具被停用。
- 日誌能定位問題來自 Copilot、MCP server 還是外部系統。

<details>
<summary>深讀：MCP 不是 prompt engineering 的替代品</summary>

Prompt engineering 解決的是“怎麼把任務說清楚”。MCP 解決的是“agent 能不能拿到外部系統的真實上下文並執行工具”。

如果沒有穩定任務目標，MCP 只會放大錯誤動作；如果沒有許可權邊界，MCP 會把一次 Chat 變成跨系統操作風險。
</details>

## 本組自檢

讀完整組後，回答 4 個問題：

1. 這個 MCP server 解決哪個具體上下文缺口？
2. 它的工具是隻讀、寫入、審批，還是高風險操作？
3. 它應該放工作區、個人 profile，還是企業 registry？
4. 出問題時能否從日誌、許可權、外部系統狀態中定位責任邊界？

透過標準：每個 MCP server 都有明確用途、最小許可權、驗證任務和回復路徑。

## 官方來源

- [About Model Context Protocol (MCP)](https://docs.github.com/en/copilot/concepts/context/mcp) —— GitHub 官方 MCP 概念頁。
- [Extending GitHub Copilot Chat with MCP servers](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/extend-copilot-chat-with-mcp) —— GitHub 官方 IDE Chat 擴充套件流程。
- [Setting up the GitHub MCP Server](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server) —— GitHub 官方 MCP Server 設定。
- [Add and manage MCP servers in VS Code](https://code.visualstudio.com/docs/copilot/customization/mcp-servers) —— VS Code 官方 MCP 配置和信任邊界。

## 接下來去哪

<Cards>
  <Card title="MCP 是什麼" description="先把協議層和許可權邊界看懂。" href="/zh-Hant/docs/github-copilot/official/07-mcp/mcp-concept" />
  <Card title="安全、治理與計費" description="接入工具後繼續看治理、用量和成本邊界。" href="/zh-Hant/docs/github-copilot/official/08-security-governance" />
</Cards>
