向量数据库扩展

Zed的Qdrant向量数据库扩展,通过Model Context Protocol (MCP)直接访问,支持任何兼容OpenAI的嵌入服务器。

  • by hansdoebel
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hansdoebel/zed-mcp-qdrant

使用说明

Zed的Qdrant MCP

Zed扩展,使用模型上下文协议(MCP)直接在Zed中访问Qdrant矢量数据库。适用于任何与OpenAI兼容的嵌入服务器(llama.cpp、Ollama、vLLM、LM Studio等)。

目录

先决条件

Qdrant

您需要一个正在运行的Qdrant实例。选项:

Qdrant Cloud(建议用于生产)

  1. 注册地址:https://cloud.qdrant.io
  2. 创建集群
  3. 将URL和API密钥复制到设置(自动添加默认端口: :6334 对于gRPC, :6333 用于REST)

使用Docker的本地Qdrant

# Quick start (data lost when container stops)
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

# With persistent storage (recommended)
docker run -d --name qdrant \
  -p 6333:6333 -p 6334:6334 \
  -v qdrant_storage:/qdrant/storage \
  --restart unless-stopped \
  qdrant/qdrant

管理容器:

docker stop qdrant    # stop
docker start qdrant   # start again (data persists)
docker logs qdrant    # view logs

macOS上的本地Qdrant二进制文件(无Docker)

从下载最新二进制文件 Qdrant发布:

  • 苹果硅(M1/M2/M3/M4): qdrant-aarch64-apple-darwin.tar.gz
  • 英特尔: qdrant-x86_64-apple-darwin.tar.gz
# Extract and run
tar -xzf qdrant-*.tar.gz
./qdrant

Qdrant将在默认端口上启动(6333 HTTP, 6334 gRPC)。

嵌入式服务器

你需要任何公开OpenAI兼容的服务器 /v1/embeddings 终点。看 兼容的嵌入式服务器 选择。

快速开始

  1. 启动Qdrant(云端或本地)
  2. 启动嵌入服务器(请参见 兼容的嵌入式服务器)
  3. 在Zed中安装此扩展(请参阅 安装扩展)
  4. 将设置添加到 ~/.config/zed/settings.json:
    {
      "context_servers": {
        "mcp-server-qdrant": {
          "settings": {
            "embedding_server_url": "http://localhost:8080",
            "embedding_model": "snowflake-arctic-embed2"
          }
        }
      }
    }
    
  5. 使用 qdrant-store 保存文本和 qdrant-find 从语义上搜索

配置

在中配置 ~/.config/zed/settings.json:

{
  "context_servers": {
    "mcp-server-qdrant": {
      "settings": {
        "qdrant_url": "https://xxx.cloud.qdrant.io",
        "qdrant_api_key": "your-api-key",
        "collection_name": "zed_collection",
        "embedding_server_url": "http://localhost:8080",
        "embedding_api_key": "",
        "embedding_model": "snowflake-arctic-embed2",
        "transport_protocol": "grpc",
        "enabled_tool_groups": "core"
      }
    }
  }
}
设置 默认值 说明
qdrant_url -- Qdrant服务器URL
qdrant_api_key - Qdrant Cloud的API密钥
collection_name -- 矢量集合名称(自动创建)
embedding_server_url -- 任何兼容OpenAI的嵌入服务器的URL
embedding_api_key - 嵌入服务器的可选API密钥
embedding_model -- 传递给嵌入服务器的模型名称
transport_protocol grpc 传输协议: "grpc" (端口6334)或 "rest" (端口6333)
enabled_tool_groups core 以逗号分隔的要启用的工具组列表(请参见 工具组)

传输协议

该扩展支持gRPC和REST与Qdrant通信:

  • gRPC (默认)--二进制协议,对大数据有更好的性能。使用端口 6334.
  • 表征状态转移 --基于JSON,更易于调试。使用端口 6333.

使用Docker在本地运行Qdrant时,暴露两个端口以允许切换:

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

集 "transport_protocol": "rest" 在您的设置中使用REST。正确的默认端口会在以下情况下自动应用 qdrant_url 没有指定一个。

兼容的嵌入式服务器

任何公开OpenAI兼容的服务器 /v1/embeddings 端点将工作。配置 embedding_server_url 和 embedding_model 因此。

