AI 程式設計教程中文版
官方教程中文版05 · MCP & Security

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 的基本結構,並知道如何用 disableddisabledTools 縮小風險面。

1. MCP 提供兩類能力

官方 MCP 文件把核心能力拆成兩類。

能力官方說明風險邊界
Context ResourcesAI 可以從 MCP server 讀取資料來支援建議可能讀取資料庫 schema、日誌、文件、業務資料
Custom ToolsMCP server 可以暴露特定安全動作可能建立 issue、搜尋外部系統、觸發寫操作

官方例子包括:

  • 寫 SQL 時讀取 Neon 或 Supabase schema。
  • 排障時拉取 Netlify 或 Heroku build logs。
  • 為待辦事項建立 Linear issue。
  • 在 Notion 或 GitHub 搜尋認證模式。

這些都不是普通“補上下文”。它們會把 agent 接到真實系統。

2. 優先用 MCP Store

官方連線路徑是透過內建 MCP Store:

  1. 從 editor agent panel 頂部 ... 開啟 MCP Store。
  2. 瀏覽並安裝支援的 server。
  3. 按螢幕提示完成認證。
  4. 安裝後,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"
      }
    }
  }
}

支援的關鍵欄位:

欄位用途
commandstdio transport 的執行檔路徑
serverUrlremote server 的 Streamable HTTP URL
argsstdio server 引數
envstdio server 環境變數
cwdstdio server 工作目錄
headersremote server 自定義 HTTP headers
authProviderType認證 provider,例如 google_credentials
oauthOAuth client credentials
disabled臨時停用 server
disabledTools停用指定 tool,不提供給模型

disabledTools 是商業專案裡很關鍵的開關。能讀資料的 tool 和能寫外部系統的 tool 應該分開評估,不要因為需要一個資源就放開整個 server。

4. 認證方式

官方文件列出三類常見認證。

方式官方配置適合
Google ADCauthProviderType: "google_credentials"Google Cloud 相關 MCP
OAuth DCR只填 serverUrl,由 Antigravity 處理動態註冊支援 dynamic client registration 的 server
手動 OAuth clientoauth.clientId / oauth.clientSecret不支援 DCR 的 OAuth server
Custom headersheaders.AuthorizationAPI key 或 bearer token

Google ADC 需要先執行:

gcloud auth application-default login

手動 OAuth 時,官方要求 redirect URI 註冊為:

https://antigravity.google/oauth-callback

Access tokens 會儲存在:

~/.gemini/antigravity/mcp_oauth_tokens.json

不要把 API key、bearer token、OAuth client secret 寫進專案儲存庫。官方配置路徑在使用者目錄,團隊專案應使用憑據管理和本機私有配置。

5. 接入前的風險評估

接入任何 MCP server 前,先回答:

  1. 它暴露哪些 resources?
  2. 它暴露哪些 tools?
  3. tool 是否會寫外部系統?
  4. 認證 token 存在哪裡?
  5. 是否需要 disabledTools
  6. 是否應該只在某個 workspace 使用?
  7. 是否有生產資料、客戶資料或付費系統風險?
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 個問題檢查自己是否真正理解:

  1. MCP 的 Context Resources 和 Custom Tools 有什麼區別?
  2. disableddisabledTools 分別解決什麼問題?
  3. 為什麼 API key 或 OAuth token 不應該進入專案儲存庫?

透過標準:你能審查一個 MCP server 配置,並決定是否需要停用某些 tools 或僅在特定 workspace 使用。

官方來源

接下來去哪

本頁目錄