第 9 章
連接外部工具:MCP
MCP 是讓 Copilot CLI 接上外部工具的標準插座,而且這裡有個好消息:GitHub 自己家最重要的一個工具,出廠就幫你插好了,不用你自己動手接。
想像 Copilot CLI 本身是一台很能幹的萬用工具機,但原廠配備只有最基本的功能。市面上有很多廠商做的「外接模組」——有的能幫你查最新的技術文件、有的能開瀏覽器幫你看網頁、有的能直接操作 GitHub 上的 issue 和 PR。只要外接埠的規格一致,隨便哪個模組接上去都能用,不用為每一種模組另外學一套操作方式。
MCP(Model Context Protocol,模型上下文協定) 就是這個「統一外接埠規格」。它是一套公開標準,讓 AI agent 知道怎麼跟外部工具、外部資料源溝通。Copilot CLI 支援這套標準,所以你可以把別人寫好的 MCP 伺服器接上去,讓它在幫你寫程式的同時,也能查文件、開瀏覽器、動 GitHub 上的東西。
而且這裡有個 Copilot CLI 特有的驚喜——GitHub 自家最重要的一個 MCP 伺服器,早就內建在裡面,你什麼都不用做就已經能用。這個反差,等下 9.3 節會是本章的重頭戲。
新手安全主線:先用內建、唯讀的 GitHub MCP
第一次使用時,只要開 Copilot CLI、在自己的 repo 試著查詢,或用 /mcp list 查看內建 GitHub MCP 即可。手動 JSON、npx、環境變數和 API key 都是進階操作;沒有明確需求時不要新增伺服器、不要複製設定檔、不要啟用寫入工具。Windows 請使用 Windows Terminal 的 PowerShell 7,不需要 WSL。
這一章你會學到:
- 「幫我在這個 repo 開一個新的 issue。」——完全不用設定,內建的 GitHub MCP 直接就能用。
- (進階)「查一下這個套件最新的用法。」——手動接一個本機 MCP 伺服器(以 Context7 為例)。
- 「先別讓它動用會寫入 GitHub 的操作,只留查詢用就好。」——GitHub MCP 預設只開唯讀工具,怎麼視情況加開。
- 「這個 MCP 伺服器我暫時不想用,但設定先留著別刪。」——用
tools欄位把一整組工具關掉。
版本時效提醒
Copilot CLI 改版很快,MCP 相關的設定鍵、旗標名稱都可能隨版本調整。本章對照的查核日期是 2026-07-18,正式操作前,以你實機的 copilot mcp --help、互動畫面裡的 /mcp,或官方文件當下版本為準。
9.1 進階:三條路把外部工具接上來
Copilot CLI 接外部 MCP 伺服器有三條進階路線,效果一樣,差別只在管理方式。這不是新手主線:不確定伺服器來源、權限或設定檔用途時,停在內建 GitHub MCP 即可。
| 方式 | 適合誰 |
|---|---|
手動編輯 ~/.copilot/mcp-config.json | 想一次設定清楚、或要用到進階欄位(像 HTTP header)的人 |
互動指令 /mcp add | 在對話畫面裡邊聊邊設定,不想切出去開編輯器 |
非互動 copilot mcp 子指令 | 想寫進安裝腳本、批次管理多台機器的人 |
mcp-config.json 存放在使用者層級(跨所有 repo、所有 session 都生效),位置也跟第 8 章講過的 COPILOT_HOME 環境變數綁在一起——如果你把整個設定家目錄搬家了,這個檔案也會跟著搬。它是本機進階設定,不可連同 token、API key、OAuth 資料或個人路徑複製到 repo。
用互動指令這條路最直覺:在對話畫面輸入 /mcp add,跟著介面把要接的伺服器填好,按 Ctrl+S 存檔,Copilot 就會立刻把設定寫進 mcp-config.json 並啟動這個伺服器——不用你自己重開 session。
/mcp add
小技巧
想看目前接了哪些伺服器、各自帶了什麼工具,直接打:
/mcp
也可以打 /mcp list、/mcp show <name> 分別看清單和單一伺服器細節。這幾個子指令 9.5 節會整理成一張速查表。
9.2 進階:mcp-config.json 長什麼樣:local 跟 http 兩種型態
不想用互動介面、想一次寫清楚的話,才直接編輯 ~/.copilot/mcp-config.json。這是進階、本機專用設定;先備份,再以官方文件與公司政策為準,絕不要把真正憑證放入檔案或提交到 repo。下面是去除真正憑證後的範例:
{
"mcpServers": {
"playwright": {
"type": "local",
"command": "npx",
"args": ["@playwright/mcp@latest"],
"env": {},
"tools": ["*"]
},
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}"
},
"tools": ["*"]
}
}
}
拆開看這兩種型態:
local:伺服器是你電腦上跑起來的一支小程式,Copilot 用command+args把它啟動起來(上面範例是用npx跑 Playwright 的 MCP 伺服器,能讓 Copilot 開瀏覽器看網頁)。env是要傳給這支程式的環境變數。http:伺服器是一個遠端網址,Copilot 連過去。url指定端點,headers帶認證資訊;範例中的${CONTEXT7_API_KEY}是環境變數占位文字,不是可直接使用的 key。
npx、JSON 與 API key 都要先過安全檢查
npx:它需要已安裝的 Node.js/npm,且可能下載並執行套件。只有你知道 Node/npm、已確認node --version與npx --version,並從該 MCP 的官方來源確認套件名稱時才使用;不知道就不要選本機npx路線。- 設定檔:先用
/mcp add或內建 GitHub MCP;手寫mcp-config.json前只允許最小必要工具,且不要以「清空設定重來」當成排錯方式。 - API key:只從服務商的官方控制台或公司核准的秘密管理系統建立自己的 key,採最小權限、設定到期/撤銷方式;不要用範例字串、別人的 key,或把真正的 key 寫入 JSON、repo、issue、聊天或截圖。
tools 這個欄位是每個伺服器共用的白名單設計:
| 寫法 | 意思 |
|---|---|
["*"] | 這個伺服器的工具全部開放 |
["tool1", "tool2"] | 只開放列出的這幾個工具 |
[""] | 全部關閉(保留設定但先不讓 Copilot 用任何工具) |
小技巧
[""] 這招很適合「這個伺服器我還在評估、先別讓它真的動起來」的情境——設定留著、伺服器該裝的裝了,只是工具全部鎖住,之後想開再回來改這一行就好,不用整段砍掉重寫。
想用非互動的方式管理,改用 copilot mcp 子指令(適合寫進安裝腳本、批次處理):
copilot mcp
補充資訊
官方文件確認 copilot mcp 這個子指令存在,是給非互動、腳本化管理用的入口;但這次查核沒有核對到它底下每一個參數的逐字語法。真的要寫進自動化腳本,先跑 copilot mcp --help 看你這一版實際支援哪些參數,比照抄任何文章裡的範例可靠。
9.3 內建的 GitHub MCP:GitHub 自家人不用你另外交朋友
這是本章最值得記住的一段。
同樣是 GitHub 官方的 MCP 伺服器(endpoint 是 api.githubcopilot.com/mcp/),如果你用的是 Claude Code 或 Codex CLI,得自己手動把它加進設定檔裡才能用。但 Copilot CLI 因為就是 GitHub 自己家的產品,官方原文講得很直接:
The GitHub MCP server is built into Copilot CLI and is already available without any additional configuration.
翻成白話:GitHub MCP 伺服器內建在 Copilot CLI 裡,不用你做任何額外設定就能用。 你什麼都不用接、不用寫 JSON,打開 Copilot CLI 就已經能請它幫你查 issue、看 PR 討論串。
不過內建歸內建,官方在安全上留了一手——github-mcp-server 這個 repo 的 Copilot CLI 安裝說明講得更精確:
The GitHub MCP server comes pre-installed in Copilot CLI, with read-only tools enabled by default.
也就是說:預設只開唯讀工具。查詢類的操作(看 issue、看 PR、看 commit 歷史)直接能用,但像開新 issue、送出 PR review 這類會寫入的操作,預設是關著的——這是務實的安全預設值,不會讓它一上來就有能力動你 repo 上的東西。
想開更多工具,有兩個旗標:
| 旗標 | 作用 |
|---|---|
--add-github-mcp-toolset <名稱> | 單次加開某一組工具集(例如 discussions) |
--enable-all-github-mcp-tools | 全部開放,含寫入操作,開之前要自己評估風險 |
# 只多開 discussions 這組工具
copilot --add-github-mcp-toolset discussions
# 全部工具都開放,含寫入操作(自行評估風險)
copilot --enable-all-github-mcp-tools
想自己覆寫、或接企業版的 GitHub MCP?
如果你要手動指定,或要接企業版/自架的 GitHub MCP 伺服器,官方範例的寫法是這樣:
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}
這正是站上 Claude Code、Codex CLI 章節出現過的同一個 endpoint——差別只在那兩套工具得靠你自己手動把這段設定加進去,Copilot CLI 是內建預裝好的。你也可以把這個伺服器改個名字、同時跑多個實例,例如一個維持唯讀、另一個開全部工具,各自獨立命名、獨立管控。
補充資訊
想更完整看懂「同一個 endpoint,Claude Code 要自己手動加,Copilot CLI 卻是內建免設定」這個反差,章末有一個對照 Claude Code MCP 章節的連結,可以直接跳過去看。
9.4 安全:先想清楚要不要信任這個 MCP 伺服器
接上一個 MCP 伺服器,等於讓 Copilot 多了一組可以呼叫的外部工具——這些工具能讀到什麼資料、能做什麼事,取決於寫這個伺服器的人有沒有把好關。官方「負責任使用」文件對這件事講得很直接:
MCP servers connected through the SDK can expose tools and data from external sources. Developers must ensure that connected MCP servers are trustworthy, as malicious or misconfigured servers could introduce harmful behavior or expose sensitive data.
Only connect to MCP servers that you trust. Review the tools and data that each server exposes.
翻成白話:只接你信任的 MCP 伺服器,而且要看清楚它到底暴露了哪些工具、能碰到哪些資料。
除了伺服器本身的信任問題,還有一個比較隱蔽的風險:惡意指令不一定是你自己打進去的,也可能藏在 Copilot 讀進 context 的其他資料裡——MCP 工具呼叫回傳的結果、網頁搜尋結果、終端機指令的輸出、檔案內容,只要是 AI 會讀到的東西,理論上都可能夾帶著想操縱它的指令(業界通稱 prompt injection)。這一段是安全研究社群對 MCP 一類工具的普遍提醒,不是 GitHub 官方逐字寫的警語,但精神上呼應官方前面那句「只接你信任的伺服器」。
MCP 工具的核准機制,跟第 7 章教過的 approval/sandbox 是同一套:伺服器接上、工具開放,不代表 Copilot 可以不問你就直接用——一樣要走 --allow-tool/--deny-tool 這些核准規則過濾。
企業或組織如果有集中管理需求,官方也留了介面:
If your organization or enterprise has configured a registry URL and allowlist policy, those settings apply to Copilot CLI.
也就是說,組織可以統一設定 MCP registry 網址跟允許清單政策,一旦設定,Copilot CLI 會照著遵守,不是每個人各自接各自的。
重要提醒
內建的 GitHub MCP 預設唯讀是一道防線,但不是萬靈丹——一旦你自己用 --enable-all-github-mcp-tools 開了寫入操作,或接上任何一個第三方寫的 MCP 伺服器,責任就轉移到「你有沒有先確認過這個伺服器能碰什麼」。動手接新伺服器前,花一分鐘看一眼它宣稱要開放哪些工具,比事後排查划算得多。
9.5 其他常用指令:/mcp 全家族與外掛市集
日常管理 MCP 伺服器,這幾個互動指令會一直用到:
/mcp list
/mcp show <name>
/mcp add
/mcp edit <name>
/mcp delete <name>
/mcp disable <name>
/mcp enable <name>
/mcp auth <name>
/mcp reload <name>
/mcp search
| 指令 | 用途 |
|---|---|
list | 列出目前接了哪些伺服器 |
show <name> | 看單一伺服器的詳細設定 |
add | 新增一個伺服器(9.1 節示範過) |
edit <name> | 修改既有伺服器的設定 |
delete <name> | 整個刪掉這個伺服器的設定 |
disable <name> / enable <name> | 暫停/恢復這個伺服器,不用刪設定 |
auth <name> | 需要登入授權的伺服器(例如某些 HTTP 型伺服器)走這裡認證 |
reload <name> | 重新啟動這個伺服器(改完設定想立刻套用時用) |
search | 搜尋有哪些現成的 MCP 伺服器可以接 |
除了逐一管理,還有一個更省事的總覽指令:
copilot plugins list
這個指令會一次列出所有外掛、MCP 伺服器、Skills、指示檔案、Language Server 的總覽——不只是 MCP,是整個「Copilot 這次 session 到底掛了哪些外部能力」的總表。想開關、移除,用:
copilot plugins enable <NAME> --mcp
copilot plugins disable <NAME> --mcp
copilot plugins remove <NAME> --mcp
小技巧
MCP 伺服器不一定要你自己手打 JSON——也可能透過外掛市集(plugin marketplace)分發安裝,裝好的外掛可能連 MCP 伺服器設定都一起打包帶進來。日常自己接零星一兩個伺服器,用本章教的 mcp-config.json 或 /mcp add 就很夠;如果你的組織有整包分發的外掛需求,這條路可以留意一下。更深的 MCP 效能調校(工具 schema 吃 context、憑證安全強化)留給第 15 章整章講。
本章小結
這一章你學會了怎麼幫 Copilot CLI 接上外部工具:MCP 是讓 AI 接外部工具的公開標準協定,接的方式有三條路——手動編輯 ~/.copilot/mcp-config.json、互動 /mcp add、非互動 copilot mcp 子指令;設定檔裡 local(本機程式)跟 http(遠端網址)兩種型態各自要填哪些鍵,tools 欄位怎麼控制工具白名單。最重要的一段是本章的重頭戲:GitHub 自家的 MCP 伺服器內建在 Copilot CLI 裡,不用任何設定就能用,而且預設只開唯讀工具,這跟 Claude Code、Codex CLI 得自己手動加是完全不同的待遇。你也知道了 MCP 伺服器的信任問題該怎麼想——只接你信任的伺服器、留意夾帶在各種輸入裡的注入風險,以及企業層級怎麼用 registry/允許清單政策集中管理。
動手試試
- 打開 Copilot CLI,問它一句跟你目前這個 repo 有關的話,例如「幫我列出這個專案最近的幾個 issue」,感受一下內建 GitHub MCP 不用設定就能用的手感。
- 在對話框輸入
/mcp list,看看目前有哪些伺服器已經接上(如果是全新安裝,應該只會看到內建的 GitHub MCP)。 - (進階,確認 Node/npx、伺服器來源與權限後才做)照 9.2 節的範例,手動接一個 Playwright 的 MCP 伺服器(或改用互動的
/mcp add),試著請它幫你開瀏覽器看一個網頁;不確定就跳過。 - 打
/mcp show github,看看內建的 GitHub MCP 目前開放哪些工具,跟本章寫的「預設唯讀」對照一下。 - (進階)試著在
mcp-config.json裡把某個伺服器的tools改成[""],重開 session 後確認它的工具真的都不能用了,再改回來。
本章官方文件參考
- Add MCP servers to Copilot CLI:https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers
- GitHub MCP server:Copilot CLI 安裝說明(github-mcp-server repo):https://github.com/github/github-mcp-server/blob/main/docs/installation-guides/install-copilot-cli.md
- Responsible use of GitHub Copilot CLI:https://docs.github.com/en/enterprise-cloud@latest/copilot/responsible-use/copilot-cli
- CLI 設定目錄參考(
COPILOT_HOME與mcp-config.json位置):https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
版本時效提醒
本章對照的查核日期是 2026-07-18。MCP 相關的旗標名稱、/mcp 子指令清單、copilot mcp 的完整參數,都可能隨版本調整。實際操作前,以你實機的 /mcp、copilot mcp --help,或官方文件當下版本為準。