项目简介
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 计数,有效管理模型输入和输出。
安装步骤
-
克隆仓库:
git clone https://github.com/Novakiki/mcp-gemini-server.git cd mcp-gemini-server -
配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入你的 Google AI Studio API 密钥。
GOOGLE_GEMINI_API_KEY=你的API密钥 -
使用 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与计算