MCP Gemini Server
2025.04.04
11
TypeScript模型集成文本生成对话系统文件管理缓存优化内容生成
MCP Gemini Server 是一个基于 MCP(Model Context Protocol)标准的服务器,封装了 Google 的 Gemini 模型功能,为其他 LLM(如 Cline)或兼容 MCP 的系统提供标准化的工具接口。该服务器简化了与 Gemini 模型的集成,提供了文本生成、函数调用、状态化聊天、文件处理和缓存等功能。
View on GitHub
Overview
基本能力
产品定位
MCP Gemini Server 是一个中间件服务器,旨在通过 MCP 标准将 Google 的 Gemini 模型功能暴露为标准化工具,便于其他 LLM 或 MCP 兼容系统调用。
核心功能
- 核心生成:支持标准文本生成(
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)。
适用场景
- 内容生成:如生成诗歌、解释概念等。
- 对话系统:支持多轮对话的上下文管理。
- 文件处理:上传和管理文件以供模型使用。
- 缓存优化:通过缓存优化提示词和生成内容。
工具列表
- 核心生成工具:
gemini_generateContent:生成非流式文本内容。gemini_generateContentStream:生成流式文本内容(当前实现为收集所有块后返回完整文本)。- 函数调用工具:
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:删除缓存内容。
常见问题解答
- API 密钥问题:仅支持 Google AI Studio 的 API 密钥,不支持 Vertex AI 凭证。
- 文件上传问题:需要绝对路径。
- 流式生成问题:当前实现为收集所有块后返回完整文本,未实现真正的流式传输。
- 分页问题:
gemini_listFiles和gemini_listCaches可能无法可靠返回nextPageToken。
使用教程
使用依赖
- Node.js:v18 或更高版本。
- Google AI Studio API Key:从 Google AI Studio 获取。
安装教程
通过 Smithery 安装
npx -y @smithery/cli install @bsmi021/mcp-gemini-server --client claude
手动安装
- 克隆/放置项目:确保
mcp-gemini-server项目目录可访问。 - 安装依赖:
bash npm install - 构建项目:
bash npm run build - 配置 MCP 客户端:将服务器配置添加到 MCP 客户端的设置文件中(如
cline_mcp_settings.json)。 - 重启 MCP 客户端:重启客户端以加载新配置。
调试方式
- 环境变量:确保
GOOGLE_GEMINI_API_KEY和GOOGLE_GEMINI_MODEL正确设置。 - 日志检查:查看服务器日志以排查错误。
- 参数验证:使用 Zod 定义的参数模式进行验证。