Zed的Qdrant MCP
Zed扩展,使用模型上下文协议(MCP)直接在Zed中访问Qdrant矢量数据库。适用于任何与OpenAI兼容的嵌入服务器(llama.cpp、Ollama、vLLM、LM Studio等)。
目录
先决条件
Qdrant
您需要一个正在运行的Qdrant实例。选项:
Qdrant Cloud(建议用于生产)
- 注册地址:https://cloud.qdrant.io
- 创建集群
- 将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 logsmacOS上的本地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
./qdrantQdrant将在默认端口上启动(6333 HTTP, 6334 gRPC)。
嵌入式服务器
你需要任何公开OpenAI兼容的服务器 /v1/embeddings 终点。看 兼容的嵌入式服务器 选择。
快速开始
{
"context_servers": {
"mcp-server-qdrant": {
"settings": {
"embedding_server_url": "http://localhost:8080",
"embedding_model": "snowflake-arctic-embed2"
}
}
}
}- 使用
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 用于构建指令、测试设置和依赖关系管理。
