Gemini MCP 服务端(Rust 实现)
使用说明(Markdown 格式)
-
项目简介
- Gemini CLI 提供 CLI 模式和 MCP 服务器模式,其中 MCP 服务器用于在 Claude Code 等 MCP 客户端环境中以标准化的 JSON-RPC 2.0 over stdio 方式提供上下文信息、资源访问和工具执行能力。服务器端负责会话管理、能力声明,以及对外部工具的调用(当前示例中通过 Google 搜索 grounding 实现外部信息检索)。
-
主要功能点
- MCP 服务器模式:通过 --mcp-server 启动,以 JSON-RPC 2.0 通过标准输入输出进行通信。
- 工具调用:实现 tools/call 入口,提供通过 Gemini 接口对外部功能的调用(示例中包含 Google 搜索 grounding 的实现)。
- 初始化与提示:实现 initialize、initialized、ping、tools/list 等 MCP 方法,提供能力声明与工具清单。
- 实时流式输出:在 CLI 模式下进行 SSE 流式响应,在 MCP 模式下将文本结果通过标准输出返回给客户端。
- 上下文上下文注入:支持 GEMINI.md 的项目级上下文注入(GEMINI.md 文件沿:从当前工作目录向上查找,直至 .git 根目录或文件系统根)。
- 安全与容错:对 SAFETY 逃逸情况进行处理,异常时返回合适的错误信息。
-
安装步骤
- 前提条件:安装 Rust 与 Cargo。
- 构建来源代码:
- 使用 Cargo 构建并生成可执行文件(release 构建表现最佳)。
- 运行二进制示例(CLI 模式与 MCP 模式的切换在命令行参数中指定):
- 在 CLI 模式下运行需要提供 GEMINI_API_KEY(通过环境变量或 -a/--api-key)。
- 在 MCP 模式下运行时,直接使用 --mcp-server 启动,Claude Code 将自动对接。
-
服务器配置(MCP 客户端需要的配置信息) 说明:MCP 客户端需要知道服务器的启动命令及参数,以便建立连接。下面给出一个符合 MCP 客户端期望的配置结构示例(JSON 格式,直接填写字段,不包含代码块)。 { "server_name": "gemini", "command": "/path/to/target/release/gemini", "args": ["--mcp-server"] } 说明:
- server_name:服务器在客户端侧的标识名称,应与实际部署的一致。
- command:服务器可执行文件的完整路径。
- args:启动时需要的参数,这里应包含 --mcp-server,表示以 MCP 服务器模式运行。 注释:MCP 客户端不需要额外的配置字段;如有需求,环境变量如 GEMINI_API_KEY 需在服务器运行环境中设置,但这属于运行时环境配置而非 MCP 客户端连接信息。
-
基本使用方法
- 在 MCP 服务器模式下启动二进制: Gemni --mcp-server
- 在 Claude Code 中注册该 MCP 服务:按照官方指南执行 mcp 注册流程,将上述服务器信息作为要注册的服务条目。
- 运行后,MCP 客户端可通过 JSON-RPC 调用工具、获取初始化信息、列出可用工具等。
- 运行时注意点:服务器端输出日志到标准错误;标准输出用于 JSON-RPC 流式通信。确保不要将错误输出重定向到标准输出,否则会干扰协议。