小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
0
最近更新:3个月前

支持基于向量数据库的语义文档搜索与检索,可实现URL提取、来源管理及索引队列功能,兼容多种嵌入服务提供商(如Ollama和OpenAI)。

RAG 文档 MCP 服务器

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

功能

  • 基于向量的文档搜索与检索
  • 支持多文档来源
  • 语义搜索能力
  • 自动化文档处理
  • 为 LLM 提供实时上下文增强

工具

search_documentation

使用自然语言查询搜索存储的文档。返回匹配的片段及上下文,按相关性排序。

输入参数:

  • query (字符串):在文档中搜索的文本。可以是自然语言查询、特定术语或代码片段。
  • limit (数字,可选):返回结果的最大数量 (1-20,默认:5)。更高的限制提供更全面的结果但可能增加处理时间。

list_sources

列出系统中当前存储的所有文档来源。返回所有已索引文档的完整列表,包括来源 URL、标题和最后更新时间。用于了解可搜索的文档范围或验证特定来源是否已被索引。

extract_urls

从给定网页提取并分析所有 URL。此工具爬取指定网页,识别所有超链接,并可选择将其添加到处理队列。

输入参数:

  • url (字符串):要分析的网页完整 URL(必须包含协议,如 https://)。该页面必须可公开访问。
  • add_to_queue (布尔值,可选):若为 true,自动将提取的 URL 添加到处理队列以供后续索引。在大型网站上使用时需谨慎以避免队列过载。

remove_documentation

通过 URL 从系统中移除特定文档来源。此操作是永久性的,将影响未来搜索结果。

输入参数:

  • urls (字符串数组):要从数据库中移除的 URL 数组。每个 URL 必须与添加文档时使用的 URL 完全匹配。

list_queue

列出当前文档处理队列中等待的所有 URL。显示待处理的文档来源,这些来源将在调用 run_queue 时被处理。用于监控队列状态、验证 URL 是否正确添加或检查处理积压情况。

run_queue

处理并索引当前文档队列中的所有 URL。每个 URL 按顺序处理,具有完善的错误处理和重试逻辑。处理过程中会提供进度更新。长时间运行的操作将持续处理直到队列为空或发生不可恢复的错误。

clear_queue

从文档处理队列中移除所有待处理的 URL。用于重置队列、移除不需要的 URL 或取消待处理操作。此操作是即时且永久的 - 如需后续处理,URL 需要重新添加。

用途

RAG 文档工具设计用于:

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

配置

与 Claude Desktop 配合使用

将以下内容添加到 claude_desktop_config.json

json 复制代码
{
  "mcpServers": {
    "rag-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@hannesrudolph/mcp-ragdocs"
      ],
      "env": {
        "OPENAI_API_KEY": "",
        "QDRANT_URL": "",
        "QDRANT_API_KEY": ""
      }
    }
  }
}

需要为以下环境变量提供值:

  • OPENAI_API_KEY:用于生成嵌入向量的 OpenAI API 密钥
  • QDRANT_URL:Qdrant 向量数据库实例的 URL
  • QDRANT_API_KEY:用于 Qdrant 身份验证的 API 密钥

待办事项

  • 使嵌入向量可配置,允许在 OpenAI 嵌入和本地 Ollama 之间选择用于向量生成

许可证

本 MCP 服务器采用 MIT 许可证授权。这意味着您可以自由使用、修改和分发该软件,但需遵守 MIT 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。

致谢

本项目基于 qpd-v/mcp-ragdocs 分支开发,原始项目由 qpd-v 创建。原项目为本实现提供了基础框架。