如果你是一名开发者,你一定了解「Alt-Tab 之舞」。你正在写代码,需要查看数据库模式,于是 Alt-Tab 切换到 Chrome。需要查看部署日志,Alt-Tab 切换到 Vercel。需要查看 Jira 工单,Alt-Tab 切换到 Jira。

Google 的新 AntiGravity IDE 令人印象深刻,但其真正的威力隐藏在一个叫做 MCP(模型上下文协议)的功能中。

如果你正确集成了 MCP,就可以终结 Alt-Tab 之舞。信息会主动来到面前。

开发者痛点 手动操作步骤
调试测试失败 离开 IDE → 打开 Jenkins/Cloud Build → 找到特定日志文件 → 复制错误追踪 → 粘贴回 IDE。
处理支持工单 离开 IDE → 打开 Linear/Jira → 找到工单 ID → 阅读详情 → 切换到 GitHub → 找到相关提交 → 切换回 IDE。
了解新服务 离开 IDE → 搜索内部文档 → 复制设置说明 → 在终端运行命令。

什么是 MCP?(简单解释)

把 AntiGravity(及其 AI 代理 Gemini)想象成一位从未见过你公司内部工具的杰出开发者。

  • 没有 MCP:AI 很聪明,但如同睁眼瞎。它能看到你打开文件中的代码,但对你的数据库表、云日志或问题追踪器一无所知。
  • 有了 MCP:你给 AI 提供了一根「USB 数据线」,可以直接插入你的工具。它给 AI 提供了读取数据库或在终端运行命令的权限指令

架构:工作原理

MCP 基于客户端-主机-服务器架构运行:

  • 主机:Google AntiGravity(你的 IDE)。
  • 客户端:在 AntiGravity 内运行的 AI 代理。
  • 服务器:位于代理和你的工具(如 Supabase)之间的轻量级应用程序(MCP 服务器)。

当你向 AntiGravity 询问「查询 users 表」时,代理会向 Supabase MCP 服务器发送标准化的 JSON-RPC 消息。服务器将其转换为 SQL 查询,对你的数据库执行,并以代理能理解的格式返回结果。

「沉浸式编程」理念

AntiGravity 提倡「沉浸式编程」——一种描述意图、由代理处理实现的心流状态。MCP 是沉浸式编程的引擎。如果你必须停下来复制粘贴数据库类型,就无法进入「沉浸」状态。有了 MCP,你可以保持心流,代理会自动获取所需信息。

「前后对比」:Supabase 案例

假设你需要编写一个获取用户数据的函数,但忘记了 Supabase 数据库中的确切列名。

🛑 旧方式(没有 MCP):

  1. 离开 IDE。
  2. 打开 Chrome 并访问 supabase.com。
  3. 登录并找到项目。
  4. 等待仪表盘加载。
  5. 点击「Table Editor」>「Users」。
  6. 记住列名是 full_name,而不是 username
  7. 返回 IDE。
  8. 手动输入代码。

✅ AntiGravity 方式(有 MCP):

你留在编辑器中,直接对代理说:
「@Supabase 检查 'users' 表结构并编写一个 TypeScript 函数来获取个人资料详情。」

结果:代理通过 MCP 连接在毫秒内「读取」你的实时数据库模式,并自动用正确的列名(full_name)编写代码。无需打开浏览器。

MCP 的三大支柱

你连接的每个 MCP 服务器都为代理提供以下一种或多种能力:

支柱 能力 实际应用
资源 只读上下文。获取数据的能力。 代理可以读取:BigQuery 模式、GitHub 仓库结构或团队的 Notion 文档。
工具 可执行操作。运行授权命令的能力。 代理可以:创建 Linear 问题、执行 Firestore 查询或触发 Cloudflare Worker 部署。
提示词 预设工作流。优化的操作步骤序列。 代理可以运行:「Firebase GenAI 初始化指南」、「部署到预发布环境」或「修复最近的生产 Bug」。

逐步说明:如何将这些添加到 AntiGravity

准备好设置了吗?大约只需 2 分钟。

第一步:打开代理管理器

  1. 启动 Google AntiGravity
  2. 查看右侧的代理面板。
  3. 点击顶部的 「...」(更多选项)菜单。
  4. 选择 MCP 服务器

第二步:访问配置文件

你会看到一个「商店」条目列表(类似迷你应用商店)。虽然可以从这里安装一些服务器,但要完全控制(如添加 Supabase 密钥),你需要原始配置文件。

  1. 点击 管理 MCP 服务器按钮。
  2. 找到标有 编辑配置查看原始配置的链接或按钮。
  3. 这会打开 mcp_config.json

第三步:粘贴你的配置

