DlightRAG MCP Server

使用说明(以帮助开发者快速理解与上手为目标,包含必要的安装与配置步骤):

  • 项目简介

    • DlightRAG 的 MCP 服务器实现,提供对 MCP 客户端的标准化接口,允许远程读取资源、执行工具、获取并渲染提示模板等功能,适用于将 LLM 客户端接入后端上下文服务的场景。
    • 实现核心:通过 MCP 的 JSON-RPC 形式接收请求,返回 JSON-RPC 响应或通知;内部通过 RAGServiceManager 与 MCP 客户端协作,支持多工作区隔离与跨工作区聚合。
  • 主要功能点

    • MCP 核心能力暴露:retrieve、ingest、answer、list_workspaces、list_files、delete_files 等工具,遵循 MCP 请求/响应的格式与约定。
    • 服务器实现与工作流:基于 Python 实现的 MCP Server,具备 stdio 和 streamable-http 两种传输模式,方便在不同环境下接入。
    • 与现有后端的集成:与 RAG 服务管理器(RAGServiceManager)和统一/传统的 ingestion、retrieval 引擎协同工作,支持多工作区隔离与跨工作区联邦检索。
    • 端到端的安全与扩展性:提供 Bearer Token 认证支撑(通过 MCP 服务端配置实现),并通过可扩展的工具、资源、Prompts 管线支持自定义扩展。
  • 安装步骤

    • 安装与依赖
      • 通过常规 Python 包管理工具安装所需依赖(仓库内已有代码,按项目说明进行安装即可)。
    • 启动 MCP 服务器
      • 运行方式基于仓库提供的入口脚本,支持 stdio 与 streamable-http 两种传输模式。
      • 启动示例(参考仓库中的 README 配置与入口设计,实际执行请按环境安裝和脚本位置执行):
        • 通过环境变量/.env 文件配置运行所需参数(包括服务器名称、端口、以及鉴权等)。
        • 使用 dlightrag-mcp 作为入口启动服务,或按项目文档的方式使用 uvx/uv 工具运行。
    • 配置示例(MCP 客户端无需实现,仅用于 MCP 服务端对接方理解配置)
      • MCP 客户端接入需要的官方配置示例(JSON,描述 server name、command、args 等信息)如下: { "mcpServers": { "dlightrag": { "command": "uvx", "args": ["dlightrag-mcp", "--env-file", "/absolute/path/to/.env"] } } }
  • 服务器配置

    • MCP 服务器(本仓库实现)提供了统一的初始化与对外暴露的工具集合。MCP 客户端在配置中应至少包含:
      • server 名称:示例中为 dlightrag
      • 启动命令及参数:dlightrag-mcp 与必要的环境变量配置文件
    • 说明:MCP 客户端通常仅需要对接服务器地址与暴露的工具,具体参数与工作区等信息由 MCP 客户端通过 JSON-RPC 请求传递给服务器。
  • 基本使用方法

    • 启动后,客户端可以通过 MCP 协议向服务器发起 retrieve/ingest/answer 等请求,服务器根据请求路由到相应的 RAG 服务与引擎,返回标准的 JSON-RPC 响应或通知。
    • 如需对接跨工作区的查询,可以通过配置工作区列表并使用 federation 相关能力实现跨工作区检索与聚合。
  • 备注

    • MCP 服务器是为 MCP 客户端提供的后端服务,需确保在生产环境中正确配置认证、工作区、存储后端等,以避免跨工作区的数据混用与权限问题。

服务器信息