RAG工具服务器

一个提供工具化接口的LightRAG MCP服务器,支持通过配置文件灵活启用功能,适用于开发者与模型程序化交互。

  • by Calandrel
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 fvanevski/lightrag_mcp

使用说明

LightRAG MCP服务器

此存储库包含一个模型上下文协议(MCP)服务器,该服务器为本地运行的LightRAG HTTP API提供基于工具的接口。它专为与MCP兼容的客户端一起使用而设计,例如Visual Studio Code等IDE中的客户端,允许开发人员和模型以编程方式与LightRAG的功能进行交互。

默认情况下,服务器会公开一组精心策划的工具,并可以通过配置文件根据需要启用更多工具。

特性

  • 可配置工具曝光: 公开了一组用于常见用例的默认工具,并能够通过简单的配置文件启用LightRAG API中的任何其他工具。
  • 灵活配置: 通过配置服务器 config.yaml 文件、命令行标志、环境变量或 .env 文件。
  • 身份验证支持: 两者都适用 X-API-Key 标头和基于OAuth2密码(承载令牌)的身份验证。
  • 用户友好工具: 提供清晰、仅限英语的工具描述,并附有示例输入。
  • 对话输出: 关键工具,如 query 返回会话响应,使客户端易于使用结果。
  • 模块化和异步: 代码库是模块化的,使用异步HTTP客户端以获得更好的性能和可维护性。

先决条件

在运行服务器之前,你需要有Python 3.12+和 uv 已安装,以及本地部署的LightRAG实例(请参阅 https://github.com/HKUDS/LightRAG).你还需要Node.js和 npx 运行MCP检查器工具进行测试。

安装

  1. 克隆存储库。

    # Use gh cli to clone repository
    gh repo clone fvanevski/lightrag_mcp
    
    # Alternatively, you can use git to clone repository
    # git clone https://github.com/fvanevski/lightrag_mcp.git
    
    # Enter the repository directory
    cd lightrag_mcp
    
  2. 创建虚拟环境并安装所需的依赖项:

    # Create a virtual environment
    uv venv
    
    # Activate the virtual environment
    source .venv/bin/activate
    
    # Install the dependencies
    uv sync
    

运行和测试服务器

MCP服务器是一个通过标准I/O进行通信的命令行应用程序。要使用它,客户端(如IDE、编码代理或检查器工具)必须启动服务器进程。

运行诊断程序

您可以尝试直接从终端运行脚本,看看它是否能正确启动。这是一种快速验证Python环境和脚本基本语法的方法。

python lightrag_mcp.py

但是,服务器将简单地启动并等待输入,因此您将无法直接从终端与它交互。

MCP检验员测试

交互式测试服务器的推荐方法是 MCP检查员。它作为命令行工具运行,并提供一个交互式shell,用于向服务器发送请求。

  1. 启动检查器:

    您可以使用以下命令运行检查器,而无需永久安装 npx。检查器将为您启动MCP服务器脚本。从项目目录中,运行:

    # Run the inspector with `uv run --with <dependencies> -- python3 <script>`
    npx @modelcontextprotocol/inspector uv run --with httpx,python-dotenv,pydantic,mcp,pyyaml -- python3 lightrag_mcp.py
    

    即使您的虚拟环境处于活动状态 python 检查器执行的命令将不会正确指向具有必要依赖关系的解释器,因此我们使用uv代替 --with 旗帜。

  2. 与服务器交互: 一旦检查器启动,您可以单击“连接”按钮与服务器建立会话。然后,您可以使用以下命令 list_tools 和 call_tool 与它互动。

    示例会话:

    # List all available tools
    > list_tools
    
    # Call the 'health' tool to check the connection to the LightRAG API
    > call_tool health
    
    # Call the 'query' tool with arguments
    > call_tool query '''{"query": "What is LightRAG?", "mode": "hybrid"}'''
    

    这提供了一种可靠的方法来测试所有工具并验证服务器是否按预期工作。

配置

服务器可以使用配置 config.yaml 文件、命令行标志、环境变量或 .env 文件。优先顺序为: 命令行标志>环境变量> config.yaml > .env 文件>默认值.

config.yaml

管理工具最简单的方法是 config.yaml 文件。它允许您通过在列表中添加或删除工具来启用或禁用它们。每个工具都附有对其功能的描述。

默认配置:

默认情况下,启用以下工具:

- `query`
- `documents_upload_file`
- `documents_upload_files`
- `documents_insert_text`
- `documents_scan`
- `graphs_get`
- `graph_labels`
- `graph_entity_exists`
- `graph_update_entity`
- `graph_update_relation`
- `documents_pipeline_status`
- `documents_delete_entity`
- `documents_delete_relation`

要启用其他工具,只需在 enabled_tools 列表在您的 config.yaml 文件。

环境变量

  • LIGHTRAG_BASE_URL:LightRAG API的基本URL(例如。, http://localhost:9621).

  • LIGHTRAG_API_KEY:LightRAG实例的API密钥(如果需要)。

  • LIGHTRAG_TOOLS:以逗号分隔的工具列表(例如。, query,documents_scan).

    示例 .env 文件:

    LIGHTRAG_BASE_URL=http://localhost:9621
    LIGHTRAG_API_KEY=your-secret-api-key
    LIGHTRAG_TOOLS=query,documents_scan,graphs_get
    

使用MCP客户端(VS代码示例)

您可以从任何标准MCP客户端连接到此服务器。以下是在支持MCP的VS Code环境中如何做到这一点:

  1. 配置您的MCP客户端: 在IDE的MCP客户端设置中(例如 mcp.json 对于VS Code),配置一个指向该脚本的新MCP服务器。

    示例 mcp.json VS代码条目:

    {
      "servers": {
        "lightrag": {
          "command": "uv",
          "args": [
            "run",
            "python",
            "lightrag_mcp.py"
          ],
          "cwd": "/path/to/your/project"
        }
      }
    }
    

    注:更换 /path/to/your/project 带有项目目录的实际路径。

  2. 使用工具: 连接后,您可以在聊天或代理交互中使用公开的工具,进行自然语言查询或结构化调用。例如,要执行RAG查询,您可以发送以下结构化工具调用:

    {
      "tool": "query",
      "arguments": {
        "query": "What did we ingest?",
        "mode": "hybrid",
        "top_k": 5
      }
    }
    

    服务器将对您的LightRAG实例执行查询,并返回对话响应。