workspace-qdrant-mcp

使用说明

  • 项目简介

    • 该仓库实现了一个基于 MCP 的服务器端,提供向大模型客户端提供可用的“资源读取与管理”、“工具调用”以及“提示/模板渲染”能力的后端服务。核心能力包括:
      • 4 种 MCP 工具:search、retrieve、memory、store,供 LLM 调用以完成检索、文档检索、记忆规则管理和文档存储等功能
      • 会话管理与心跳机制,确保与守护进程(memexd)及向量数据库(Qdrant)的协同工作
      • 降级处理:在守护进程不可用时,支持通过本地 SQLite 队列进行写入,确保系统的鲁棒性
      • MCP 服务端通过 JSON-RPC 接收客户端请求,并返回标准化的 JSON RPC 响应
  • 主要功能点

    • 提供并注册 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 调用格式,客户端无需关心底层实现细节

服务器信息