qdrant-mcp-server
mhalder/qdrant-mcp-server加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:凌晨两点,你正在修复一个三周前写的 Bug,隐约记得那个文件在某个目录下,但就是想不起具体路径。更糟糕的是,连关键词都记不清了——只知道当时为了解决某个问题写了一堆正则表达式,bug 跟日期格式有关。
这种情况,几乎每个开发者都经历过。传统搜索工具依赖文件名或精确关键词,在代码库越来越大、功能越来越复杂的今天,找东西变得越来越困难。
Qdrant MCP Server 就是来解决这个问题的:它让你用自然语言描述你要找的东西,然后直接给你答案。
这个项目由开发者 mhalder 创建,是一个基于 Model Context Protocol(MCP)的语义搜索服务器。它将 Qdrant 向量数据库 与 多种 Embedding 提供商(OpenAI、Cohere、Voyage AI、Ollama)结合,为 AI Agent 提供本地化的语义搜索能力。
从 GitHub 话题标签来看,这个项目覆盖了 claude、embeddings、mcp、model-context-protocol、openai、qdrant、semantic-search、typescript、vector-search 等多个技术方向,属于 AI Agent 基础设施层的工具。
截至目前,该项目已获得 37 颗 GitHub Stars,26 个 Forks,拥有 MIT 开源许可证,代码库保持活跃更新。
这是最基础的功能:将文档上传到 Qdrant 向量数据库,用自然语言描述搜索需求,系统会返回语义最相关的文档片段。
支持的工具包括:
add_documents:批量添加文档,自动完成分块和向量化semantic_search:支持元数据过滤的语义搜索hybrid_search:结合语义相似度与 BM25 关键词权重的混合搜索,使用 Reciprocal Rank Fusion(RRF)算法融合结果delete_documents:按 ID 删除文档这是项目最有特色的部分。普通的代码搜索只能匹配关键词,而 Qdrant MCP Server 使用 AST(抽象语法树)感知分块技术,能够理解代码结构,将函数、类、方法作为语义单元进行索引。
比如你可以搜索"找出所有处理用户认证的函数",系统会返回相关代码段,而不仅仅是包含"auth"关键词的文件。
代码相关工具:
index_codebase:对代码库进行向量化索引search_code:用自然语言搜索代码reindex_changes:增量索引,只重编已变更的文件get_index_status / clear_index:索引状态和清理这个功能非常实用。传统 git log --grep 只能精确匹配 commit message,而语义搜索可以理解"找出所有跟性能优化相关的提交",即使 commit message 只写了"optimize query performance"。
工具包括:
index_git_history:索引仓库的完整 commit 历史search_git_history:语义搜索 Git 历史index_new_commits:增量索引新提交federated_search 支持跨多个仓库搜索,使用 RRF 算法对多仓库结果进行排序融合。对于管理多个相关项目的大型团队,这个功能可以显著提升问题排查和代码复用效率。
contextual_search 则将代码搜索和 Git 历史搜索结合,还能建立"文件-提交"关联,帮助理解某个代码段为什么被添加、谁写的、当时解决了什么问题。
从源码结构来看,项目采用清晰的模块化分层:
src/
├── code/ # 代码向量化:分块、索引、元数据
├── embeddings/ # Embedding 提供商工厂(OpenAI/Cohere/Voyage/Ollama)
├── git/ # Git 历史提取和索引
├── prompts/ # 可配置提示词模板
├── qdrant/ # Qdrant 客户端封装
├── resources/ # MCP Resources
├── tools/ # 所有 MCP Tools 实现
└── index.ts # 主入口
Embedding 层采用工厂模式,支持四种 Provider:
ollama(默认,本地运行,保护隐私,免费)openai(text-embedding-3-small 等模型)cohere(embed-english-v3.0 等)voyage(voyage-code-2 等)传输层支持两种模式:
stdio(默认):通过标准输入输出通信,适合 Claude Code、VSCode 等桌面 AI 工具HTTP:提供 HTTP 接口,适合服务端集成并发控制使用 Bottleneck 库进行速率限制,避免对 Qdrant 或 Embedding API 的突发请求。
代码测试覆盖良好,使用 Vitest 框架,每个 Embedding Provider 都有对应的单元测试文件。
项目提供了 compose.yaml,一键启动 Qdrant 和 Ollama 两个依赖服务:
# 启动依赖服务
docker compose -f compose.yaml up -d
# 安装 MCP Server
npm install
npm run build
# 配置环境变量(使用默认 Ollama,本地免费)
export QDRANT_URL=http://localhost:6333
export EMBEDDING_PROVIDER=ollama
export OLLAMA_BASE_URL=http://localhost:11434
# 运行
node build/index.js
部署难点主要在于:
ollama pull nomic-embed-text)部署难度评级为中等,适合有一定 Node.js 和 Docker 经验的开发者。
| 场景 | 使用价值 |
|---|---|
| 大型代码库导航 | 告别"我记得这里有个类似的功能" |
| Bug 溯源 | "这个 bug 是哪个 commit 引入的?" |
| 代码审查 | "找找项目中类似的安全漏洞修复" |
| 文档问答 | 构建内部知识库 RAG 系统 |
| 多仓库搜索 | 在 N 个项目中找同一类问题的解决方案 |
Qdrant MCP Server 体现了当前 AI Agent 发展的一个重要趋势:工具化向量搜索基础设施。它不是又一个 RAG 框架,而是将语义搜索能力标准化地接入 AI Agent 工作流,让 AI 能够像人一样"理解"你要找什么,而不仅仅是匹配关键词。
随着 Claude Code、VSCode AI 等工具的普及,这类 MCP Server 将成为 AI Agent 能力扩展的重要拼图。