RAG Documentation MCP Server

RAG Documentation MCP Server

通过语义向量搜索,使 AI 助手能够使用相关文档来增强其响应,并提供高效管理和处理文档的工具。

编程文档访问
访问服务器

README

RAG 文档 MCP 服务器

smithery badge

一个 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 文件,便于容器化部署。 要启动服务:

docker-compose up -d

要停止服务:

docker-compose down

Web 界面

该系统包含一个 Web 界面,可以在启动 Docker Compose 服务后访问:

  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

{
  "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

{
  "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 配置为备用(推荐):
    {
      // 默认使用 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 的进程:
npx kill-port 3030
  1. 重新启动 MCP 服务器

  2. 如果问题仍然存在,请检查是否有其他进程正在使用该端口:

lsof -i :3030
  1. 如果需要,您也可以在配置中更改默认端口