内容
# 反重力MCP服务器
MCP(模型上下文协议)服务器,用于[谷歌反重力CLI](https://antigravity.google/docs/cli-getting-started) (`agy`) 集成。允许任何MCP客户端(Claude Code、Claude Desktop、Cursor等)将任务委托给反重力的代理CLI — 具有模型选择(Gemini、Claude、GPT-OSS)、对话恢复和工作区控制。
[@trishchuk/kimi-mcp-server](https://github.com/x51xxx/kimi-mcp-server)的 sibling,已移植到反重力CLI。
## 要求
- Node.js >= 18
- [反重力CLI](https://antigravity.google/docs/cli-getting-started) 已安装 (`agy --version` 可用) 且已认证(交互式运行 `agy` 并用谷歌账户登录)
## 安装
```bash
npm install -g @trishchuk/antigravity-mcp-server
```
或从源代码运行:
```bash
pnpm install && pnpm build
```
## MCP客户端配置
```json
{
"mcpServers": {
"antigravity": {
"command": "npx",
"args": ["-y", "@trishchuk/antigravity-mcp-server"],
"env": {
"AGY_MCP_CWD": "/path/to/your/project"
}
}
}
}
```
适用于Claude Code:
```bash
claude mcp add antigravity -- npx -y @trishchuk/antigravity-mcp-server
```
## 工具
| 工具 | 描述 |
| --- | --- |
| `ask-antigravity` | 通过`agy`以打印模式运行提示。支持模型覆盖、会话恢复、`--add-dir`、`--sandbox`、`--dangerously-skip-permissions`、dry-run。 |
| `plan-antigravity` | 生成结构化的实现计划(JSON或markdown),不修改任何内容。 |
| `review-changes` | 收集git diff(工作树/ vs 基准分支/ 特定提交)并运行结构化的代码审查。 |
| `brainstorm` | 结构化的创意生成(发散、收敛、SCAMPER、设计思维、横向思维)。 |
| `digest-antigravity` | 吸收多个文件/目录,并使用反重力的大型模型上下文回答聚焦的问题。 |
| `batch-antigravity` | 顺序或并行运行多个原子任务(优先级顺序、停止错误、并发上限)。 |
| `bg-antigravity` | detached后台任务:启动/状态/尾部/停止/删除/列表。状态在`~/.agy-mcp/bg/`中持久化,跨服务器重启。 |
| `delegate-antigravity` | 将实现任务委托到隔离的git工作树;轮询状态,然后`collect` diff进行选择性审查。 |
| `list-sessions` | 列出/删除/清除对话会话。 |
| `list-models` | 列出当前可用的模型标签 (`agy models`)。 |
| `health` | 诊断CLI安装、认证、模型和会话状态。 |
| `ping`、`Help`、`version`、`metrics` | 实用程序。 |
后台和批量工具默认 `--dangerously-skip-permissions`,因为打印模式无法回答交互式权限提示;传递 `skipPermissions: false` 以退出。
## 模型
`model` 参数采用 `agy models` 的**显示标签**,例如:
- `Gemini 3.5 Flash (低 | 中 | 高)`
- `Gemini 3.1 Pro (低 | 高)`
- `Claude Sonnet 4.6 (思考)`、`Claude Opus 4.6 (思考)`
- `GPT-OSS 120B (中)`
标签在CLI版本之间更改 — 使用 `list-models` 工具获取当前列表。省略 `model` 以使用您的反重力默认值。
## 会话和对话恢复
`ask-antigravity` 支持多轮对话:
```json
{ "prompt": "分析src/auth.ts的安全问题", "sessionId": "auth-review" }
```
```json
{ "prompt": "现在建议修复您发现的问题", "sessionId": "auth-review" }
```
工作原理:`agy` 在打印模式下不向stdout打印对话ID,因此服务器将 `--log-file` 传递到临时文件,并从中解析 `Print mode: conversation=<uuid>`。下一个调用使用相同的 `sessionId` 通过 `agy --conversation <uuid>` 恢复。
您也可以直接传递本地 `conversationId`,或 `continueLatest: true` 以获取 `agy --continue`。
会话存储在内存中(服务器重启时丢失)。配置:
- `AGY_SESSION_TTL_MS` — 会话TTL(默认24小时)
- `AGY_MAX_SESSIONS` — 最大存储会话(默认50)
- `AGY_MCP_CWD` — `agy` 运行的默认工作目录
### 已知问题
当恢复对话时,agy打印模式会重放前面的助手消息,然后是新的响应。服务器会在可能的情况下自动剥离重放的前缀(前一个响应少于1000个字符);对于较长的响应,可能会保留前导回声。
## 安全
- `skipPermissions: true` 映射到 `--dangerously-skip-permissions` — agy 自动批准所有工具/命令权限请求。请谨慎使用。
- `sandbox: true` 映射到 `--sandbox` — 启用终端限制。
- 默认情况下,agy 使用您配置的权限规则(交互式agy中的`/permissions`)。
## 开发
```bash
pnpm build # tsc
pnpm lint # tsc --noEmit
pnpm format # prettier
```
## 许可证
MIT