项目简介

MCP Gemini Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它将 Google 的 Gemini AI 模型能力封装成标准化的 MCP 工具,以便于其他 LLM 客户端(如 Claude)或兼容 MCP 的系统能够以统一的方式调用 Gemini 的功能。该服务器简化了 Gemini 模型的集成,通过 MCP 标准提供了一致的、基于工具的接口,使得不同的 AI 系统可以无缝协作,充分利用各自模型的优势。

主要功能点

  • 核心文本生成: 支持标准的非流式 ('gemini_generateContent') 和流式 ('gemini_generateContentStream') 文本生成。
  • 函数调用: 允许 Gemini 模型请求执行客户端定义的功能 ('gemini_functionCall'),实现更复杂的交互逻辑。
  • 状态化对话: 管理跨多轮对话的上下文 ('gemini_startChat', 'gemini_sendMessage', 'gemini_sendFunctionResult'),支持构建连续对话应用。
  • 文件处理: 提供文件上传、列表、检索和删除功能 ('gemini_uploadFile', 'gemini_listFiles', 'gemini_getFile', 'gemini_deleteFile'),方便处理多模态输入。
  • 缓存管理: 支持创建、列表、检索、更新和删除缓存内容 ('gemini_createCache', 'gemini_listCaches', 'gemini_getCache', 'gemini_updateCache', 'gemini_deleteCache'),优化提示词效果并降低成本。
  • 模型回退机制: 具备智能模型回退系统,在额度超限等情况下自动切换到备用模型,保证服务连续性。
  • Token 管理: 实现可配置的 Token 限制和自动 Token 计数,有效管理模型输入和输出。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Novakiki/mcp-gemini-server.git
    cd mcp-gemini-server
  2. 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入你的 Google AI Studio API 密钥。

    GOOGLE_GEMINI_API_KEY=你的API密钥
  3. 使用 Docker Compose 启动服务器 (推荐):

    docker-compose up -d

    或者,你也可以选择本地 Node.js 环境运行,请参考仓库 README 的详细步骤。

服务器配置

为了让 MCP 客户端(如 Cline/VSCode 或 Claude 桌面应用)连接到 MCP Gemini Server,你需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。请根据你的实际情况修改路径和 API 密钥。

{
  "mcpServers": {
    "gemini-server": {
      "command": "node",
      "args": ["/path/to/mcp-gemini-server/dist/server.js"],
      "env": {
        "GOOGLE_GEMINI_API_KEY": "YOUR_API_KEY"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

配置参数说明:

  • 'server name': 服务器名称,可以自定义,例如 "gemini-server"。
  • 'command': 启动服务器的命令,这里使用 'node'。
  • 'args': 启动命令的参数,指向编译后的服务器入口文件 '/path/to/mcp-gemini-server/dist/server.js',请替换为你的实际路径。
  • 'env': 环境变量配置。
    • 'GOOGLE_GEMINI_API_KEY': 必需,你的 Google AI Studio API 密钥,请替换为你的实际密钥。

基本使用方法

配置完成后,在 MCP 客户端中,你可以使用 '<use_mcp_tool>' 标签来调用 Gemini Server 提供的工具。以下是一些示例:

示例 1: 文本生成

<use_mcp_tool>
  <server_name>gemini-server</server_name>
  <tool_name>gemini_generateContent</tool_name>
  <arguments>
    {
      "prompt": "写一首关于秋天的诗歌。"
    }
  </arguments>
</use_mcp_tool>

示例 2: 启动聊天会话并发送消息

启动会话:

<use_mcp_tool>
  <server_name>gemini-server</server_name>
  <tool_name>gemini_startChat</tool_name>
  <arguments>
    {}
  </arguments>
</use_mcp_tool>

发送消息 (假设 'gemini_startChat' 返回的 'sessionId' 为 "session-123"):

<use_mcp_tool>
  <server_name>gemini-server</server_name>
  <tool_name>gemini_sendMessage</tool_name>
  <arguments>
    {
      "sessionId": "session-123",
      "message": "你好,Gemini API 有哪些功能?"
    }
  </arguments>
</use_mcp_tool>

更多工具的使用方法和参数说明,请参考仓库的 README 文档。

信息

分类

AI与计算