RagDocs MCP 服务器
模型上下文协议 (MCP) 服务器,使用 Qdrant 向量数据库和 Ollama/OpenAI 嵌入提供 RAG(检索增强生成)功能。该服务器通过向量相似性实现文档的语义搜索和管理。
特征
- 添加带有元数据的文档
- 通过文档进行语义搜索
- 列出并组织文档
- 删除文档
- 支持 Ollama(免费)和 OpenAI(付费)嵌入
- 自动文本分块和嵌入生成
- 使用 Qdrant 进行矢量存储
先决条件
- Node.js 16 或更高版本
- 以下 Qdrant 设置之一:
- 使用 Docker 的本地实例(免费)
- 带有 API 密钥的 Qdrant Cloud 帐户(托管服务)
- 以下其中之一用于嵌入:
- Ollama 在本地运行(默认,免费)
- OpenAI API 密钥(可选,付费)
可用工具
1. 添加文档
向 RAG 系统添加文档。
参数:
url
(必填):文档 URL/标识符content
(必填):文档内容metadata
(可选):文档元数据title
:文档标题contentType
:内容类型(例如“text/markdown”)
2. 搜索文档
使用语义相似性搜索存储的文档。
参数:
query
(必需):自然语言搜索查询options
(可选):limit
:最大结果数(1-20,默认值:5)scoreThreshold
:最小相似度得分(0-1,默认值:0.7)filters
:domain
:按域过滤hasCode
:过滤包含代码的文档after
:过滤日期之后的文档(ISO 格式)before
:过滤日期之前的文档(ISO 格式)
3. 列出文档
列出所有存储的文档,并提供分页和分组选项。
参数(全部可选):
page
:页码(默认值:1)pageSize
:每页文档数(1-100,默认值:20)groupByDomain
:按域分组文档(默认值:false)sortBy
:排序字段(“时间戳”、“标题”或“域”)sortOrder
:排序顺序(“asc”或“desc”)
4. 删除文档
从 RAG 系统中删除文档。
参数:
安装
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 Cloud:
{
"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 实例的 URLQDRANT_API_KEY
:Qdrant Cloud 的 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