RAG Documentation MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Uses Ollama as the default embedding provider for local embeddings generation, supporting semantic documentation search and vector storage.

  • Provides OpenAI as a fallback embedding provider, using models like text-embedding-3-small for document embedding when Ollama is unavailable.

RAG 文档 MCP 服务器

MCP 服务器实现提供了通过矢量搜索检索和处理文档的工具,使 AI 助手能够通过相关文档上下文增强他们的响应。

目录

特征

工具

  1. 搜索文档
    • 使用矢量搜索功能搜索文档
    • 返回包含源信息的相关文档块
  2. 列表来源
    • 列出所有可用的文档来源
    • 提供有关每个来源的元数据
  3. 提取网址
    • 从文本中提取 URL 并检查它们是否已存在于文档中
    • 有助于防止重复文档
  4. 删除文档
    • 从特定来源删除文档
    • 清理过时或不相关的文档
  5. 列表队列
    • 列出处理队列中的所有项目
    • 显示待处理文件的状态
  6. 运行队列
    • 处理队列中的所有项目
    • 自动将新文档添加到矢量存储
  7. 清除队列
    • 清除处理队列中的所有项目
    • 对于重置系统很有用
  8. 添加文档
    • 将新文档添加到处理队列
    • 支持各种格式和来源

快速入门

RAG 文档工具旨在用于:

  • 利用相关文档增强人工智能响应
  • 构建具有文档意识的人工智能助手
  • 为开发人员创建上下文感知工具
  • 实现语义文档搜索
  • 扩充现有知识库

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_mcp_settings.json

{ "mcpServers": { "rag-docs": { "command": "node", "args": ["/path/to/your/mcp-ragdocs/build/index.js"], "env": { "EMBEDDING_PROVIDER": "ollama", // default "EMBEDDING_MODEL": "nomic-embed-text", // optional "OPENAI_API_KEY": "your-api-key-here", // required for fallback "FALLBACK_PROVIDER": "openai", // recommended for reliability "FALLBACK_MODEL": "nomic-embed-text", // optional "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桌面配置

将其添加到您的claude_desktop_config.json中:

{ "mcpServers": { "rag-docs": { "command": "node", "args": ["/path/to/your/mcp-ragdocs/build/index.js"], "env": { "EMBEDDING_PROVIDER": "ollama", // default "EMBEDDING_MODEL": "nomic-embed-text", // optional "OPENAI_API_KEY": "your-api-key-here", // required for fallback "FALLBACK_PROVIDER": "openai", // recommended for reliability "FALLBACK_MODEL": "nomic-embed-text", // optional "QDRANT_URL": "http://localhost:6333" } } } }

默认配置

系统默认使用 Ollama 进行高效的局部嵌入生成。为了获得最佳可靠性,请执行以下操作:

  1. 在本地安装并运行 Ollama
  2. 将 OpenAI 配置为后备(推荐):
    { // Ollama is used by default, no need to specify EMBEDDING_PROVIDER "EMBEDDING_MODEL": "nomic-embed-text", // optional "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. 如果需要,您还可以更改配置中的默认端口
-
security - not tested
F
license - not found
-
quality - not tested

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

  1. Table of Contents
    1. Features
      1. Tools
    2. Quick Start
      1. Docker Compose Setup
        1. Web Interface
          1. Configuration
            1. Embeddings Configuration
            2. Cline Configuration
            3. Claude Desktop Configuration
            4. Default Configuration
          2. Acknowledgments
            1. Troubleshooting
              1. Server Not Starting (Port Conflict)
            ID: co522bhy31