项目简介
Gemini MCP 服务器是一个基于 Model Context Protocol (MCP) 标准构建的应用后端,它将 Google 的 Gemini 大语言模型的功能以标准化的 MCP 工具形式对外提供。通过这个服务器,兼容 MCP 协议的 LLM 客户端(如 Cline 等)可以方便地利用 Google Gemini 模型的强大能力,例如文本生成、对话管理、函数调用以及文件和缓存管理等高级特性。
主要功能点
- 核心文本生成:支持标准和流式文本生成,满足不同场景的需求。
- 函数调用:允许 Gemini 模型请求客户端执行预定义函数,实现更复杂的交互逻辑。
- 状态化对话:管理多轮对话上下文,支持构建连续对话应用。
- 文件处理:提供文件上传、列表、检索和删除功能,方便处理多模态输入。
- 缓存管理:支持创建、列表、检索、更新和删除缓存内容,优化 Prompt 性能和成本。
安装步骤
通过 Smithery 自动安装 (Claude Desktop)
如果您使用 Claude Desktop,可以通过 Smithery 命令行工具自动安装:
npx -y @smithery/cli install @bsmi021/mcp-gemini-server --client claude
手动安装
-
克隆/放置项目: 确保 'mcp-gemini-server' 项目目录在您的系统上可访问。
-
安装依赖: 在终端中导航到项目目录,并运行:
npm install -
构建项目: 编译 TypeScript 源代码:
npm run build构建完成后,JavaScript 文件将输出到 './dist' 目录,服务器入口文件为 'dist/server.js'。
-
配置 MCP 客户端: 将服务器配置添加到您的 MCP 客户端设置文件(例如 Cline/VSCode 的 'cline_mcp_settings.json' 或 Claude Desktop App 的 'claude_desktop_config.json')。将 '/path/to/mcp-gemini-server' 替换为实际路径,'YOUR_API_KEY' 替换为您的 Google AI Studio API Key。
{ "mcpServers": { "gemini-server": { // 您可以自定义服务器名称 "command": "node", "args": ["/path/to/mcp-gemini-server/dist/server.js"], // 指向编译后的服务器入口文件 "env": { "GOOGLE_GEMINI_API_KEY": "YOUR_API_KEY", "GOOGLE_GEMINI_MODEL": "gemini-1.5-flash" // 可选: 设置默认模型 }, "disabled": false, "autoApprove": [] } // ... 其他服务器配置 } } -
重启 MCP 客户端: 重启您的 MCP 客户端应用(例如 VS Code 或 Claude Desktop App),以加载新的服务器配置。客户端将自动管理服务器的启动和停止。
服务器配置
在 MCP 客户端的配置文件中,您需要配置 'command' 和 'args' 来启动 Gemini MCP 服务器。'env' 部分用于设置服务器运行所需的环境变量,主要是 Google Gemini API Key。
以下是配置项的说明:
- server name: 服务器名称,可以自定义,例如 "gemini-server"。
- command: 启动服务器的命令,这里是 'node',表示使用 Node.js 运行时。
- args: 启动命令的参数,指向编译后的服务器入口文件路径,例如 '["/path/to/mcp-gemini-server/dist/server.js"]'。请务必替换为实际路径。
- env: 环境变量配置,用于传递 API Key 和默认模型等配置信息。
- 'GOOGLE_GEMINI_API_KEY': 必需,您的 Google AI Studio API Key。
- 'GOOGLE_GEMINI_MODEL': 可选,默认使用的 Gemini 模型名称,例如 'gemini-1.5-flash' 或 'gemini-1.0-pro'。如果设置此项,客户端调用工具时可以省略 'modelName' 参数。
基本使用方法
配置完成后,您可以使用 MCP 客户端的工具调用功能来使用 Gemini MCP 服务器提供的各种工具。以下是一些使用示例,展示了如何通过 '<use_mcp_tool>' 标签调用服务器上的工具:
示例 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_generateContent</tool_name> <arguments> { "modelName": "gemini-1.0-pro", "prompt": "解释编程中递归的概念。", "generationConfig": { "temperature": 0.7, "maxOutputTokens": 500 } } </arguments> </use_mcp_tool>
示例 3: 开始和继续对话
开始对话:
<use_mcp_tool> <server_name>gemini-server</server_name> <tool_name>gemini_startChat</tool_name> <arguments> {} </arguments> </use_mcp_tool>
(假设响应包含 'sessionId: "some-uuid-123"')
发送消息:
<use_mcp_tool> <server_name>gemini-server</server_name> <tool_name>gemini_sendMessage</tool_name> <arguments> { "sessionId": "some-uuid-123", "message": "你好!你能告诉我关于 Gemini API 的信息吗?" } </arguments> </use_mcp_tool>
示例 4: 上传文件
<use_mcp_tool> <server_name>gemini-server</server_name> <tool_name>gemini_uploadFile</tool_name> <arguments> { "filePath": "C:\\Users\\YourUser\\Documents\\my_document.txt", // 重要: 使用绝对路径,必要时转义反斜杠 "displayName": "我的文档" } </arguments> </use_mcp_tool>
更多工具和参数的详细信息,请参考仓库的 README 文档和源代码。
信息
分类
AI与计算