Gemini File Search MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 这是一个用 Go 编写的 MCP 服务器实现,专注于 Gemini File Search 的资源(Stores、Files、Documents)管理以及查询能力的对外暴露。服务器通过 MCP 协议注册一组工具(如 list_stores、list_files、query_knowledge_base 等),并在后端调用 Gemini API 客户端完成实际操作。当前实现以 STDIO 传输为 MCP 服务器与客户端之间的通信方式。
-
主要功能点
- MCP 服务器核心能力:注册、执行并渲染工具,并通过 JSON-RPC 与客户端交互。
- 资源管理工具:list_stores、list_files、list_documents、create_store、delete_store、delete_document、delete_file、get_store、get_file、get_document 等。
- 导入与上传:支持将文件上传到 Gemini Files API,或导入已有文件进入指定的存储。
- 查询能力:通过 Gemini 的 File Search 模型进行查询,支持指定存储、模型与元数据过滤。
- 集成 Gemini 客户端:封装 List/List/Get/Query/Upload/Import 等 API 调用,提供稳定的后端服务。
- MCP 配置能力:通过命令行参数与配置文件控制启用的工具集合,支持全量或按需选择。
- 开发者测试覆盖:包含用于 MCP 服务集成与单元测试的实现。
-
安装步骤
- 安装与构建
- 确保 Go 语言环境已安装(推荐 Go 1.20+)。
- 在仓库根目录执行构建命令(如 go build ./...),生成可执行文件。
- 运行服务器
- 启动命令:在命令行中执行 file-search mcp(通过仓库的 CLI,启用 MCP 服务器模式)。
- 运行时依赖:若希望通过 Gemini API 与实际数据交互,需要提供 Gemini API Key,通常通过 --api-key 或环境变量 GEMINI_API_KEY/GOOGLE_API_KEY 配置。
- 配置与工具控制
- 通过命令行参数 --mcp-tools 或配置文件来控制启用的工具集合,例如启用所有工具或仅启用部分工具。
- 安装与构建
-
服务器配置(MCP 客户端需要的配置信息) 注意:MCP 客户端不直接需要本仓库的代码片段;以下信息用于协助定义 MCP 客户端连接参数。实际配置以客户端实现为准。
- server name: Gemini File Search
- command: 文件搜索服务程序的路径,例如 /path/to/file-search
- args: ["mcp"]
- env(可选): { "GEMINI_API_KEY": "<你的 Gemini API Key>" }
- 备注:上述 JSON 配置用于告知 MCP 客户端如何启动并连接 MCP 服务器;该配置不属于服务器端实现的一部分,但有助于部署与跨项目集成。
-
基本使用方法
- 启动后,MCP 服务器会注册一组工具,LLM 客户端可通过 MCP 接口调用这些工具来实现对资源的读取、修改、查询等操作。
- 你可以通过 Gemini 的工作流将自然语言请求映射为相应的工具调用,例如检索某个 Store 的文档、执行语义查询、上传或导入文件等。
- 具体的工具行为与参数会在 MCP 服务器中定义,客户端仅需通过 MCP 协议进行请求与响应。
-
其他注意
- 服务器设计支持在无 Gemini API Key 时仍然启动,工具在调用时会对鉴权失败进行优雅处理。
- 代码中包含对工具注册、参数描述与元数据处理的实现,以及对 JSON 输出格式的支持,便于与多种客户端集成与调试。