QdrantRAG-DyTopo MCP 服务器

  • 项目简介
    • 该仓库实现了一个 MCP 服务器,核心在于通过 JSON-RPC 与客户端对接,提供检索、工具调用、以及多代理协作编排等能力。服务器端将文档资源、嵌入向量、以及 DyTopo 路由逻辑统一暴露为 MCP 工具,以便 LLM 客户端调用获取上下文信息和执行外部功能。代码中明确包含多个 MCP 工具(如 rag_search、rag_status、rag_reindex、rag_sources、rag_file_info,以及 swarm_start、swarm_status、swarm_result),并通过 stdio 传输与客户端通信。
  • 主要功能点
    • MCP 工具集成
      • rag_search: 在多源文档中执行混合向量检索,返回匹配结果
      • rag_status: 诊断当前向量集合状态、文档源信息、以及索引健康情况
      • rag_reindex: 触发重新索引/重建向量索引
      • rag_sources: 列出已配置的文档源及文件数量
      • rag_file_info: 显示指定文档的分块/哈希等信息
    • DyTopo 多代理路由
      • swarm_start: 启动一个跨域名/域的多代理推理任务
      • swarm_status: 查询进行中的任务状态
      • swarm_result: 获取完成后的整合结果与拓扑日志
    • 异步/并发设计
      • 使用异步 IO 与线程池结合,适配 CPU 上的嵌入模型、路由模型和向量检索
    • 本地化部署
      • 依赖本地 Qdrant、本地 LM Studio/AnythingLLM 服务,以及本地的嵌入模型实现
  • 安装步骤
    • 安装 Python3.8 及以上
    • 安装依赖(示例,实际请参照仓库的 docs/requirements 列表并在环境中执行)
    • 启动所需外部服务:
      • Qdrant(6333/6334 端口,对应 r ag_pipelines 舆情)
      • LM Studio 与 AnythingLLM 本地实例
    • 将仓库中的 src/qdrant_mcp_server.py 作为 MCP 服务器启动入口运行
  • 服务器配置(MCP 客户端所需的启动配置)
    • MCP 客户端需要知道如何启动服务器以及连接信息。以下 JSON 配置用于描述服务器启动命令与参数,供 MCP 客户端阅读与连接之用(实际连接由客户端与 MCP 服务器的 JSON-RPC 进行,客户端不需要该代码块)。 { "server_name": "qdrant-rag-mcp-server", "command": "python3", "args": ["src/qdrant_mcp_server.py"], "working_directory": "<仓库根目录>", "notes": "启动后服务器通过标准输入输出(stdio)与 MCP 客户端通信,使用 MCP 协议的 JSON-RPC 请求/响应。确保本地的 Qdrant、LM Studio 与 AnythingLLM 服务已启动并可访问。" }
  • 基本使用方法
    • 启动
      • 在仓库根目录执行:python3 src/qdrant_mcp_server.py
      • 服务器启动后监听并通过 stdio 与客户端进行 MCP 通信
    • 调用 MCP 工具
      • 客户端通过 MCP JSON-RPC 发起请求,指定要调用的工具名、参数以及上下文
      • 服务器按请求处理并返回 JSON-RPC 响应
    • 典型工作流
      • 使用 rag_search 获取文档片段
      • 使用 rag_status/rag_sources 了解当前索引状态与文档源信息
      • 启动 swarm_start 进行 DyTopo 基于 descriptor 的多代理协作
      • 通过 swarm_status 与 swarm_result 获取任务状态与最终结果
    • 运行时注意
      • 本实现高度依赖本地环境的依赖(Qdrant、FlagEmbedding、LM Studio、AnythingLLM、OpenAI 接口等),请确保各组件已就绪并正确配置
      • 由于涉及本地 GPU/CPU 资源,部署前建议评估硬件资源与并发配置

服务器信息