Gemini Docs MCP Server

Gemini Docs MCP Server

site icon
2025.03.03 13
TypeScript文档查询技术学习代码调试开发效率
Gemini Docs MCP Server 是一个基于 Gemini API 的文档访问服务,旨在为各种技术文档提供智能化的查询和解答功能。它特别适用于 Roo/Cline 环境,通过利用 Gemini API 的 2M tokens 上下文窗口,能够直接访问整个文档集,避免了传统 RAG 系统的分块和检索问题。该服务提供了一个精选的知识库,能够生成经过深思熟虑的答案,适用于学习、调试和技术查询。
View on GitHub

Overview

基本能力

产品定位

Gemini Docs MCP Server 是一个基于 Gemini API 的文档访问服务,旨在为各种技术文档提供智能化的查询和解答功能。

核心功能

  • 访问精选知识库:避免垃圾结果和误报,提供准确的文档信息。
  • 克服上下文窗口限制:直接提供文档,使 LLM 能够访问比单独使用网络搜索更多的信息。
  • 定制化响应:LLM 不仅提供文档片段,还能根据整个技术规范生成经过深思熟虑的答案。
  • 无需分块或检索:Gemini API 本身作为强大的检索器,无需实现自定义检索器或分块。
  • 无需向量化或向量数据库:直接处理纯文本,无需相似性搜索。

适用场景

  • 学习新技术文档
  • 调试代码问题
  • 查询技术文档中的特定任务或最佳实践
  • 获取复杂问题的解答

工具列表

  • can_x_be_done:检查特定任务是否可以在给定技术中完成。
  • hints_for_problem:获取解决特定问题的提示。
  • is_this_good_practice:检查代码片段是否遵循最佳实践。
  • how_to_do_x:获取特定任务的示例和替代方法。

常见问题解答

  • 实时更新:文档是静态的,不会实时更新。
  • 上下文窗口限制:LLM 只能看到约 200 万 tokens,可能无法看到某些技术的全部文档。
  • 速度问题:使用 Gemini 1.5 Pro 加载大量文档可能会导致响应时间较长。

使用教程

使用依赖

安装教程

npx -y @smithery/cli install @M-Gonzalo/cosa-sai --client claude

配置

在设置文件中配置服务器,例如:

{
  "command": "bun",
  "args": [
    "--watch",
    "path/to/repo/cosa-sai-mcp/src/index.ts",
    "--verbose"
  ],
  "env": {
    "GEMINI_API_KEY": "<your_gemini_api_key>"
  },
  "disabled": false,
  "alwaysAllow": [
    "can_x_be_done",
    "hints_for_problem",
    "is_this_good_practice",
    "how_to_do_x"
  ],
  "timeout": 60
}

调试方式

启用 --verbose 标志以启用日志系统。

知识库准备

获取知识库

  • 下载公共仓库
  • 抓取网站
  • 使用其他方法

清理工具

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --directory-prefix=./local_copy --no-verbose --show-progress $1

转换为 Markdown

#!/bin/bash

directory="${1:-.}"
output_file="${2:-concatenated.md}"

echo "Concatenating files in '$directory' into '$output_file'..."

truncate -s 0 "$output_file"

find "$directory" -type f -name '*.html' | while IFS= read -r file; do
    echo "=== ${file#./} ===" >> "$output_file"
    cat "$file" \
    | grep -v 'base64' \
    | html2markdown >> "$output_file"
    echo -e "\n" >> "$output_file"
done

echo "Done! Output saved to '$output_file'"

许可证

该项目遵循 MIT 开源许可条款。