Qdrant MCP Server

Qdrant MCP Server

好的,这是将 "A Model Context Protocol (MCP) server implementation for RAG" 翻译成中文的几种选择,根据不同的侧重点,可以选择最合适的: * **最直接的翻译:** 用于 RAG 的模型上下文协议 (MCP) 服务器实现 * **更强调功能的翻译:** RAG 的模型上下文协议 (MCP) 服务器实现方案 * **更技术性的翻译:** RAG 的模型上下文协议 (MCP) 服务器端实现 * **更口语化的翻译:** 一个为 RAG 打造的模型上下文协议 (MCP) 服务器 **解释:** * **RAG (Retrieval-Augmented Generation):** 检索增强生成,通常直接使用英文缩写。 * **Model Context Protocol (MCP):** 模型上下文协议,通常直接使用英文缩写。 * **Server Implementation:** 服务器实现,可以翻译成服务器端实现、服务器实现方案等。 **推荐:** 我个人推荐 **用于 RAG 的模型上下文协议 (MCP) 服务器实现**,因为它简洁明了,并且保留了技术术语的英文缩写,方便专业人士理解。 最终选择哪个翻译取决于你的具体语境和目标受众。

hadv

研究与数据
访问服务器

README

Qdrant MCP 服务器

一个支持 Qdrant 和 Chroma 向量数据库的服务器实现,用于存储和检索领域知识。

特性

  • 支持 Qdrant 和 Chroma 向量数据库
  • 可通过环境变量配置数据库选择
  • 使用 Qdrant 内置的 FastEmbed 实现高效的嵌入生成
  • 领域知识存储和检索
  • 支持带元数据的文档文件存储
  • 支持 PDF 和 TXT 文件格式

前提条件

  • Node.js 20.x 或更高版本(推荐 LTS)
  • npm 10.x 或更高版本
  • Qdrant 或 Chroma 向量数据库

安装

  1. 克隆仓库:
git clone <repository-url>
cd qdrant-mcp-server
  1. 安装依赖:
npm install
  1. 基于 .env.example 模板在根目录下创建一个 .env 文件:
cp .env.example .env
  1. 使用您自己的设置更新 .env 文件:
DATABASE_TYPE=qdrant
QDRANT_URL=https://your-qdrant-instance.example.com:6333
QDRANT_API_KEY=your_api_key
COLLECTION_NAME=your_collection_name
  1. 构建项目:
npm run build

AI IDE 集成

Cursor AI IDE

在项目根目录下创建脚本 run-cursor-mcp.sh

#!/bin/zsh
cd /path/to/your/project
source ~/.zshrc
nvm use --lts

# 让应用程序从 .env 文件加载环境变量
node dist/index.js

使脚本可执行:

chmod +x run-cursor-mcp.sh

将此配置添加到您的 ~/.cursor/mcp.json.cursor/mcp.json 文件中:

{
  "mcpServers": {
    "qdrant-retrieval": {
      "command": "/path/to/your/project/run-cursor-mcp.sh",
      "args": []
    }
  }
}

Claude Desktop

在 Claude 的设置中添加此配置:

{
  "processes": {
    "knowledge_server": {
      "command": "/path/to/your/project/run-cursor-mcp.sh",
      "args": []
    }
  },
  "tools": [
    {
      "name": "store_knowledge",
      "description": "将特定领域的知识存储在向量数据库中",
      "provider": "process",
      "process": "knowledge_server"
    },
    {
      "name": "retrieve_knowledge_context",
      "description": "从向量数据库中检索相关的领域知识",
      "provider": "process",
      "process": "knowledge_server"
    }
  ]
}

使用方法

启动服务器

npm start

用于开发,具有自动重新加载功能:

npm run dev

存储文档

服务器包含一个脚本,用于存储带有元数据的文档文件(PDF 和 TXT):

npm run store-doc <path-to-your-file>

示例:

# 存储一个 PDF 文件
npm run store-doc docs/manual.pdf

# 存储一个文本文件
npm run store-doc docs/readme.txt

该脚本将:

  • 从文件中提取内容(PDF 中的文本或纯文本)
  • 存储带有元数据的内容,包括:
    • Source: "documentation"
    • 文件名和扩展名
    • 文件大小
    • 上次修改日期
    • 创建日期
    • 内容类型

API 接口

存储领域知识

POST /api/store
Content-Type: application/json

{
  "content": "您的领域知识内容",
  "source": "您的来源",
  "metadata": {
    "key": "value"
  }
}

查询领域知识

POST /api/query
Content-Type: application/json

{
  "query": "您的搜索查询",
  "limit": 5
}

开发

运行测试

npm test

构建项目

npm run build

代码检查

npm run lint

项目结构

src/
├── core/
│   ├── db-service.ts      # 数据库服务实现
│   └── embedding-utils.ts # 嵌入实用程序
├── scripts/
│   └── store-documentation.ts  # 文档存储脚本
└── index.ts              # 主服务器文件

与远程 Qdrant 一起使用

当与远程 Qdrant 实例(如 Qdrant Cloud)一起使用时:

  1. 确保您的 .env 具有正确的 URL 和端口号:
QDRANT_URL=https://your-instance-id.region.gcp.cloud.qdrant.io:6333
  1. 设置您的 API 密钥:
QDRANT_API_KEY=your_qdrant_api_key

FastEmbed 集成

本项目使用 Qdrant 内置的 FastEmbed 实现高效的嵌入生成:

优点

  • 轻量级且快速的嵌入生成
  • 使用量化的模型权重和 ONNX Runtime 进行推理
  • 根据 Qdrant 的说法,比 OpenAI Ada-002 具有更好的准确性
  • 无需外部嵌入 API 密钥

工作原理

  1. 系统连接到您的 Qdrant 实例
  2. 生成嵌入时,它使用 Qdrant 的服务器端嵌入端点
  3. 这消除了对外部嵌入 API 的需求并简化了架构

配置

无需额外配置,因为 FastEmbed 已内置于 Qdrant 中。 只需确保您的 Qdrant URL 和 API 密钥在您的 .env 文件中正确设置即可。

故障排除

如果您遇到问题:

  1. 确保您使用的是 Node.js LTS 版本 (nvm use --lts)
  2. 验证您的环境变量是否正确
  3. 检查 Qdrant/Chroma 连接
  4. 确保您的 Qdrant 实例已正确配置

许可证

MIT

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python