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 使用。

官方来源

接下来去哪

本页目录