GitHub MCP Server 是 GitHub 官方維護的 Model Context Protocol 伺服端,讓 Cursor、Claude Desktop、VS Code Copilot 等 AI 宿主能透過標準化工具呼叫 GitHub REST / GraphQL API——查詢儲存庫、讀取 Issue、開啟 PR、搜尋程式碼,不必在對話中反覆貼上 gh 命令輸出。
本文依「先選型、再裝環境、最後接入 IDE」的順序,涵蓋 Windows、Linux、macOS 三種安裝路徑,並附上可直接複製的設定片段與故障排除清單。
2025 年 4 月起,社群早期的 npm 套件
@modelcontextprotocol/server-github已停用;目前唯一受官方支援的本地映像為ghcr.io/github/github-mcp-server,遠端託管端點為https://api.githubcopilot.com/mcp/。
部署方式怎麼選
在動手安裝軟體之前,先對照下方表格,確認自己要走哪條路:
| 方式 | 是否需要本機行程 | 適合情境 | 平台需求 |
|---|---|---|---|
| 遠端託管 | 否(HTTP 直連) | 本機不想跑 Docker、網路可存取 GitHub | 任意(宿主需支援 Streamable HTTP) |
| Docker 本地 | 是(容器 stdio) | 大多數使用者的首選,版本一致、易升級 | Win / Linux / macOS 均需 Docker |
| Go 原始碼編譯 | 是(原生二進位) | 無 Docker、需自訂 toolset 或企業內網 | 三平台均可 go build |
三種方式驗證邏輯相同:可設定 Personal Access Token(PAT),或在本地 Docker / 二進位模式下走 OAuth 瀏覽器登入(token 僅駐留記憶體,不寫入磁碟)。
通用前置準備
無論選擇哪條路徑,建議先完成以下四步:
-
建立 GitHub PAT
開啟 Fine-grained PAT 建立頁,依你要使用的工具勾選權限。唯讀瀏覽儲存庫通常需要Contents: Read、Metadata: Read;若要建立 PR / Issue,再追加寫入權限。 -
確認宿主版本
- Cursor:v0.48.0+ 才支援遠端 Streamable HTTP
- Claude Desktop / VS Code:請參考各自 MCP 文件 -
(本地 Docker 方案)安裝並啟動 Docker
- Windows / macOS:Docker Desktop
- Linux:Docker Engine + 將目前使用者加入docker群組 -
預先拉取映像(選用但建議)
docker pull ghcr.io/github/github-mcp-server
若拉取出現 unauthorized,執行 docker logout ghcr.io 後重試——有時是過期的 ghcr 登入狀態造成干擾。
方式一:遠端託管(最省事)
GitHub 在 https://api.githubcopilot.com/mcp/ 提供託管 MCP 端點,本機無需 Docker。適合 Linux 伺服器、Windows 輕量環境,或公司政策禁止執行容器的情境。
Cursor 設定範例
編輯全域設定 ~/.cursor/mcp.json(Windows 路徑為 %USERPROFILE%\.cursor\mcp.json):
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer YOUR_GITHUB_PAT"
}
}
}
}
將 YOUR_GITHUB_PAT 替換為真實 token,儲存後完全重啟 Cursor。在 Settings → Tools & Integrations → MCP Tools 中應看到綠色線上指示;在 Composer 裡問一句「列出我的 GitHub 儲存庫」即可驗收。
注意事項
- 遠端模式目前以 PAT 驗證為主;部分宿主對 OAuth 的支援仍在完善中。
- 公司代理 / 防火牆需放行對
api.githubcopilot.com的 HTTPS 出站連線。 - 不要把 PAT 寫進版本庫;專案級設定使用
.cursor/mcp.json時記得加入.gitignore。
方式二:Docker 本地部署(官方推薦)
Docker 方案透過 stdio 與宿主通訊:宿主啟動 docker run -i ...,容器內行程讀寫標準輸入輸出。這也是 Claude Desktop、Windsurf、Cursor 一鍵安裝按鈕背後的預設命令。
macOS 安裝步驟
- 安裝 Docker Desktop for Mac(Apple Silicon 選 ARM64 版)。
- 選單列鯨魚圖示顯示 Running。
- 終端機驗證:
docker run --rm ghcr.io/github/github-mcp-server --help
- 寫入
~/.cursor/mcp.json:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
}
}
}
}
Linux 安裝步驟
- 依發行版安裝 Docker Engine(Ubuntu 範例:
sudo apt install docker.io)。 - 將使用者加入 docker 群組,避免每次
sudo:
sudo usermod -aG docker "$USER"
newgrp docker
- 確認 Docker 守護行程已啟動:
sudo systemctl enable --now docker。 - MCP 設定與 macOS 完全相同——
~/.cursor/mcp.json路徑一致。
在 無圖形介面的 Linux 伺服器上,若不想在設定裡明文寫入 PAT,可改用環境變數注入:
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
然後在 mcp.json 的 env 區塊裡引用同名變數(部分宿主支援 ${env:GITHUB_PERSONAL_ACCESS_TOKEN} 語法,以宿主文件為準)。
Windows 安裝步驟
- 安裝 Docker Desktop for Windows。
- 建議使用 WSL 2 後端(Settings → General → Use WSL 2 based engine)。 - 確認 Docker Desktop 系統匣圖示為執行狀態。
- 設定檔路徑:
%USERPROFILE%\.cursor\mcp.json。 - JSON 內容與 macOS 一致;
command仍為docker(Docker Desktop 會將 CLI 加入 PATH)。
Windows 常見陷阱:WSL 裡能跑 docker,但 Windows 宿主 Cursor 讀的是 Windows 端的 mcp.json——兩邊設定不要混用。若 Cursor 裝在 Windows、專案在 WSL,優先在 Windows 使用者目錄 設定 MCP。
OAuth 登入(免手動輸入 PAT)
官方映像內建 OAuth 應用程式憑證。Docker 模式下需將回呼埠映射到本機回環位址:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-p", "127.0.0.1:8085:8085",
"-e", "GITHUB_OAUTH_CALLBACK_PORT",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_OAUTH_CALLBACK_PORT": "8085"
}
}
}
}
首次連線會跳出瀏覽器完成 GitHub 登入;token 儲存在記憶體,容器結束即失效。無頭伺服器可查閱官方文件的 device code 回退流程。
方式三:Go 原始碼編譯(無 Docker)
適合無法安裝 Docker、或需要精簡 toolset(只暴露部分 API 能力)的情境。
三平台共同步驟
前置:安裝 Go 1.24+。
git clone https://github.com/github/github-mcp-server.git
cd github-mcp-server
go build -o github-mcp-server cmd/github-mcp-server/main.go
編譯產物命名可自訂;下文以 ./github-mcp-server 為例。
以 PAT 啟動(stdio 模式):
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxx"
./github-mcp-server stdio
Cursor 接入本地二進位:
{
"mcpServers": {
"github": {
"command": "/绝对路径/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
}
}
}
}
| 平台 | 二進位路徑範例 | 備註 |
|---|---|---|
| macOS | /Users/you/bin/github-mcp-server |
可 chmod +x 後放入 ~/bin |
| Linux | /home/you/.local/bin/github-mcp-server |
systemd 使用者服務可託管長期行程 |
| Windows | C:\\Tools\\github-mcp-server.exe |
JSON 內反斜線需寫成 \\ |
升級時重新 git pull && go build 即可;不必等待 Docker 映像發版。
接入其他 IDE 與 CLI
設定鍵名因宿主而異,但 Docker 命令列核心一致:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN \
ghcr.io/github/github-mcp-server
- Claude Desktop:
claude_desktop_config.json裡的mcpServers區塊,結構與 Cursor 相同。 - VS Code Copilot:支援遠端 + 本地;本地同樣建議使用 Docker 映像。
- Claude Code CLI:傾向輕量二進位方案,減少容器開銷。
各宿主完整範例請見官方儲存庫 docs/installation-guides/ 目錄。
安全與維運建議
- 最小權限 PAT:依 toolset 開啟權限,定期輪換。
- 設定檔權限:
chmod 600 ~/.cursor/mcp.json(Linux / macOS)。 - 唯讀模式:啟動參數可啟用 read-only,防止 AI 誤改儲存庫。
- 企業 GitHub Enterprise Server:需自建 OAuth App / GitHub App,不能使用 github.com 預設 OAuth 憑證——詳見官方
docs/oauth-login.md。
平台差異補充說明
路徑與環境變數
~/.cursor/mcp.json- macOS 與 Linux 的全域 MCP 設定;Windows 對應
%USERPROFILE%\.cursor\mcp.json。 GITHUB_PERSONAL_ACCESS_TOKEN- Docker / 二進位模式下的 PAT 環境變數名稱;設定後優先順序高於 OAuth 流程。
GITHUB_OAUTH_CALLBACK_PORT- OAuth 瀏覽器回呼監聽埠,Docker 情境通常固定為 8085。
快速鍵與慣用做法
在 Cursor Composer 中,可用 Cmd+Shift+P(Windows 為 Ctrl+Shift+P)開啟命令面板,搜尋 MCP 相關設定。早期有人習慣用 npx @modelcontextprotocol/server-github 一行命令啟動服務——該方式已停用,請改用本文的 Docker 或遠端端點方案。
正式環境務必將 PAT 放在環境變數或金鑰管理器裡,不要寫進會被 git 追蹤的專案檔案。
驗證清單(發佈前)
- MCP 面板綠點
- 工具列表出現
github_*前綴項目 - 試呼叫唯讀操作(如列儲存庫)成功
日誌位置提示
Cursor 日誌可在 Help → Toggle Developer Tools → Console 中過濾 MCP 關鍵字查看;Claude Desktop 日誌路徑因平台而異,官方 troubleshooting 章節有完整列表。
故障排除速查
| 現象 | 可能原因 | 處理 |
|---|---|---|
| MCP 紅點 / 工具列表為空 | JSON 語法錯誤或未重啟宿主 | 驗證 JSON,完全結束 Cursor 再開啟 |
docker: command not found |
Docker 未安裝或未加入 PATH | 重新安裝 Docker Desktop / Engine |
pull access denied |
ghcr 登入狀態過期 | docker logout ghcr.io 後重新拉取 |
| 401 / 403 | PAT 權限不足或過期 | 重新簽發 PAT 並更新設定 |
| OAuth 回呼失敗 | 埠 8085 未映射 | 檢查 -p 127.0.0.1:8085:8085 |
| 遠端 HTTP 連不上 | 代理攔截 | 設定系統代理或改用本地 Docker |
本地快速自檢:在終端機手動執行 Docker 命令,看 stderr 是否立即報錯;再比對 IDE 日誌裡的 MCP 啟動命令是否一致。
小結
- 想最快用上:遠端
https://api.githubcopilot.com/mcp/+ PAT,Cursor v0.48+ 直接設定url。 - 想穩定可重現:三平台統一
docker run -i --rm ... ghcr.io/github/github-mcp-server。 - 想極致輕量或自訂:
go build出二進位,stdio接入。
部署完成後,在 AI 對話裡用自然語言操作 GitHub——例如「為 kvmkit 儲存庫最近 5 個 open issue 做個摘要」——才是 MCP 真正省時間的地方。若你同時在搭建 CI/CD 流水線 或需要 7×24 雲端 Mac 建置節點,可以把 MCP 輔助開發與自動化發佈放在同一套工具鏈裡統籌規劃。
常見問題
GitHub MCP Server 一定要用 Docker 嗎?
不是。官方推薦 Docker 是因為跨平台一致、升級簡單;你也可以使用 GitHub 託管的遠端端點 https://api.githubcopilot.com/mcp/,或在本機編譯 Go 二進位透過 stdio 執行。
舊的 npm 套件 @modelcontextprotocol/server-github 還能用嗎?
不能。該 npm 套件自 2025 年 4 月起已停止維護,請改用官方 Docker 映像 ghcr.io/github/github-mcp-server 或從 github/github-mcp-server 儲存庫自行編譯。
Windows 上 Docker Desktop 未啟動時 MCP 會怎樣?
Cursor 等宿主會在 MCP 面板顯示紅點或連線失敗。請先確認 Docker Desktop 已執行,再執行 docker pull ghcr.io/github/github-mcp-server 驗證映像可拉取。
Personal Access Token 需要哪些權限?
取決於你要呼叫的工具集。唯讀瀏覽儲存庫通常需要 Contents、Metadata 等讀取權限;若要建立 Issue、PR 或推送程式碼,需額外勾選對應寫入權限。建議依最小權限原則建立 Fine-grained PAT。
把 CI/CD 放在 M4 Mac mini 上,才算真正省心
Xcode, Fastlane, CocoaPods, and SPM are first-class on macOS. Mac mini M4 unified memory keeps signing and archiving smooth; ~4W standby power suits 24/7 build nodes.