Gemini MCP服务器实现

一个用Rust实现的高性能MCP(Model Context Protocol)服务器,封装Gemini CLI以支持AI驱动任务。

  • by missdeer
  • Rust
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 missdeer/gemini-mcp-rs

使用说明

双子座mcp rs

中文文档

MCP(模型上下文协议)服务器的高性能Rust实现,它封装了用于AI驱动任务的Gemini CLI。

快速开始

使用gemini mcp-rs最简单的方法是通过npx,无需手动安装:

npx @missdeer/gemini-mcp-rs

此命令会自动为您的平台安装正确的二进制文件并运行它。要将其添加到Claude Code中:

claude mcp add gemini-rs -s user --transport stdio -- npx @missdeer/gemini-mcp-rs

就是这样!MCP服务器现在可以在Claude Code中使用。

特性

  • MCP协议支持:使用Rust SDK实现官方的模型上下文协议
  • Gemini集成:包装Gemini CLI,通过MCP启用AI驱动的任务
  • 会话管理:支持通过会话ID进行多回合对话
  • 沙箱安全:可配置的沙盒模式,用于隔离执行
  • 异步运行时:基于Tokio构建,实现高效异步I/O
  • 跨平台:适用于Windows、Linux和macOS(x64和arm64)

先决条件

  • Rust 1.77.2+(Windows批处理文件安全修复所需,请参阅 CVE-2024-24576)
  • Gemini CLI 已安装并配置
  • Claude Code或其他MCP客户端

建筑

# Debug build
cargo build

# Release build
cargo build --release

跑步

服务器通过stdio传输进行通信:

cargo run

或者在建造之后:

./target/release/gemini-mcp-rs

命令行选项

# Display help information
./target/release/gemini-mcp-rs --help

# Display version information
./target/release/gemini-mcp-rs --version

这 --help flag提供全面的文档,包括:

  • 环境变量
  • MCP客户端配置示例
  • 所有支持的工具参数
  • GEMINI.md配置文件支持
  • 返回结构格式
  • 最佳实践和安全信息

安装

选项1:NPX(推荐)

直接使用npx运行:

npx @missdeer/gemini-mcp-rs

npx自动处理一切:

  1. 安装特定于平台的二进制包
  2. 在stdio传输上启动MCP服务器

或全局安装:

npm install -g @missdeer/gemini-mcp-rs

然后添加到您的Claude MCP配置中:

claude mcp add gemini-rs -s user --transport stdio -- npx @missdeer/gemini-mcp-rs

选项2:快速安装(Linux/macOS)

使用单个命令安装最新版本:

curl -sSL https://raw.githubusercontent.com/missdeer/gemini-mcp-rs/master/scripts/install.sh | bash

或者安装特定版本:

curl -sSL https://raw.githubusercontent.com/missdeer/gemini-mcp-rs/master/scripts/install.sh | bash -s v0.1.0

此脚本将:

  • 检测您的平台和架构
  • 从GitHub版本下载相应的二进制文件
  • 安装到 ~/.local/bin (或 /usr/local/bin 如果需要)
  • 自动将其添加到您的Claude MCP配置中

选项3:从源代码构建

git clone https://github.com/missdeer/gemini-mcp-rs.git
cd gemini-mcp-rs
cargo build --release
claude mcp add gemini-rs -s user --transport stdio -- $(pwd)/target/release/gemini-mcp-rs

选项4:从版本安装

从以下网址下载适用于您平台的二进制文件 发布页面:

平台 架构 资产
Linux x64 gemini-mcp-rs_Linux_x86_64.tar.gz
Linux arm64 gemini-mcp-rs_Linux_arm64.tar.gz
macOS 通用(x64+arm64) gemini-mcp-rs_Darwin_universal.tar.gz
Windows x64 gemini-mcp-rs_Windows_x86_64.zip
Windows arm64 gemini-mcp-rs_Windows_arm64.zip

