项目简介
Gemini CLI A2A Server 是 Google Gemini CLI 项目中的一个核心组件,它实现了 Model Context Protocol (MCP) 标准。其主要目标是将 Gemini CLI 强大的内置工具(如文件操作、Shell 命令执行、网络搜索等)通过标准化的 JSON-RPC 接口提供给其他 LLM 客户端或应用程序。它支持通过 HTTP 或 Stdio 协议进行通信,为开发者提供了一个可扩展的、本地运行的上下文服务框架。
主要功能点
- 标准化上下文服务: 遵循 Model Context Protocol (MCP) 规范,以标准化的方式提供上下文信息和功能。
- 工具托管与执行: 将 Gemini CLI 的内置工具(例如文件系统操作、运行 Shell 命令、网页抓取与搜索、内存管理等)作为 MCP 工具进行托管和执行。
- 多种传输协议支持: 支持通过 HTTP 和 Stdio(标准输入/输出)协议与 LLM 客户端进行通信,方便集成到不同的应用环境中。
- 会话管理: 处理客户端会话,管理工具的生命周期和状态。
- 能力声明: 向连接的客户端声明其支持的工具和能力。
安装步骤
- 安装 Node.js: 确保您的系统已安装 Node.js 20 或更高版本。
- 全局安装 Gemini CLI: 由于 Gemini CLI A2A Server 是 Gemini CLI 的一部分,最简单的安装方式是全局安装 Gemini CLI:
或者使用 Homebrew (macOS/Linux) 进行安装:npm install -g @google/gemini-clibrew install gemini-cli - 验证安装: 安装成功后,您应该可以通过 'gemini' 命令启动 Gemini CLI,其中包含了 A2A Server 的组件。
服务器配置
MCP 客户端需要配置 Gemini CLI A2A Server 的启动命令和参数才能与其建立连接。以下是 MCP 客户端在其配置文件中(例如 '~/.gemini/settings.json' 或您的 MCP 客户端相应配置文件)配置 Gemini CLI A2A Server 的参考示例。
通过HTTP协议连接
{ "mcpServers": { "gemini-cli-a2a-http": { "command": "gemini", "args": ["a2a-server", "--http-port", "9000"], "capabilities": { "tools": {} }, "transport": { "type": "http", "url": "http://localhost:9000/mcp" }, "serverInfo": { "name": "gemini-cli-a2a-http", "version": "1.0.0" } } } }
说明:
- 'command': 启动服务器的命令。'gemini' 命令在全局安装 Gemini CLI 后可用,并且包含启动 'a2a-server' 的功能。
- 'args': 启动命令的参数。'a2a-server' 子命令用于启动 MCP 服务器,'--http-port 9000' 指定服务器监听的 HTTP 端口。
- 'transport.type': 传输协议类型为 HTTP。
- 'transport.url': MCP 客户端连接服务器的 URL。
通过Stdio协议连接
{ "mcpServers": { "gemini-cli-a2a-stdio": { "command": "gemini", "args": ["a2a-server", "--stdio"], "capabilities": { "tools": {} }, "transport": { "type": "stdio" }, "serverInfo": { "name": "gemini-cli-a2a-stdio", "version": "1.0.0" } } } }
说明:
- 'command': 启动服务器的命令,同 HTTP 模式。
- 'args': 启动命令的参数。'--stdio' 标志指示服务器通过标准输入/输出进行通信。
- 'transport.type': 传输协议类型为 Stdio。
基本使用方法
一旦您的 MCP 客户端配置并连接到 Gemini CLI A2A Server,LLM 将能够通过 MCP 协议调用 A2A Server 所暴露的工具。例如,如果 A2A Server 暴露了 'read_file' 和 'run_shell_command' 工具,LLM 客户端就可以发送 JSON-RPC 请求来:
- 读取文件: 请求 A2A Server 执行 'read_file' 工具来获取指定文件的内容。
- 执行 Shell 命令: 请求 A2A Server 执行 'run_shell_command' 工具来运行 Shell 命令并获取其输出。
在 Gemini CLI 环境中,您可以通过 '/mcp list' 命令查看当前连接的 MCP 服务器及其提供的工具。例如,在 Gemini CLI 交互模式下,输入 '/mcp list' 可以列出已配置并连接的 A2A Server 提供的工具。然后,您可以通过 '@<server-name> <tool-name> <args>' 的形式,让 Gemini CLI 作为客户端,间接调用 A2A Server 上的工具。
信息
分类
开发者工具