该项目实现了一个MCP服务器,它使用Gemini API(具有2百万令牌的巨大上下文窗口)来访问各种技术文档。该服务器应适用于任何客户端,但特别针对Roo/Cline环境。
这种方法相比简单地浏览网页或使用搜索引擎有以下优势:
它也克服了一些传统RAG系统的问题:
不过也有一些局限性:
can_x_be_done:检查在给定技术中是否可以执行特定任务。hints_for_problem:获取解决特定问题的提示。is_this_good_practice:检查代码片段是否遵循良好的实践。how_to_do_x:获取特定任务的例子和替代方法。--verbose标志)。要通过Smithery自动安装Gemini Docs Server for Claude Desktop:
npx -y @smithery/cli install @M-Gonzalo/cosa-sai --client claude
此MCP服务器由客户端自动启动和管理。要启用它,您需要在设置文件中配置它(例如,~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json)。通常在客户端中有一个按钮可以打开设置文件。
这是该服务器的配置:
{
"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 // 秒
}
此MCP服务器需要一个文档知识库来回答问题。您必须手动获取此知识库,可以通过下载公共存储库、抓取网站或使用其他方法。
可选的清理过程可以用来清除原始文档中的样式和其他不必要的内容。
这里是一些基本工具,鼓励使用更好的解决方案:
简单的抓取器:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --directory-prefix=./local_copy --no-verbose --show-progress $1
快速而粗糙的转换器到Markdown-ish:
#!/bin/bash
directory="${1:-.}" # 如果未提供参数,默认为当前目录
output_file="${2:-concatenated.md}" # 默认输出文件名
echo "正在将'$directory'中的文件合并到'$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 "完成!输出保存到'$output_file'"
此服务器提供了以下工具:
docs, prompt, x, technologysuccess, datadocs, prompt, problem, context, environmentsuccess, datadocs, prompt, snippet, contextsuccess, datadocs, prompt, x, technologysuccess, data欢迎贡献!请遵循以下指南:
本项目根据MIT许可证发布。
这是项目的非常早期版本,很可能存在错误和限制。请报告您发现的任何问题,并随时提出改进或新功能的建议。