Skill-first, MCP-second bridge from Claude Code / OpenAI Codex to Google Antigravity CLI (agy).
Project description
agy-mcp
把 Google Antigravity CLI(
agy)包装成 10 个 typed MCP 工具, 任何 MCP 客户端(Claude Code / OpenAI Codex / Cursor / Cline / Continue …)都能直接调用。配套可选 Skill bundle,让支持 skill 的 平台学会何时调、用哪个 mode。
快速开始
# 1. 装 uv(已有可跳过)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 装 agy-mcp(从 PyPI)
uv tool install agy-mcp
# 3. 注册 MCP server(以 Claude Code 为例;其它客户端见折叠区)
claude mcp add agy -s user --transport stdio -- agymcp
# 4. (可选)装 SKILL,让 Claude / Codex / Antigravity 学会何时调
agy-install-skill --target all
# 5. 验证(不调真实 agy API)
agy-doctor
让本地 agent 自己装(推荐:复制下方提示词到 Claude Code / OpenAI Codex CLI,它会自己读、执行、验证)
请帮我把 agy-mcp 这个开源 MCP 安装好。具体目标:
1. 用 uv tool 装本仓库的 console scripts(agymcp / agy-bridge /
agy-doctor / agy-install-skill)。如果本机没有 uv,先用
`curl -LsSf https://astral.sh/uv/install.sh | sh` 装好。
2. 把 agy MCP server 注册到我当前正在使用的 agent 平台:
- 如果你是 Claude Code,执行:
`claude mcp add agy -s user --transport stdio -- agymcp`
并用 `claude mcp list` 确认 `agy: ✓ Connected`。
- 如果你是 OpenAI Codex CLI,向 `~/.codex/config.toml` 追加:
```toml
[mcp_servers.agy]
command = "agymcp"
args = []
```
并重启 Codex 会话让其生效。
3. 装协作 SKILL(让本平台知道何时调用 agy):直接调用刚才暴露的
`agy_install_skill` MCP 工具,参数 `targets=["all"], scope="user"`。
它会写到 `~/.claude/skills/`、`~/.agents/skills/`、`~/.agy/skills/`
三处。装完后告诉我重启窗口让 SKILL 生效。
4. 验证:调用 `agy_doctor` MCP 工具,把返回的 JSON 完整贴给我看;
预期 `healthy=true`,6 项 check 全部 `ok=true`。如果 `auth` 这项
显示未登录,告诉我手动跑一次 `agy --version` 触发 OAuth 流程,
然后再调一次 `agy_doctor`。
5. 安装来源默认走 PyPI:`uv tool install agy-mcp`。如果我让你装某个
未发布分支或本地 clone,再切到 `git+https://github.com/Boulea7/agy-mcp.git`
或本地 `--from <项目本地绝对路径>`。
约束:
- 不要 push 任何东西、不要改我的 .gitconfig。
- 在没有我确认前不要调真实的 `agy` 模型(只能跑 doctor / dry-run)。
- 任何写入操作(包括上面这些)做之前先简短说一下要做什么,等我点头
再执行;如果你的当前权限模式允许 acceptEdits,就直接执行。
每完成一步给我一行汇报,全部完成后给出一份 4 行总结:装在哪、10 个
MCP 工具是否齐、SKILL 落地路径、剩余可选项。
其它 MCP 客户端注册方式
- OpenAI Codex CLI:向
~/.codex/config.toml追加:[mcp_servers.agy] command = "agymcp" args = []
重启 Codex 会话生效。 - Cursor / Cline / Continue / 其它 MCP 客户端:在客户端的
MCP server 配置里加一条 name=
agy、command=agymcp、transport=stdio 即可。具体语法各家不同,参考各自文档。
完整安装与故障排查 → docs/installation.md。
它是什么
把 Google 新发布的 Antigravity CLI(agy)包装成可被任意 MCP 客户端
调用的协作 agent backend。两条等价路径:
- MCP server:
agymcp经 FastMCP stdio 暴露 10 个 typed JSON 工具, pydantic envelope 稳定可解析。任何 MCP 客户端皆可。 - Skill bundles:装到
~/.claude/skills/、~/.agents/skills/、~/.agy/skills/,教 agent 何时调 agy、用哪个 mode、注意哪些安全 规则。仅对 Claude Code / OpenAI Codex / Antigravity 三家有效。 - 共享 backend:两条路径都走同一
bridge.py→ adapter → safety policy → worktree,行为一致。
除
agy_doctor与--dry-run外,agy/agy_start会启动真实agy --print,可能消耗 Antigravity 请求额度。本项目只包装、路由、 隔离、审计,不重新实现agyAPI。
10 个 MCP 工具
| 工具 | 用途 |
|---|---|
agy |
同步一次性调用(PROMPT / cd / sandbox / SESSION_ID + mode / backend / output_protocol / worktree / allow_write / extra_env) |
agy_continue |
续 SESSION_ID |
agy_start |
后台启动长任务,立即返回 job_id |
agy_status |
查 job 状态:running / completed / failed / cancelled |
agy_read |
读 job 事件流(raw / claude / codex 三协议) |
agy_cancel |
跨平台 process group 终止 |
agy_sessions |
列最近 session |
agy_doctor |
环境 + 鉴权 + capability 探测(不泄漏 secrets) |
agy_install_skill |
把 SKILL bundle 装到 Claude / Codex / Antigravity 目录 |
agy_purge |
清理本机 session-store 目录(refuse days<=0) |
何时调用 / 何时不调用
| 情景 | 建议路径 |
|---|---|
| 上下文里能直接答的 Q&A | 不调,自己答 |
| Bug 假设的第二意见 | agy(..., mode="review") |
| 给 review 用的 diff | agy(..., mode="prototype")(无 allow_write) |
| 应用 reviewed diff | agy(..., mode="execute", allow_write=True)(自动 worktree) |
| 数小时大重构 | agy_start(..., mode="long") 然后轮询 |
| 需要 Anthropic / OpenAI 对话状态 | 不调 —— agy 是独立模型独立上下文 |
安全底线
- 所有错误 / 日志 / 响应字段先过
SafetyPolicy.redact:/Users/<u>/→~/,PEM / JWT / AKID / Bearer 全脱敏; mode=execute写入必须显式allow_write=True;destructive prompt 即使置位仍拒;execute模式下读 / 提及~/.ssh、~/.aws/credentials、浏览器 cookie、OS keychain 都拒;mode=execute + allow_write默认worktree=True(可经~/.config/agy-mcp/config.toml或AGY_MCP_WORKTREE_DEFAULT=0关闭);- 不写任何文件到
~/.gemini/(Antigravity CLI 自有状态目录);user-scope antigravity skill 落在~/.agy/skills/。
完整威胁模型与「不防御」清单 → docs/security.md。
项目协议片段
直接复制到项目根的 CLAUDE.md / AGENTS.md:
prompts/CLAUDE.md— Claude Code 协作协议prompts/AGENTS.md— OpenAI Codex 协作协议prompts/antigravity-system.md—agy端 system prompt 建议
文档目录
| 文件 | 内容 |
|---|---|
docs/installation.md |
安装 + Claude Code / Codex 注册 + SKILL + 验证 |
docs/architecture.md |
模块图(caller / MCP server / bridge / supervisor / adapter / safety) |
docs/output-strategy.md |
Hybrid backend:stdout + klog + transcript.jsonl + 协议翻译器 |
docs/security.md |
威胁模型、防护清单、明确不防御项 |
docs/cli-capabilities.md |
agy --help 实测 + capability 矩阵 |
docs/examples.md |
7 个典型场景 |
docs/comparison-with-cli-wrappers.md |
Stream-json passthrough vs Hybrid backend 两种 wrapper 模式对比 |
docs/release.md |
PyPI trusted publishing + GitHub Release 发布手册(一次性设置 + 常规流程) |
CHANGELOG.md |
版本变更记录(Keep a Changelog) |
英文版 README → docs/README_EN.md。
开发
uv sync
uv run pytest # 全量 525 个测试
uv run agymcp # 启动 MCP stdio server(人工测试用)
uv run agy-bridge --cd . --PROMPT "Hello" --mode ask --dry-run --debug
uv run agy-doctor # 环境与鉴权探测
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agy_mcp-0.1.7.tar.gz.
File metadata
- Download URL: agy_mcp-0.1.7.tar.gz
- Upload date:
- Size: 145.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffb3818bf6d095d2cf060a9c50d8fa2d9f325522e353da35deba3ac6475f9713
|
|
| MD5 |
8902b36287da382b2a9e248a0f0b5eb1
|
|
| BLAKE2b-256 |
d78254021d5889bfdc60b94d0ed7f2f20341cf86e3a8ba733f6b1575aca7f759
|
Provenance
The following attestation bundles were made for agy_mcp-0.1.7.tar.gz:
Publisher:
release.yml on Boulea7/agy-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agy_mcp-0.1.7.tar.gz -
Subject digest:
ffb3818bf6d095d2cf060a9c50d8fa2d9f325522e353da35deba3ac6475f9713 - Sigstore transparency entry: 1591926429
- Sigstore integration time:
-
Permalink:
Boulea7/agy-mcp@11c049ff09aa55b4217ce104a0011c458e8bbb24 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/Boulea7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@11c049ff09aa55b4217ce104a0011c458e8bbb24 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agy_mcp-0.1.7-py3-none-any.whl.
File metadata
- Download URL: agy_mcp-0.1.7-py3-none-any.whl
- Upload date:
- Size: 135.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e084d1d285bfc5e69a5f50b6806b1e70cf8fa8b1d3f53ff252052bb9c82e0245
|
|
| MD5 |
aa8d853e320709fe5b62e6db6c6bd19f
|
|
| BLAKE2b-256 |
9db20a500f9057a6899032cbd5b041e83e5f5fd4b456ed887968fc28e38bd67d
|
Provenance
The following attestation bundles were made for agy_mcp-0.1.7-py3-none-any.whl:
Publisher:
release.yml on Boulea7/agy-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agy_mcp-0.1.7-py3-none-any.whl -
Subject digest:
e084d1d285bfc5e69a5f50b6806b1e70cf8fa8b1d3f53ff252052bb9c82e0245 - Sigstore transparency entry: 1591926467
- Sigstore integration time:
-
Permalink:
Boulea7/agy-mcp@11c049ff09aa55b4217ce104a0011c458e8bbb24 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/Boulea7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@11c049ff09aa55b4217ce104a0011c458e8bbb24 -
Trigger Event:
push
-
Statement type: