项目简介

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 客户端进行通信,方便集成到不同的应用环境中。
  • 会话管理: 处理客户端会话,管理工具的生命周期和状态。
  • 能力声明: 向连接的客户端声明其支持的工具和能力。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js 20 或更高版本。
  2. 全局安装 Gemini CLI: 由于 Gemini CLI A2A Server 是 Gemini CLI 的一部分,最简单的安装方式是全局安装 Gemini CLI:
    npm install -g @google/gemini-cli
    或者使用 Homebrew (macOS/Linux) 进行安装:
    brew install gemini-cli
  3. 验证安装: 安装成功后,您应该可以通过 '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 请求来:

  1. 读取文件: 请求 A2A Server 执行 'read_file' 工具来获取指定文件的内容。
  2. 执行 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 上的工具。

信息

分类

开发者工具