语义记忆服务器

Qdrant MCP Server 是一个基于 Qdrant 向量数据库的语义记忆服务器,支持多种嵌入提供程序,提供语义搜索和灵活配置功能。

  • by andrewlwn77
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 andrewlwn77/qdrant-mcp

使用说明

Qdrant MCP服务器

一种模型上下文协议(MCP)服务器,使用具有可配置嵌入提供者的Qdrant向量数据库提供语义记忆功能。

特性

  • 多个嵌入提供程序:
    • OpenAI(文本嵌入-3小,文本嵌入-3大,文本嵌入-ada-002)
    • 句子转换器(全MiniLM-L6-v2、全mpnet-base-v2等)
  • 语义搜索:使用向量相似度存储和检索信息
  • 灵活的配置:所有设置的环境变量
  • MCP工具:存储、查找、删除和列出操作
  • 元数据支持:将自定义元数据附加到存储的内容

安装

通过uvx(建议用于MCP)

默认情况下,服务器被设计为轻量级。使用OpenAI嵌入时:

# For OpenAI embeddings (lightweight, no ML dependencies)
uvx qdrant-mcp

对于使用句子转换器的本地嵌入:

# For local embeddings (includes torch and other ML libraries)
uvx --with sentence-transformers qdrant-mcp

通过pip(开发)

# Clone the repository
git clone https://github.com/andrewlwn77/qdrant-mcp.git
cd qdrant-mcp

# Basic install (OpenAI embeddings only)
pip install -e .

# With local embeddings support
pip install -e . sentence-transformers

配置

可以使用环境变量配置服务器:

所需的环境变量

  • EMBEDDING_PROVIDER:从中选择 openai 或 sentence-transformers
  • EMBEDDING_MODEL:所选提供程序的型号名称
  • OPENAI_API_KEY:使用OpenAI嵌入时需要

可选环境变量

  • QDRANT_URL:Qdrant服务器URL(默认值: http://localhost:6333)
  • QDRANT_API_KEY:Qdrant API密钥(可选)
  • COLLECTION_NAME:Qdrant集合名称(默认值: mcp_memory)
  • DEVICE:句子转换器设备(默认:自动检测)
  • DEFAULT_LIMIT:默认搜索结果限制(默认值:10)
  • SCORE_THRESHOLD:最小相似性得分(默认值:0.0)

配置示例

# OpenAI embeddings
export EMBEDDING_PROVIDER=openai
export EMBEDDING_MODEL=text-embedding-3-small
export OPENAI_API_KEY=your-api-key

# Sentence Transformers (local)
export EMBEDDING_PROVIDER=sentence-transformers
export EMBEDDING_MODEL=all-MiniLM-L6-v2

支持的嵌入模型

OpenAI模型

  • text-embedding-3-small (1536个维度)-默认值
  • text-embedding-3-large (3072个尺寸)
  • text-embedding-ada-002 (1536个维度)-传统

句子转换模型

  • all-MiniLM-L6-v2 (384个维度)-快速高效
  • all-mpnet-base-v2 (768维)-更高质量
  • 《拥抱的脸》中的任何其他句子变形金刚模型

用法

启动服务器

# Development mode
python -m qdrant_mcp.server

# With MCP CLI
mcp dev src/qdrant_mcp/server.py

MCP工具

qdrant商店

使用语义嵌入存储内容:

{
  "content": "The capital of France is Paris",
  "metadata": "{\"category\": \"geography\", \"type\": \"fact\"}",
  "id": "optional-custom-id"
}

qdrant查找

搜索相关信息:

{
  "query": "What is the capital of France?",
  "limit": 5,
  "filter": "{\"category\": \"geography\"}",
  "score_threshold": 0.7
}

qdrant删除

删除存储的项目:

{
  "ids": "id1,id2,id3"
}

qdrant列表集合

在Qdrant中列出所有收藏:

{}

qdrant收集信息

获取有关当前收藏的信息:

{}

与Claude Desktop集成

添加到您的Claude Desktop配置中:

用于OpenAI嵌入(轻量级)

{
  "mcpServers": {
    "qdrant-memory": {
      "command": "uvx",
      "args": ["qdrant-mcp"],
      "env": {
        "EMBEDDING_PROVIDER": "openai",
        "EMBEDDING_MODEL": "text-embedding-3-small",
        "OPENAI_API_KEY": "your-api-key",
        "QDRANT_URL": "https://your-instance.qdrant.io",
        "QDRANT_API_KEY": "your-qdrant-api-key"
      }
    }
  }
}

用于本地嵌入(句子转换)

{
  "mcpServers": {
    "qdrant-memory": {
      "command": "uvx",
      "args": ["--with", "sentence-transformers", "qdrant-mcp"],
      "env": {
        "EMBEDDING_PROVIDER": "sentence-transformers",
        "EMBEDDING_MODEL": "all-MiniLM-L6-v2",
        "QDRANT_URL": "https://your-instance.qdrant.io",
        "QDRANT_API_KEY": "your-qdrant-api-key"
      }
    }
  }
}

发展

运行测试

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Type checking
mypy src/

# Linting
ruff check src/

项目结构

qdrant-mcp/
├── src/
│   └── qdrant_mcp/
│       ├── __init__.py
│       ├── server.py           # MCP server implementation
│       ├── settings.py         # Configuration management
│       ├── qdrant_client.py    # Qdrant operations
│       └── embeddings/
│           ├── base.py         # Abstract base class
│           ├── factory.py      # Provider factory
│           ├── openai.py       # OpenAI implementation
│           └── sentence_transformers.py  # ST implementation
└── tests/
    └── test_server.py

Docker支持

FROM python:3.10-slim

WORKDIR /app
COPY . .
RUN pip install -e .

CMD ["python", "-m", "qdrant_mcp.server"]

许可证

Apache许可证2.0

贡献

欢迎投稿!请随时提交拉取请求。