MCP 整合與許可權邊界
基於官方 MCP 文件解釋 Antigravity MCP Store、自定義 server、mcp_config.json、OAuth、Google ADC、headers 和 disabledTools。
Antigravity 支援 Model Context Protocol,也就是 MCP。官方文件把 MCP 描述成 Antigravity 和更廣泛開發環境之間的橋樑:它可以讓 editor 安全連線本地工具、資料庫和外部服務,獲取開啟檔案之外的即時上下文。
這既是能力擴充套件,也是許可權擴大。接入 MCP 前,必須先知道 server 暴露了哪些 resources 和 tools,哪些會讀取資料,哪些會觸發外部副作用。
閱讀目標:讀完本章,你應該能看懂 ~/.gemini/antigravity/mcp_config.json 的基本結構,並知道如何用 disabled 和 disabledTools 縮小風險面。
1. MCP 提供兩類能力
官方 MCP 文件把核心能力拆成兩類。
| 能力 | 官方說明 | 風險邊界 |
|---|---|---|
| Context Resources | AI 可以從 MCP server 讀取資料來支援建議 | 可能讀取資料庫 schema、日誌、文件、業務資料 |
| Custom Tools | MCP server 可以暴露特定安全動作 | 可能建立 issue、搜尋外部系統、觸發寫操作 |
官方例子包括:
- 寫 SQL 時讀取 Neon 或 Supabase schema。
- 排障時拉取 Netlify 或 Heroku build logs。
- 為待辦事項建立 Linear issue。
- 在 Notion 或 GitHub 搜尋認證模式。
這些都不是普通“補上下文”。它們會把 agent 接到真實系統。
2. 優先用 MCP Store
官方連線路徑是透過內建 MCP Store:
- 從 editor agent panel 頂部
...開啟 MCP Store。 - 瀏覽並安裝支援的 server。
- 按螢幕提示完成認證。
- 安裝後,server 的 resources 和 tools 會自動對 editor 可用。
MCP Store 更適合普通使用者,因為它減少了手工配置錯誤。自定義 server 只在你明確知道 transport、認證和 tool 風險時使用。
3. 自定義 MCP server 配置
官方文件說明,自定義配置檔案在:
~/.gemini/antigravity/mcp_config.json基本結構:
{
"mcpServers": {
"serverName": {
"command": "path/to/executable",
"args": ["--arg1", "value1"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}支援的關鍵欄位:
| 欄位 | 用途 |
|---|---|
command | stdio transport 的執行檔路徑 |
serverUrl | remote server 的 Streamable HTTP URL |
args | stdio server 引數 |
env | stdio server 環境變數 |
cwd | stdio server 工作目錄 |
headers | remote server 自定義 HTTP headers |
authProviderType | 認證 provider,例如 google_credentials |
oauth | OAuth client credentials |
disabled | 臨時停用 server |
disabledTools | 停用指定 tool,不提供給模型 |
disabledTools 是商業專案裡很關鍵的開關。能讀資料的 tool 和能寫外部系統的 tool 應該分開評估,不要因為需要一個資源就放開整個 server。
4. 認證方式
官方文件列出三類常見認證。
| 方式 | 官方配置 | 適合 |
|---|---|---|
| Google ADC | authProviderType: "google_credentials" | Google Cloud 相關 MCP |
| OAuth DCR | 只填 serverUrl,由 Antigravity 處理動態註冊 | 支援 dynamic client registration 的 server |
| 手動 OAuth client | oauth.clientId / oauth.clientSecret | 不支援 DCR 的 OAuth server |
| Custom headers | headers.Authorization 等 | API key 或 bearer token |
Google ADC 需要先執行:
gcloud auth application-default login手動 OAuth 時,官方要求 redirect URI 註冊為:
https://antigravity.google/oauth-callbackAccess tokens 會儲存在:
~/.gemini/antigravity/mcp_oauth_tokens.json不要把 API key、bearer token、OAuth client secret 寫進專案儲存庫。官方配置路徑在使用者目錄,團隊專案應使用憑據管理和本機私有配置。
5. 接入前的風險評估
接入任何 MCP server 前,先回答:
- 它暴露哪些 resources?
- 它暴露哪些 tools?
- tool 是否會寫外部系統?
- 認證 token 存在哪裡?
- 是否需要
disabledTools? - 是否應該只在某個 workspace 使用?
- 是否有生產資料、客戶資料或付費系統風險?
flowchart TD
Need["需要 MCP"] --> Store{"MCP Store 有官方整合"}
Store -->|有| Install["從 Store 安裝"]
Store -->|無| Custom["配置 custom server"]
Install --> Audit["審計 resources / tools"]
Custom --> Audit
Audit --> Risk{"存在寫操作或敏感資料"}
Risk -->|是| Disable["disabledTools / Ask / 最小授權"]
Risk -->|否| Use["按 workspace 任務使用"]
深讀:為什麼 MCP 不應該預設全域性放開
MCP 的價值是讓 agent 直接讀取外部上下文和呼叫工具。問題也在這裡:外部上下文可能包含敏感資料,工具可能能修改 issue、資料庫、設計稿、雲服務或支付系統。
所以 MCP 應該按任務接入、按 tool 授權、按 workspace 審查。能從 Store 安裝也不等於一定適合當前專案,尤其是 GitHub、Stripe、PayPal、資料庫、雲服務和瀏覽器開發工具這類高許可權整合。
本章自檢
完成本章後,用這 3 個問題檢查自己是否真正理解:
- MCP 的 Context Resources 和 Custom Tools 有什麼區別?
disabled和disabledTools分別解決什麼問題?- 為什麼 API key 或 OAuth token 不應該進入專案儲存庫?
透過標準:你能審查一個 MCP server 配置,並決定是否需要停用某些 tools 或僅在特定 workspace 使用。
官方來源
- Google Antigravity MCP Integration —— 官方說明 MCP Store、自定義 server、配置欄位、Google ADC、OAuth、headers 和支援 server 列表。