提取并添加到MCP配置中:

claude mcp add gemini-rs -s user --transport stdio -- /path/to/gemini-mcp-rs

工具使用

服务器提供单一 gemini 工具具有以下参数:

必需参数

  • PROMPT (string):发送给gemini的任务指令

可选参数

  • sandbox (bool):在沙盒模式下运行。默认为 False
  • SESSION_ID (string):恢复双子座的指定会话。默认为空字符串,启动新会话
  • return_all_messages (bool):返回gemini会话中的所有消息(例如推理、工具调用等)。吃起来 False 默认情况下,只返回代理的最终回复消息
  • model (string):用于双子座会话的模型。如果未指定,则使用 GEMINI_FORCE_MODEL 环境变量或Gemini CLI默认值
  • timeout_secs (int):gemini执行的超时时间(秒)(1-3600)。默认为 GEMINI_DEFAULT_TIMEOUT 环境变量或600秒(10分钟)

退货结构

成功:

{
  "success": true,
  "SESSION_ID": "session-uuid",
  "agent_messages": "Gemini's reply content..."
}

启用return_all_message后:

{
  "success": true,
  "SESSION_ID": "session-uuid",
  "agent_messages": "Gemini's reply content...",
  "all_messages": [...]
}

失败:

{
  "success": false,
  "error": "Error description"
}

最佳实践

  • 始终捕获和重用 SESSION_ID 用于多回合互动
  • 启用 sandbox 隔离文件修改时的模式
  • 使用 return_all_messages 仅当需要详细的执行跟踪时(增加有效载荷大小)
  • 只有通行证 model 当用户明确请求特定型号时

配置

环境变量

  • GEMINI_BIN:覆盖Gemini CLI二进制路径。默认情况下,服务器使用 gemini 从你的路径。这有助于:

    • 使用特定的Gemini安装位置
    • 使用自定义二进制文件进行测试
    • 具有多个Gemini版本的开发环境

    例子:

    export GEMINI_BIN=/usr/local/bin/gemini-custom
    cargo run
    
  • GEMINI_DEFAULT_TIMEOUT:gemini执行的默认超时时间(秒)(1-3600)。如果未设置,则默认为600秒(10分钟)。这可以使用以下命令根据请求进行覆盖 timeout_secs 参数。

    例子:

    export GEMINI_DEFAULT_TIMEOUT=300  # 5 minutes
    cargo run
    
  • GEMINI_FORCE_MODEL:否时使用的默认模型 model 请求中提供了参数。这被显式覆盖 model 参数。

    例子:

    export GEMINI_FORCE_MODEL=gemini-2.0-flash
    cargo run
    

测试

# Run all tests
cargo test

# Run with output
cargo test -- --nocapture

# Test with a custom Gemini binary
GEMINI_BIN=/path/to/gemini cargo test

建筑

该项目采用模块化架构:

  • src/main.rs:解析CLI参数并启动MCP服务器的入口点
  • src/lib.rs:导出模块的库根
  • src/server.rs:MCP服务器实现和工具处理程序
  • src/gemini.rs:Gemini CLI执行和结果解析

贡献

欢迎投稿!请随时提交拉取请求。

许可证

该项目具有双重许可:

非商业/个人使用-GNU通用公共许可证v3.0

免费用于个人项目、教育目的、开源项目和非商业用途。看 许可证 获取完整的GPLv3许可证文本。

商业/工作场所使用-需要商业许可证

如果您在商业环境、工作场所或出于任何商业目的使用gemini mcp-rs,您必须获得商业许可证。

这包括但不限于:

  • 在工作中使用该软件(任何组织)
  • 融入商业产品或服务
  • 用于客户工作或咨询
  • 作为SaaS/云服务的一部分提供

联系: missdeer@gmail.com用于商业许可查询。

看 许可电子商务 了解更多详情。

明星历史