在 mcpServers 块中添加你的服务器。AntiGravity v1.20.x 支持 ${VAR_NAME} 环境变量替换,无需硬编码密钥。以下是一个结合 Supabase 和 git 工具的完整示例:

{
  "mcpServers": {
    "my-supabase": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "${SUPABASE_CONNECTION_STRING}"
      ]
    },
    "git-tool": {
      "command": "npx",
      "args": ["-y", "mcp-server-git", "--repository", "/path/to/your/repo"]
    }
  }
}

第四步:重新加载并验证

  1. 保存文件。
  2. 重启 AntiGravity(或重新加载窗口)。
  3. 打开代理聊天并输入:「你有哪些可用工具?」
  4. 代理应该列出 query_databaseget_table_schema 等工具。

进阶教程:构建你自己的 MCP 服务器

有时,你需要的工具还没有 MCP 服务器。也许是内部遗留 API 或自定义 CLI 工具。AntiGravity 的美妙之处在于,你可以在大约 10 分钟内构建自己的服务器。

前提条件

  • 已安装 Node.js。
  • 基本 TypeScript 知识。

第一步:初始化项目

mkdir my-custom-mcp
cd my-custom-mcp
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node
npx tsc --init

第二步:服务器代码(src/index.ts)

我们将创建一个简单的服务器,暴露一个「获取内部系统状态」的工具。

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
import { z } from "zod";

// 1. 创建服务器实例
const server = new Server(
  {
    name: "internal-tools",
    version: "1.0.0",
  },
  {
    capabilities: {
      tools: {},
    },
  }
);

// 2. 定义工具
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: "get_system_status",
        description: "检查内部遗留 API 的健康状态",
        inputSchema: {
          type: "object",
          properties: {
            environment: {
              type: "string",
              description: "prod 或 staging",
            },
          },
          required: ["environment"],
        },
      },
    ],
  };
});

// 3. 处理工具执行
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "get_system_status") {
    const env = request.params.arguments?.environment;

    // 在真实应用中,这里会从你的 API 获取数据
    const status = env === "prod" ? "OPERATIONAL" : "MAINTENANCE";

    return {
      content: [
        {
          type: "text",
          text: `System status for ${env}: ${status}`,
        },
      ],
    };
  }
  throw new Error("Tool not found");
});

// 4. 通过 Stdio 连接
const transport = new StdioServerTransport();
await server.connect(transport);

第三步:编译并配置

编译你的 TypeScript:

npx tsc

添加到 mcp_config.json

{
  "mcpServers": {
    "internal-tools": {
      "command": "node",
      "args": ["/Users/a0000/Desktop/learn/my-custom-mcp/src/index.js"]
    }
  }
}

现在,重启 AntiGravity。你可以问代理:「检查 prod 的系统状态」,它就会执行你的自定义代码!

注意package.json  声明"type": "module",

故障排查与常见陷阱

问题:「连接被拒绝」或代理说「工具未找到」

  • 解决方案:检查 mcp_config.json 中的命令路径。必须是绝对路径(如 /Users/name/...),而不是相对路径(./src/...)。
  • 解决方案:确保服务器实际正在运行。如果使用 npx,第一次运行可能会在下载包时超时。先在终端手动运行一次 npx 命令以缓存它。

问题:「Stdio 错误」/JSON 解析错误

  • 原因:你的 MCP 服务器正在向 stdout 记录 console.log("Starting server...")
  • 解决方案:MCP 通过 stdout 通信。任何非 JSON 输出都会破坏协议。将日志改用 console.error(),它输出到 stderr 不会破坏连接。

问题:代理对工具参数产生幻觉

  • 解决方案:你 MCP 服务器定义中的 inputSchema 可能过于模糊。要明确。为 JSON schema 中的每个属性添加描述。代理读取这些描述来了解如何使用工具。

未来是代理化的

AntiGravity 是引擎,而 MCP 提供燃料。通过花时间配置这些服务器,你不仅仅是在使用 AI 代码生成器;你正在构建一个 AI 指挥中心

从一个集成开始——先尝试连接你的数据库。一旦体验到有实时数据上下文的编码速度,你就再也不会回到「Alt-Tab 之舞」了。

模型上下文协议不仅仅是一个配置文件——它是下一个开发时代的基础。通过安全地连接你的工具,AntiGravity 打造了一个开发团队,其中 AI 代理不仅仅是参与者,而是完全集成的自主队友。

迈出下一步:打开你的 AntiGravity IDE,访问管理 MCP 服务器面板,开始为你的代理提供它所需的工具。

准备好探索了吗?访问我们的MCP 服务器目录,发现 1000+ 数据库、云平台、项目管理工具等领域的集成。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