workspace-qdrant-mcp
使用说明
- 项目简介
- workspace-qdrant-mcp 是一个完整的 MCP 服务器实现,核心职责包括:以标准化方式向 LLM 客户端提供上下文信息和功能,托管和管理资源(Resources)、注册和执行工具(Tools)、以及定义和渲染 Prompt 模板(Prompts),通过 JSON-RPC 与 Claude 等客户端通信。服务器端负责会话管理、能力声明,以及跨传输协议的传输能力,旨在为 LLM 应用提供安全、可扩展的上下文服务框架。
- 主要功能点
- MCP 核心功能:资源管理、工具注册与执行、提示模板渲染、会话管理、能力声明。
- JSON-RPC 通信:统一的请求/响应格式,客户端通过 JSON-RPC 调用工具、读取资源、获取 Prompts 等。
- 传输协议:支持多种传输方式,初始实现包含标准输入输出(Stdio)等传输形态,后续可扩展到 SSE、WebSocket 等。
- 跨语言实现:TypeScript/Node 为 MCP 服务器端,配合 Rust 内核(memexd)实现后台任务、向量数据库 (Qdrant) 的集成,以及本地 SQLite 队列用于回退写入。
- 组件覆盖:包含 资源、工具、提示模板、以及基于测试覆盖的工具实现(如 search、retrieve、store、rules、grep、list 等)。
- 安装步骤
- 克隆仓库并安装依赖(Node/npm、Rust 等环境要求见项目 README)。构建并编译 TypeScript MCP 服务器端代码,生成 dist/index.js。
- 构建输出将包含法线下运行所需的 Javascript/Node 入口,用于启动 MCP 服务器。
- 服务器配置
- MCP 客户端需要的配置(示例为 JSON,描述服务器启动信息及连接方式)。该配置用于 Claude 等客户端的连接准备,具体字段意义如下:
- server_name:服务器标识名,示例为 workspace-qdrant-mcp。
- command:启动 MCP 服务器的命令,在本仓库中通常为 node。
- args:启动命令参数,通常指向 MCP 服务器打包输出的入口文件,如 dist/index.js。
- env(可选):环境变量配置,例如 QDRANT_URL 指向向量数据库入口。
- 示例(请按实际部署路径填写,可直接粘贴到配置文件中使用): { "server_name": "workspace-qdrant-mcp", "command": "node", "args": ["/path/to/workspace-qdrant-mcp/dist/index.js"], "env": { "QDRANT_URL": "http://localhost:6333" } } 说明:这是客户端需要的最小连接信息,MCP 客户端会使用该信息启动和连接 MCP 服务器。服务器端实现本身会暴露 JSON-RPC 接口, Claude 等客户端通过这个接口与服务器交互。
- MCP 客户端需要的配置(示例为 JSON,描述服务器启动信息及连接方式)。该配置用于 Claude 等客户端的连接准备,具体字段意义如下:
- 基本使用方法
- 启动 MCP 服务器:运行配置中指定的命令和参数,服务器启动后会在配置中声明的能力范围内对外提供服务。
- 客户端连接与调用:通过 MCP 客户端(如 Claude)配置的启动命令,启动后即可通过 Claude 的 MCP 入口与服务器进行资源读取、工具执行、Prompts 获取等操作。
- 常用工作流:
- 启动并健康检查服务器,确保麦克风(daemon/向量数据库/后端服务)就绪。
- 在会话中注册并激活当前工作区或项目,服务器将维护会话状态。
- 调用工具执行外部功能(例如代码搜索、文档检索、行为规则等),服务器将提供必要的数据访问能力。
- 使用 Prompt 模板渲染功能,获得可直接给 LLM 的上下文提示。
- 运行与调试要点
- 服务器端实现包含 TypeScript 服务端、Rust 守护进程,以及通过 SQLite 进行队列化写入,确保在 Daemon 未就绪时仍能通过队列回退实现。
- 代码中包含大量单元测试与集成测试,覆盖资源、工具、历史记录、队列、检索、推理等多个方面,适合在本地或 CI 环境进行验证。