小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
Other
23
最近更新:17天前

将Qdrant向量搜索与文档检索集成,实现基于上下文的响应和语义查询,以增强知识获取能力。

RAG 文档 MCP 服务器

smithery 徽章

一个 MCP 服务器实现,提供通过向量搜索检索和处理文档的工具,使 AI 助手能够利用相关文档上下文增强其响应。

目录

功能

工具

  1. search_documentation

    • 使用向量搜索检索文档
    • 返回带有来源信息的相关文档片段
  2. list_sources

    • 列出所有可用的文档来源
    • 提供每个来源的元数据
  3. extract_urls

    • 从文本中提取 URL 并检查是否已存在于文档中
    • 用于防止重复文档
  4. remove_documentation

    • 移除特定来源的文档
    • 清理过时或不相关的文档
  5. list_queue

    • 列出处理队列中的所有项目
    • 显示待处理文档的状态
  6. run_queue

    • 处理队列中的所有项目
    • 自动将新文档添加到向量存储
  7. clear_queue

    • 清除处理队列中的所有项目
    • 用于重置系统
  8. add_documentation

    • 向处理队列添加新文档
    • 支持多种格式和来源

快速开始

RAG 文档工具设计用于:

  • 通过相关文档增强 AI 响应
  • 构建具备文档意识的 AI 助手
  • 为开发者创建上下文感知工具
  • 实现语义文档搜索
  • 扩充现有知识库

Docker Compose 设置

项目包含 docker-compose.yml 文件,便于容器化部署。启动服务:

bash 复制代码
docker-compose up -d

停止服务:

bash 复制代码
docker-compose down

Web 界面

系统包含可通过 Docker Compose 服务启动后访问的 Web 界面:

  1. 打开浏览器并导航至:http://localhost:3030
  2. 界面提供:
    • 实时队列监控
    • 文档来源管理
    • 用于测试查询的搜索界面
    • 系统状态和健康检查

配置

嵌入配置

系统默认使用 Ollama 作为本地嵌入生成提供程序,并支持 OpenAI 作为备用选项。此设置优先考虑本地处理,同时通过基于云的备用方案确保可靠性。

环境变量

  • EMBEDDING_PROVIDER:选择主要嵌入提供程序('ollama' 或 'openai',默认:'ollama')
  • EMBEDDING_MODEL:指定使用的模型(可选)
    • OpenAI:默认为 'text-embedding-3-small'
    • Ollama:默认为 'nomic-embed-text'
  • OPENAI_API_KEY:使用 OpenAI 提供程序时必需
  • FALLBACK_PROVIDER:可选的备用提供程序('ollama' 或 'openai')
  • FALLBACK_MODEL:备用提供程序的模型(可选)

Cline 配置

将以下内容添加到 cline_mcp_settings.json

json 复制代码
{
  "mcpServers": {
    "rag-docs": {
      "command": "node",
      "args": ["/path/to/your/mcp-ragdocs/build/index.js"],
      "env": {
        "EMBEDDING_PROVIDER": "ollama", // 默认
        "EMBEDDING_MODEL": "nomic-embed-text", // 可选
        "OPENAI_API_KEY": "your-api-key-here", // 备用必需
        "FALLBACK_PROVIDER": "openai", // 推荐以确保可靠性
        "FALLBACK_MODEL": "nomic-embed-text", // 可选
        "QDRANT_URL": "http://localhost:6333"
      },
      "disabled": false,
      "autoApprove": [
        "search_documentation",
        "list_sources",
        "extract_urls",
        "remove_documentation",
        "list_queue",
        "run_queue",
        "clear_queue",
        "add_documentation"
      ]
    }
  }
}

Claude Desktop 配置

将以下内容添加到 claude_desktop_config.json

json 复制代码
{
  "mcpServers": {
    "rag-docs": {
      "command": "node",
      "args": ["/path/to/your/mcp-ragdocs/build/index.js"],
      "env": {
        "EMBEDDING_PROVIDER": "ollama", // 默认
        "EMBEDDING_MODEL": "nomic-embed-text", // 可选
        "OPENAI_API_KEY": "your-api-key-here", // 备用必需
        "FALLBACK_PROVIDER": "openai", // 推荐以确保可靠性
        "FALLBACK_MODEL": "nomic-embed-text", // 可选
        "QDRANT_URL": "http://localhost:6333"
      }
    }
  }
}

默认配置

系统默认使用 Ollama 进行高效的本地嵌入生成。为确保最佳可靠性:

  1. 本地安装并运行 Ollama
  2. 配置 OpenAI 作为备用(推荐):
    json 复制代码
    {
      // Ollama 为默认,无需指定 EMBEDDING_PROVIDER
      "EMBEDDING_MODEL": "nomic-embed-text", // 可选
      "FALLBACK_PROVIDER": "openai",
      "FALLBACK_MODEL": "text-embedding-3-small",
      "OPENAI_API_KEY": "your-api-key-here"
    }

此配置确保:

  • 使用 Ollama 实现快速本地嵌入生成
  • 如果 Ollama 失败,自动回退到 OpenAI
  • 除非必要,否则不进行外部 API 调用

注意:系统将根据提供程序自动使用适当的向量维度:

  • Ollama (nomic-embed-text):768 维度
  • OpenAI (text-embedding-3-small):1536 维度

致谢

本项目是 qpd-v/mcp-ragdocs 的一个分支,原由 qpd-v 开发。原项目为本实现提供了基础。

特别感谢原创建者 qpd-v 对该 MCP 服务器初始版本的创新工作。此分支由 Rahul Retnan 增强了额外功能和改进。

故障排除

服务器无法启动(端口冲突)

如果 MCP 服务器因端口冲突无法启动,请执行以下步骤:

  1. 识别并终止使用端口 3030 的进程:
bash 复制代码
npx kill-port 3030
  1. 重新启动 MCP 服务器

  2. 如果问题仍然存在,检查其他使用该端口的进程:

bash 复制代码
lsof -i :3030
  1. 如有需要,可在配置中更改默认端口