本服务将 Antigravity 代理出来,转换为标准的 Claude API 和 Gemini API 接口,
特性:
thoughtSignature,在 thinking / 工具调用等场景中确保下一轮请求能原样带回签名,避免 missing thought_signature 类校验错误。tool_use / tool_result 与 Gemini functionCall / functionResponse 的互转,兼容需要工具调用的客户端/工作流。关于MCP: 在使用MCP时,claude转为antigravity的v1internal接口所使用的gemini格式后,v1internal内部判断当前model是claude,会将request转回claude格式,但是其内部接口又不能使用claude的一些字段,所以MCP会有各种奇奇怪怪的问题,这也是使用原生Antigravity时会出现各种MCP问题的原因。只能看google后续会不会去修Antigravity的MCP,或者你也可以试用下如下WORK-AROUND FOR MCP方案
仅覆盖
mcp__*工具,用于绕过 Antigravity/v1internal 对 MCP tools 的兼容性问题。
测试结果:

原理(简述)
mcp__* tools 且 AG2API_MCP_XML_ENABLED=true 时:
mcp__* tools 透传给 v1internal(避免 schema/字段不兼容导致的 400/校验错误)<mcp__...>{...}</mcp__...> 文本表示工具调用mcp__* tool_use/tool_result 也会编码为 XML 文本回传上游tool_use;客户端返回 tool_result 后再编码为 <mcp_tool_result>{...}</mcp_tool_result> 发回上游。示例:
<mcp__serena__check_onboarding_performed>{}</mcp__serena__check_onboarding_performed>
使用方法
.env 开启:AG2API_MCP_XML_ENABLED=true
mcp__* 工具场景即可(代理会自动桥接 XML ↔ tool_use/tool_result)。AG2API_SWITCH_TO_MCP_MODEL旧方案通过在首轮流式输出中检测特殊字符串 AG2API_SWITCH_TO_MCP_MODEL(或仍然出现 mcp__* tool_use)后,切换到指定 gemini-* 模型重发本轮请求以执行 MCP;保留兼容但不再推荐,后续可能移除。
推荐启动方式:在项目根目录运行
npm run start(或node src/server.js)。本项目会以当前工作目录(process.cwd())定位.env、auths/、log/;如果你在src/目录运行,则对应路径会变成src/.env、src/auths/、src/log/。
启动后可直接访问管理界面:http://localhost:3000/(端口以 AG2API_PORT 为准,默认 3000)。
确保已安装 Node.js (建议版本 v18 或更高)。
在项目根目录执行一次即可:
npm install
本项目核心逻辑可零依赖运行;但如果你启用了代理(
AG2API_PROXY_ENABLED=true),建议执行一次npm install以确保代理对fetch生效(依赖包含undici/node-fetch/*-proxy-agent等)。
注意:如果在 PowerShell 中遇到“无法加载文件...npm.ps1”的错误,请尝试使用 CMD 运行,或者使用以下命令绕过策略:
cmd /c npm install
在项目根目录下创建 .env(建议从 .env.example 复制),通过环境变量配置服务。
示例 .env:
AG2API_HOST=0.0.0.0
AG2API_PORT=3000
AG2API_API_KEYS=sk-your-secret-key-1,sk-your-secret-key-2
AG2API_PROXY_ENABLED=false
AG2API_PROXY_URL=
AG2API_DEBUG=false
AG2API_LOG_RETENTION_DAYS=3
AG2API_RETRY_DELAY_MS=1200
AG2API_QUOTA_REFRESH_S=300
AG2API_CLAUDE_MODEL_MAP={"claude-haiku-4-5":"gemini-3-flash","claude-haiku-4-5-20251001":"gemini-3-flash"}
AG2API_GEMINI_MODEL_MAP={"gemini-3-flash-preview":"gemini-3-flash"}
AG2API_MCP_XML_ENABLED=true
# Deprecated:
# AG2API_SWITCH_TO_MCP_MODEL=gemini-3-flash
AG2API_UPDATE_REPO=znlsl/Antigravity2Api
配置项说明:
AG2API_HOST:监听地址AG2API_PORT:监听端口AG2API_API_KEYS:API Key(逗号分隔或 JSON 数组字符串;为空表示不校验)AG2API_PROXY_ENABLED:是否启用代理(true/false)AG2API_PROXY_URL:代理地址AG2API_DEBUG:是否开启 debug(true/false)AG2API_LOG_RETENTION_DAYS:日志保留天数(默认 3;设为 0 表示不自动清理;当 >0 且服务长时间不重启时,会按该天数轮转日志文件,并在轮转后清理旧日志文件,避免单个日志无限增长)AG2API_RETRY_DELAY_MS:网络错误 / 429 重试前的固定等待(毫秒,默认 1200)AG2API_QUOTA_REFRESH_S:额度刷新间隔(秒;每次并发刷新所有账号;默认 300)AG2API_CLAUDE_MODEL_MAP:Claude 模型映射(Claude API 入站 model -> 上游 model),仅支持 JSON 对象字符串(支持多个映射)AG2API_GEMINI_MODEL_MAP:Gemini 模型映射(Gemini API 入站 model -> 上游 model),仅支持 JSON 对象字符串(支持多个映射)AG2API_MCP_XML_ENABLED:MCP XML 方案开关(仅 mcp__*);开启后不透传 mcp__* tools 给 v1internal,改为 XML 协议桥接并在下游还原为 tool_use/tool_resultAG2API_SWITCH_TO_MCP_MODEL:(已弃用)旧的 MCP Switch 方案;为空/不配置表示关闭,配置为 gemini-*(如 gemini-3-flash)表示在检测到 AG2API_SWITCH_TO_MCP_MODEL 信号或 mcp__* tool_use 时自动切换并重试AG2API_UPDATE_REPO:管理界面版本检查的 GitHub 仓库(默认 znlsl/Antigravity2Api,用于获取 latest release)Google OAuth Client(可选覆盖):
GOOGLE_OAUTH_CLIENT_IDGOOGLE_OAUTH_CLIENT_SECRET运行以下命令启动服务器:
npm run start
启动后打开管理界面添加/删除账号:
http://localhost:3000/如果你仍然希望用命令行方式添加账号,也可以运行:
npm run add
npm run add(或node src/server.js --add)授权成功后会继续启动服务(同npm run start),无需再手动重启。
管理界面提供:
auths/*.json)auths/*.json)如果你设置了 AG2API_API_KEYS,页面会要求你输入 Key 才能调用管理接口(Key 仅保存在浏览器本地)。
OAuth 回调默认使用:
http://localhost:<port>/oauth-callback(<port>取AG2API_PORT,默认 3000)。 若你是在远程机器访问本服务,授权完成后浏览器可能会跳转到localhost,请把地址栏里的localhost:<port>改成当前服务地址再回车即可。 如果你不方便改地址,也可以直接复制地址栏里的完整回调链接(或仅复制code),粘贴到管理页 “提交” 输入框中完成授权入库。
推荐直接使用已发布的 GHCR 镜像:ghcr.io/znlsl/antigravity2api:latest(linux/amd64 + linux/arm64)。
.env):cp .env.example .env
docker compose -f docker-compose.ghcr.yml up -d
docker compose -f docker-compose.ghcr.yml up -d --pull always
私有仓库/私有镜像需要先登录:
docker login ghcr.io
本地构建适合你要改代码/调试 Dockerfile 的情况。
用 compose 构建并启动:
docker compose up -d --build
或手动 build + run:
构建镜像:
docker build -t antigravity2api:latest .
启动容器(使用 .env 传配置):
docker run -d --name antigravity2api \
-p 3000:3000 \
--env-file .env \
-v "$(pwd)/auths:/app/auths" \
-v "$(pwd)/log:/app/log" \
antigravity2api:latest
数据持久化:
./auths(账号凭证)./log(日志)已提供工作流:.github/workflows/release.yml:
每次 push 到 main 会自动构建并推送:
ghcr.io/znlsl/antigravity2api:latest
平台:linux/amd64 + linux/arm64(multi-arch)
每次 push tag(任意 tag,例如 v1.2.3 / 2025.12.27-t020612)会自动:
ghcr.io/znlsl/antigravity2api:<tag> + :latest如果你使用的是 GHCR 镜像部署(docker-compose.ghcr.yml),当仓库有新提交并且 GitHub Actions 构建完成后,在服务器执行:
docker compose -f docker-compose.ghcr.yml pull
docker compose -f docker-compose.ghcr.yml up -d
如果你使用的是本地构建(docker-compose.yml 的 build:),更新代码后需要重新构建:
docker compose up -d --build
在客户端中添加自定义提供商:
http://localhost:3000 (或 http://<本机IP>:3000)
http://localhost:3000/v1/messageshttp://localhost:3000/v1betaAG2API_API_KEYS 中配置的任意一个 Key。
Authorization: Bearer <key> / x-api-key / anthropic-api-key / x-goog-api-keyopencode配置:
.env中配置
AG2API_CLAUDE_MODEL_MAP={"claude-haiku-4-5":"gemini-3-flash","claude-haiku-4-5-20251001":"gemini-3-flash"}
opencode中connect选择Anthropic,手动输入API KEY
C:\Users\你的用户名.config\opencode\opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "http://localhost:3000/v1"
}
}
}
}
401 Unauthorized: 检查客户端填写的 API Key 是否与 AG2API_API_KEYS 中的一致。
Proxy 错误 / 超时:
npm install 安装依赖。AG2API_PROXY_URL 是否正确且代理软件已开启。socks-proxy-agent 已安装。支持的模型:
claude-sonnet-4-5claude-sonnet-4-5-thinkingclaude-sonnet-4-5-20250929claude-opus-4-5claude-opus-4-5-thinkingclaude-opus-4-5-20251101gemini-3-pro-highgemini-3-pro-lowgemini-3-flashgemini-2.5-flashgemini-2.5-flash-litegpt-oss-120b-medium(仅限于chat).claude/settings.json 参考配置(示例):
{
"ANTHROPIC_MODEL": "claude-opus-4-5-thinking",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-3-flash",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-thinking",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5-thinking",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
}
claude-sonnet-4-5claude-sonnet-4-5-thinkingclaude-opus-4-5-thinkinggemini-3-pro-highgemini-3-pro-lowgemini-3-flashgemini-3-pro-imagegemini-2.5-flashgemini-2.5-flash-litegpt-oss-120b-medium(仅限于chat)OAuth 回调打不开:
http://localhost:<port>/oauth-callback,请把 localhost:<port> 改成当前服务地址再访问。code),粘贴到管理页输入框中点击 “提交”。JavaScript
97.5%
CSS
1.3%
HTML
1.1%
本服务将 Antigravity 代理出来,转换为标准的 Claude API 和 Gemini API 接口,
特性:
thoughtSignature,在 thinking / 工具调用等场景中确保下一轮请求能原样带回签名,避免 missing thought_signature 类校验错误。tool_use / tool_result 与 Gemini functionCall / functionResponse 的互转,兼容需要工具调用的客户端/工作流。关于MCP: 在使用MCP时,claude转为antigravity的v1internal接口所使用的gemini格式后,v1internal内部判断当前model是claude,会将request转回claude格式,但是其内部接口又不能使用claude的一些字段,所以MCP会有各种奇奇怪怪的问题,这也是使用原生Antigravity时会出现各种MCP问题的原因。只能看google后续会不会去修Antigravity的MCP,或者你也可以试用下如下WORK-AROUND FOR MCP方案
仅覆盖
mcp__*工具,用于绕过 Antigravity/v1internal 对 MCP tools 的兼容性问题。
测试结果:

原理(简述)
mcp__* tools 且 AG2API_MCP_XML_ENABLED=true 时:
mcp__* tools 透传给 v1internal(避免 schema/字段不兼容导致的 400/校验错误)<mcp__...>{...}</mcp__...> 文本表示工具调用mcp__* tool_use/tool_result 也会编码为 XML 文本回传上游tool_use;客户端返回 tool_result 后再编码为 <mcp_tool_result>{...}</mcp_tool_result> 发回上游。示例:
<mcp__serena__check_onboarding_performed>{}</mcp__serena__check_onboarding_performed>
使用方法
.env 开启:AG2API_MCP_XML_ENABLED=true
mcp__* 工具场景即可(代理会自动桥接 XML ↔ tool_use/tool_result)。AG2API_SWITCH_TO_MCP_MODEL旧方案通过在首轮流式输出中检测特殊字符串 AG2API_SWITCH_TO_MCP_MODEL(或仍然出现 mcp__* tool_use)后,切换到指定 gemini-* 模型重发本轮请求以执行 MCP;保留兼容但不再推荐,后续可能移除。
推荐启动方式:在项目根目录运行
npm run start(或node src/server.js)。本项目会以当前工作目录(process.cwd())定位.env、auths/、log/;如果你在src/目录运行,则对应路径会变成src/.env、src/auths/、src/log/。
启动后可直接访问管理界面:http://localhost:3000/(端口以 AG2API_PORT 为准,默认 3000)。
确保已安装 Node.js (建议版本 v18 或更高)。
在项目根目录执行一次即可:
npm install
本项目核心逻辑可零依赖运行;但如果你启用了代理(
AG2API_PROXY_ENABLED=true),建议执行一次npm install以确保代理对fetch生效(依赖包含undici/node-fetch/*-proxy-agent等)。
注意:如果在 PowerShell 中遇到“无法加载文件...npm.ps1”的错误,请尝试使用 CMD 运行,或者使用以下命令绕过策略:
cmd /c npm install
在项目根目录下创建 .env(建议从 .env.example 复制),通过环境变量配置服务。
示例 .env:
AG2API_HOST=0.0.0.0
AG2API_PORT=3000
AG2API_API_KEYS=sk-your-secret-key-1,sk-your-secret-key-2
AG2API_PROXY_ENABLED=false
AG2API_PROXY_URL=
AG2API_DEBUG=false
AG2API_LOG_RETENTION_DAYS=3
AG2API_RETRY_DELAY_MS=1200
AG2API_QUOTA_REFRESH_S=300
AG2API_CLAUDE_MODEL_MAP={"claude-haiku-4-5":"gemini-3-flash","claude-haiku-4-5-20251001":"gemini-3-flash"}
AG2API_GEMINI_MODEL_MAP={"gemini-3-flash-preview":"gemini-3-flash"}
AG2API_MCP_XML_ENABLED=true
# Deprecated:
# AG2API_SWITCH_TO_MCP_MODEL=gemini-3-flash
AG2API_UPDATE_REPO=znlsl/Antigravity2Api
配置项说明:
AG2API_HOST:监听地址AG2API_PORT:监听端口AG2API_API_KEYS:API Key(逗号分隔或 JSON 数组字符串;为空表示不校验)AG2API_PROXY_ENABLED:是否启用代理(true/false)AG2API_PROXY_URL:代理地址AG2API_DEBUG:是否开启 debug(true/false)AG2API_LOG_RETENTION_DAYS:日志保留天数(默认 3;设为 0 表示不自动清理;当 >0 且服务长时间不重启时,会按该天数轮转日志文件,并在轮转后清理旧日志文件,避免单个日志无限增长)AG2API_RETRY_DELAY_MS:网络错误 / 429 重试前的固定等待(毫秒,默认 1200)AG2API_QUOTA_REFRESH_S:额度刷新间隔(秒;每次并发刷新所有账号;默认 300)AG2API_CLAUDE_MODEL_MAP:Claude 模型映射(Claude API 入站 model -> 上游 model),仅支持 JSON 对象字符串(支持多个映射)AG2API_GEMINI_MODEL_MAP:Gemini 模型映射(Gemini API 入站 model -> 上游 model),仅支持 JSON 对象字符串(支持多个映射)AG2API_MCP_XML_ENABLED:MCP XML 方案开关(仅 mcp__*);开启后不透传 mcp__* tools 给 v1internal,改为 XML 协议桥接并在下游还原为 tool_use/tool_resultAG2API_SWITCH_TO_MCP_MODEL:(已弃用)旧的 MCP Switch 方案;为空/不配置表示关闭,配置为 gemini-*(如 gemini-3-flash)表示在检测到 AG2API_SWITCH_TO_MCP_MODEL 信号或 mcp__* tool_use 时自动切换并重试AG2API_UPDATE_REPO:管理界面版本检查的 GitHub 仓库(默认 znlsl/Antigravity2Api,用于获取 latest release)Google OAuth Client(可选覆盖):
GOOGLE_OAUTH_CLIENT_IDGOOGLE_OAUTH_CLIENT_SECRET运行以下命令启动服务器:
npm run start
启动后打开管理界面添加/删除账号:
http://localhost:3000/如果你仍然希望用命令行方式添加账号,也可以运行:
npm run add
npm run add(或node src/server.js --add)授权成功后会继续启动服务(同npm run start),无需再手动重启。
管理界面提供:
auths/*.json)auths/*.json)如果你设置了 AG2API_API_KEYS,页面会要求你输入 Key 才能调用管理接口(Key 仅保存在浏览器本地)。
OAuth 回调默认使用:
http://localhost:<port>/oauth-callback(<port>取AG2API_PORT,默认 3000)。 若你是在远程机器访问本服务,授权完成后浏览器可能会跳转到localhost,请把地址栏里的localhost:<port>改成当前服务地址再回车即可。 如果你不方便改地址,也可以直接复制地址栏里的完整回调链接(或仅复制code),粘贴到管理页 “提交” 输入框中完成授权入库。
推荐直接使用已发布的 GHCR 镜像:ghcr.io/znlsl/antigravity2api:latest(linux/amd64 + linux/arm64)。
.env):cp .env.example .env
docker compose -f docker-compose.ghcr.yml up -d
docker compose -f docker-compose.ghcr.yml up -d --pull always
私有仓库/私有镜像需要先登录:
docker login ghcr.io
本地构建适合你要改代码/调试 Dockerfile 的情况。
用 compose 构建并启动:
docker compose up -d --build
或手动 build + run:
构建镜像:
docker build -t antigravity2api:latest .
启动容器(使用 .env 传配置):
docker run -d --name antigravity2api \
-p 3000:3000 \
--env-file .env \
-v "$(pwd)/auths:/app/auths" \
-v "$(pwd)/log:/app/log" \
antigravity2api:latest
数据持久化:
./auths(账号凭证)./log(日志)已提供工作流:.github/workflows/release.yml:
每次 push 到 main 会自动构建并推送:
ghcr.io/znlsl/antigravity2api:latest
平台:linux/amd64 + linux/arm64(multi-arch)
每次 push tag(任意 tag,例如 v1.2.3 / 2025.12.27-t020612)会自动:
ghcr.io/znlsl/antigravity2api:<tag> + :latest如果你使用的是 GHCR 镜像部署(docker-compose.ghcr.yml),当仓库有新提交并且 GitHub Actions 构建完成后,在服务器执行:
docker compose -f docker-compose.ghcr.yml pull
docker compose -f docker-compose.ghcr.yml up -d
如果你使用的是本地构建(docker-compose.yml 的 build:),更新代码后需要重新构建:
docker compose up -d --build
在客户端中添加自定义提供商:
http://localhost:3000 (或 http://<本机IP>:3000)
http://localhost:3000/v1/messageshttp://localhost:3000/v1betaAG2API_API_KEYS 中配置的任意一个 Key。
Authorization: Bearer <key> / x-api-key / anthropic-api-key / x-goog-api-keyopencode配置:
.env中配置
AG2API_CLAUDE_MODEL_MAP={"claude-haiku-4-5":"gemini-3-flash","claude-haiku-4-5-20251001":"gemini-3-flash"}
opencode中connect选择Anthropic,手动输入API KEY
C:\Users\你的用户名.config\opencode\opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "http://localhost:3000/v1"
}
}
}
}
401 Unauthorized: 检查客户端填写的 API Key 是否与 AG2API_API_KEYS 中的一致。
Proxy 错误 / 超时:
npm install 安装依赖。AG2API_PROXY_URL 是否正确且代理软件已开启。socks-proxy-agent 已安装。支持的模型:
claude-sonnet-4-5claude-sonnet-4-5-thinkingclaude-sonnet-4-5-20250929claude-opus-4-5claude-opus-4-5-thinkingclaude-opus-4-5-20251101gemini-3-pro-highgemini-3-pro-lowgemini-3-flashgemini-2.5-flashgemini-2.5-flash-litegpt-oss-120b-medium(仅限于chat).claude/settings.json 参考配置(示例):
{
"ANTHROPIC_MODEL": "claude-opus-4-5-thinking",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-3-flash",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-thinking",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5-thinking",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
}
claude-sonnet-4-5claude-sonnet-4-5-thinkingclaude-opus-4-5-thinkinggemini-3-pro-highgemini-3-pro-lowgemini-3-flashgemini-3-pro-imagegemini-2.5-flashgemini-2.5-flash-litegpt-oss-120b-medium(仅限于chat)OAuth 回调打不开:
http://localhost:<port>/oauth-callback,请把 localhost:<port> 改成当前服务地址再访问。code),粘贴到管理页输入框中点击 “提交”。JavaScript
97.5%
CSS
1.3%
HTML
1.1%