服务器 默认URL 示例 embedding_model 启动命令
llama.cpp http://localhost:8080 snowflake-arctic-embed2 llama-server -m model.gguf --embeddings --port 8080
奥拉玛 http://localhost:11434 nomic-embed-text ollama serve (那么 ollama pull nomic-embed-text)
虚拟大语言模型 http://localhost:8000 BAAI/bge-m3 vllm serve BAAI/bge-m3
LM 工作室 http://localhost:1234 nomic-embed-text 从LM Studio UI启动服务器
LocalAI http://localhost:8080 bert-cpp-minilm-v6 local-ai run bert-cpp-minilm-v6

推荐的嵌入模型

型号 尺寸 最大令牌 最适合
雪花-实际嵌入2 768 8192 通用、多语言检索
nomic嵌入文本v2 768 8192 多语言,教育部架构
nomic嵌入文本v1.5 768 8192 重量轻,GGUF就绪
BAAI/bge-m3 1024 8192 多语言、密集+稀疏检索
mxbai嵌入大 1024 512 高精度,以英语为中心
jina-embeddings-v4 2048 8192 多模式(文本+图像)

工具组

工具被组织成组,以减少上下文窗口的使用。默认情况下,只有 核心 组已启用(约450个令牌)。启用所有27个工具会消耗约5500个上下文令牌。

组 工具 描述
core 3 语义存储、查找和列表集合(默认)
collections 5 创建、删除、添加信息、存在、更新收藏
points 5 查找、获取、删除、计数、滚动点
search 6 矢量搜索、推荐、查询、批处理、分组、发现
payload 4 设置/删除有效载荷,创建/删除索引
admin 4 别名和快照

使用逗号分隔的列表在设置中启用组:

{
  "context_servers": {
    "mcp-server-qdrant": {
      "settings": {
        "enabled_tool_groups": "core,collections,search"
      }
    }
  }
}

使用 "all" 为了使每个组都能:

"enabled_tool_groups": "all"

可用工具

语义操作

  • qdrant-store -使用自动生成的嵌入来存储文本
  • qdrant-find -搜索语义相似的文本
Collection Management (6 tools)
  • qdrant-list-collections -列出所有收藏
  • qdrant-create-collection -创建新的矢量集合
  • qdrant-delete-collection -删除收藏
  • qdrant-get-collection-info -获取收藏详细信息
  • qdrant-update-collection -更新收集参数(HNSW、优化器等)
  • qdrant-collection-exists -检查是否存在集合
Point Operations (5 tools)
  • qdrant-upsert-points -使用矢量和有效载荷插入或更新点
  • qdrant-get-points -按ID检索积分
  • qdrant-delete-points -按ID或筛选器删除点
  • qdrant-count-points -统计集合中的点数
  • qdrant-scroll-points -通过点进行分页
Search & Query (6 tools)
  • qdrant-search -原始向量相似度搜索
  • qdrant-recommend -通过示例ID查找相似点(不需要向量)
  • qdrant-query -通用查询端点(融合、重新排序、嵌套预取)
  • qdrant-search-batch -在一个请求中执行多个搜索
  • qdrant-search-groups -使用按有效载荷字段分组的结果进行搜索
  • qdrant-discover -基于上下文的正/负对探索
Payload & Index Management (4 tools)
  • qdrant-set-payload -设置或更新现有点上的有效载荷字段
  • qdrant-delete-payload -从点中删除特定的有效载荷密钥
  • qdrant-create-index -创建有效载荷字段索引,以实现更快的筛选搜索
  • qdrant-delete-index -删除有效载荷字段索引
Aliases (2 tools)
  • qdrant-list-aliases -列出特定集合的所有别名或别名
  • qdrant-update-aliases -创建、重命名或删除集合别名
Snapshots (2 tools)
  • qdrant-list-snapshots -列出集合的快照
  • qdrant-create-snapshot -创建快照进行备份

安装扩展

您可以通过按cmd-shift-x启动Zed扩展库,打开命令面板并选择Zed:extensions,或从菜单栏中选择“Zed>extensions”来搜索扩展。

您可以在此处查看当前已安装的扩展,或搜索并安装新的扩展。

安装位置

  • 在macOS上,扩展安装在~/Library/ApplicationSupport/Zd/extensions中。
  • 在Linux上,它们安装在$XDG_DATA_HOME/zed/dextensions或~/.local/share/zed/deextensions中。
  • 在Windows上,目录是%LOCALAPPDATA%\Zed\extensions。

此目录包含两个子目录:

  • 已安装,其中包含每个扩展的源代码。
  • 工作,其中包含由扩展本身创建的文件,如下载的语言服务器。

发展

看 docs/DEVELOPMENT.md 用于构建指令、测试设置和依赖关系管理。

资源

仓库

泽德

Qdrant

嵌入服务器