使用说明
项目简介
Gemini Docs Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它利用 Google 的 Gemini API 强大的上下文处理能力,将技术文档作为知识库,为开发者提供代码相关问题的解答和指导。该服务器旨在帮助开发者更高效地理解和运用各种技术,如同拥有一个基于文档的智能助手。
主要功能点
- 文档知识库: 允许用户上传和管理本地技术文档,作为 LLM 的知识来源,避免依赖网络搜索,提高信息准确性。
- Gemini API 驱动: 使用 Gemini API (特别是 Gemini 1.5 Pro) 处理用户查询,利用其超大上下文窗口处理大量文档内容。
- 多种实用工具: 提供多种预设工具,帮助用户进行不同类型的代码和技术问题查询:
- 'can_x_be_done': 查询特定技术是否支持某项操作或功能。
- 'how_to_do_x': 查询如何在特定技术中实现某项任务,并获取示例和替代方案。
- 'hints_for_problem': 针对特定问题,从文档中寻找可能的解决方案和提示。
- 'is_this_good_practice': 评估代码片段是否符合良好实践,并提供改进建议。
- 高效的文件处理: 支持批量上传和处理 Markdown 文档,并使用本地数据库缓存已上传文件,提升效率。
- 可配置的服务器: 通过简单的 JSON 配置,即可集成到支持 MCP 协议的客户端,如 Roo/Cline。
安装步骤
-
安装 Smithery CLI (可选): 如果你使用 Claude Desktop 等客户端,可以通过 Smithery 简化安装和管理:
npx -y @smithery/cli install @M-Gonzalo/cosa-sai --client claude或者,你也可以手动克隆仓库并进行配置。
-
配置 Gemini API 密钥: 你需要拥有 Google Gemini API 的密钥。将你的密钥设置为环境变量 'GEMINI_API_KEY'。
-
配置 MCP 客户端: 在你的 MCP 客户端(如 Roo/Cline)中,配置 Gemini Docs Server。
服务器配置
以下是 Gemini Docs Server 的 MCP 客户端配置示例 (JSON 格式):
{ "command": "bun", "args": [ "--watch", "path/to/repo/cosa-sai-mcp/src/index.ts" // 将 "path/to/repo/cosa-sai-mcp" 替换为你的本地仓库路径 ], "env": { "GEMINI_API_KEY": "<your_gemini_api_key>" // 替换为你的 Gemini API 密钥 }, "disabled": false, "alwaysAllow": [ "can_x_be_done", "hints_for_problem", "is_this_good_practice", "how_to_do_x" ], "timeout": 60 }
配置参数说明:
- 'command': 启动服务器的命令,这里使用 'bun' 运行时。
- 'args': 传递给 'bun' 命令的参数:
- '--watch': (可选) 启用文件监视模式,方便开发时代码更改自动重启服务器。
- 'path/to/repo/cosa-sai-mcp/src/index.ts': 请务必替换为你的本地仓库 'src/index.ts' 文件的绝对路径。
- 'env': 环境变量配置:
- 'GEMINI_API_KEY': 必须配置,将 '<your_gemini_api_key>' 替换为你的 Google Gemini API 密钥。
- 'disabled': 设置为 'false' 以启用服务器。
- 'alwaysAllow': 列出的工具将自动授权给客户端调用,无需每次手动确认。
- 'timeout': 设置工具调用的超时时间,单位为秒。
基本使用方法
-
准备技术文档: 你需要手动准备要查询的技术文档,例如你想要查询 React 文档,你需要先下载 React 官方文档并转换为 Markdown 格式,并将其存放于本地目录。
-
客户端发起工具调用: 在 MCP 客户端中,你可以调用 Gemini Docs Server 提供的工具,例如:
-
查询 "在 React 中是否可以做服务端渲染?": 调用 'can_x_be_done' 工具,并提供以下参数:
- 'docs': 你的 React 文档目录路径。
- 'technology': "React"
- 'x': "do server-side rendering"
-
查询 "在 JavaScript 中如何使用 Promise?": 调用 'how_to_do_x' 工具,并提供 JavaScript 文档目录和相关参数。
-
获取代码问题提示: 调用 'hints_for_problem' 工具,并提供问题描述、上下文信息等。
-
代码质量检查: 调用 'is_this_good_practice' 工具,并提供代码片段和相关上下文。
服务器将根据你提供的文档知识库和 Gemini API 的能力,返回相应的解答。
-
注意: 首次使用工具时,服务器需要上传文档到 Gemini API,可能需要一些时间,请耐心等待。后续查询如果文档没有更改,将使用缓存,速度会更快。
信息
分类
AI与计算