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 列表。