workspace-qdrant-mcp
使用说明
-
项目简介
- 该仓库实现了一个基于 MCP 的服务器端,提供向大模型客户端提供可用的“资源读取与管理”、“工具调用”以及“提示/模板渲染”能力的后端服务。核心能力包括:
- 4 种 MCP 工具:search、retrieve、memory、store,供 LLM 调用以完成检索、文档检索、记忆规则管理和文档存储等功能
- 会话管理与心跳机制,确保与守护进程(memexd)及向量数据库(Qdrant)的协同工作
- 降级处理:在守护进程不可用时,支持通过本地 SQLite 队列进行写入,确保系统的鲁棒性
- MCP 服务端通过 JSON-RPC 接收客户端请求,并返回标准化的 JSON RPC 响应
- 该仓库实现了一个基于 MCP 的服务器端,提供向大模型客户端提供可用的“资源读取与管理”、“工具调用”以及“提示/模板渲染”能力的后端服务。核心能力包括:
-
主要功能点
- 提供并注册 4 个 MCP 工具(search、retrieve、memory、store)的描述与调用入口
- 支持与 Rust 守护进程 memexd 的 gRPC 界面交互(注册项目、心跳、降级等)
- 将读取请求直接走 Qdrant,写入请求走 SQLite 队列(在守护不可用时回落)
- 提供健康监控(HealthMonitor)及在检索结果中注入健康元数据的能力
- 支持两种传输场景的测试/运行模式(stdio/测试模式下不强依赖网络传输)
- 服务器端 API 设计遵循 MCP 的 ListToolsRequestSchema 与 CallToolRequestSchema
-
安装步骤
- 需求前提
- Node.js/TypeScript 的运行环境用于 MCP 服务器端实现
- Qdrant 实例运行在 http://localhost:6333(默认)
- Rust 守护进程 memexd 可选以提升写入性能
- 构建与运行
- 克隆仓库后进入 src/typescript/mcp-server 目录,安装依赖并编译运行服务
- 运行后服务将暴露 MCP 接口,供客户端通过 JSON-RPC 调用工具
- 服务器配置(Claude Desktop 参考示例,客户端配置不包含在 MCP 服务器实现中)
- 配置示例(仅用于 Claude Desktop 与 MCP 服务器对接的客户端配置,非服务器端代码)
- { "mcpServers": { "workspace-qdrant-mcp": { "command": "workspace-qdrant-mcp", "env": { "QDRANT_URL": "http://localhost:6333" } } } }
- 注释:command 字段指向启动 MCP 服务器的可执行名称;QDRANT_URL 指向向量数据库地址,与服务器端实际暴露的地址保持一致。此配置用于 Claude Desktop 等 MCP 客户端,将通过 MCP 协议向服务器发起请求。
- 需求前提
-
基本使用方法
- 启动 MCP 服务器;通过 Claude 等客户端与 MCP 服务进行工具调用
- 通过客户端发起 ListTools 请求获取支持的工具、通过 CallTool 请求执行具体工具
- 如遇守护进程不可用,服务器端将降级处理,确保只要 SQLite 队列可用即可继续排队执行
- 客户端在需要时可以通过健康信息来判断是否需要回退到降级策略
-
额外说明
- 该实现包含完整的服务器端工具注册、请求处理、错误处理与降级逻辑,具备从初始化到清理的完整生命周期
- 对外暴露的 API 符合 MCP 的 JSON-RPC 调用格式,客户端无需关心底层实现细节