返回市场
文档检索服务器

文档检索服务器

作者:heltonteixeira16 星标更新:2025-01-05

项目介绍

RagDocs MCP Server

一个使用Qdrant向量数据库和Ollama/OpenAI嵌入模型提供检索增强生成(RAG)能力的模型上下文协议(MCP)服务器。此服务器通过向量相似性实现文档的语义搜索和管理。

功能

  • 添加带有元数据的文档
  • 通过文档进行语义搜索
  • 列出并组织文档
  • 删除文档
  • 支持Ollama(免费)和OpenAI(付费)嵌入模型
  • 自动文本分块和嵌入生成
  • 使用Qdrant存储向量

预备条件

  • Node.js 16或更高版本
  • 下列Qdrant设置之一:
    • 使用Docker的本地实例(免费)
    • 带有API密钥的Qdrant云账户(托管服务)
  • 下列嵌入模型之一:
    • 本地运行的Ollama(默认,免费)
    • OpenAI API密钥(可选,付费)

可用工具

1. add_document

向RAG系统添加文档。

参数:

  • url (必需):文档URL/标识符
  • content (必需):文档内容
  • metadata (可选):文档元数据
    • title:文档标题
    • contentType:内容类型(例如:"text/markdown")

2. search_documents

使用语义相似性搜索存储的文档。

参数:

  • query (必需):自然语言搜索查询
  • options (可选):
    • limit:结果的最大数量(1-20,默认值:5)
    • scoreThreshold:最小相似度分数(0-1,默认值:0.7)
    • filters
      • domain:按领域过滤
      • hasCode:过滤包含代码的文档
      • after:过滤日期之后的文档(ISO格式)
      • before:过滤日期之前的文档(ISO格式)

3. list_documents

列出所有存储的文档,并支持分页和分组选项。

参数(全部可选):

  • page:页码(默认值:1)
  • pageSize:每页的文档数量(1-100,默认值:20)
  • groupByDomain:按领域分组文档(默认值:false)
  • sortBy:排序字段("timestamp","title"或"domain")
  • sortOrder:排序顺序("asc"或"desc")

4. delete_document

从RAG系统中删除文档。

参数:

  • url (必需):要删除的文档URL

安装

npm install -g @mcpservers/ragdocs

MCP服务器配置

{
  "mcpServers": {
    "ragdocs": {
      "command": "node",
      "args": ["@mcpservers/ragdocs"],
      "env": {
        "QDRANT_URL": "http://127.0.0.1:6333",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

使用Qdrant云:

{
  "mcpServers": {
    "ragdocs": {
      "command": "node",
      "args": ["@mcpservers/ragdocs"],
      "env": {
        "QDRANT_URL": "https://your-cluster-url.qdrant.tech",
        "QDRANT_API_KEY": "your-qdrant-api-key",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

使用OpenAI:

{
  "mcpServers": {
    "ragdocs": {
      "command": "node",
      "args": ["@mcpservers/ragdocs"],
      "env": {
        "QDRANT_URL": "http://127.0.0.1:6333",
        "EMBEDDING_PROVIDER": "openai",
        "OPENAI_API_KEY": "your-api-key"
      }
    }
  }
}

使用Docker的本地Qdrant

docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant

环境变量

  • QDRANT_URL:您的Qdrant实例的URL
  • QDRANT_API_KEY:Qdrant云的API密钥(使用云实例时需要)
  • EMBEDDING_PROVIDER:嵌入模型提供商的选择("ollama"或"openai",默认值:"ollama")
  • OPENAI_API_KEY:OpenAI API密钥(使用OpenAI时需要)
  • EMBEDDING_MODEL:用于嵌入的模型
    • 对于Ollama:默认为"nomic-embed-text"
    • 对于OpenAI:默认为"text-embedding-3-small"

许可证

Apache许可证2.0