检索增强生成服务

LightRAG MCP Server是一个连接LightRAG API与MCP兼容客户端的桥梁,提供文档检索、知识图谱管理和AI工具集成功能。

  • by a-earthperson
  • Python
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 a-earthperson/lightrag-mcp

使用说明

LightRAG MCP服务器

MCP服务器,用于将LightRAG与AI工具集成。为通过MCP协议与LightRAG API交互提供统一的接口。

描述

LightRAG MCP服务器是LightRAG API和兼容MCP的客户端之间的桥梁。它允许在支持MCP协议的各种AI工具中使用LightRAG(检索增强生成)功能。

主要特点

  • 信息检索:对文档执行语义和关键字查询
  • 文档管理:上传、索引和跟踪文档状态
  • 知识图谱操作:管理知识图谱中的实体和关系
  • 监控:检查LightRAG API状态和文档处理

安装

此服务器旨在用作MCP服务器,应使用uv安装在虚拟环境中,而不是作为全系统软件包。

开发安装

# Create a virtual environment
uv venv --python 3.11

# Install the package in development mode
uv pip install -e .

需求

  • Python 3.11+
  • 运行LightRAG API服务器

Docker和Docker Compose

该回购提供 Dockerfile 对于MCP服务器和 docker-compose.yml 它同时运行LightRAG和MCP服务器。

快速入门(Docker Compose)

docker compose up -d --build
docker compose ps

MCP端点: http://localhost:8000/
LightRAG API: http://localhost:9621/

用法

LightRAG MCP服务器支持两种MCP传输模式:

  • stdio(默认):运行MCP客户端配置文件(mcp-config.json)
  • 可流式传输http:作为远程MCP客户端的独立HTTP服务器运行

命令行选项

LightRAG API连接:

  • --host:LightRAG API主机(默认值:localhost)
  • --port:LightRAG API端口(默认值:9621)
  • --api-key:LightRAG API密钥(可选)

MCP传输:

  • --mcp-transport:MCP传输(stdio 或 streamable-http,默认值:stdio)
  • --mcp-http-host:MCP HTTP主机(默认值:127.0.0.1)
  • --mcp-http-port:MCP HTTP端口(默认值:8000)
  • --mcp-http-path:MCP HTTP基/装载路径(默认值:/)
  • --mcp-http-stateless:启用无状态HTTP模式(每个请求一个新会话)
  • --mcp-http-json-response:返回JSON响应,而不是HTTP的SSE

与LightRAG API集成

MCP服务器需要运行LightRAG API服务器。按如下方式启动:

# Create virtual environment
uv venv --python 3.11

# Install dependencies
uv pip install -r LightRAG/lightrag/api/requirements.txt

# Start LightRAG API
uv run LightRAG/lightrag/api/lightrag_server.py --host localhost --port 9621 --working-dir ./rag_storage --input-dir ./input --llm-binding openai --embedding-binding openai --log-level DEBUG

设置为MCP服务器(stdio)

要将LightRAG MCP设置为MCP服务器,请将以下配置添加到MCP客户端配置文件中(例如。, mcp-config.json):

使用uvenv(uvx):

{
  "mcpServers": {
    "lightrag-mcp": {
      "command": "uvx",
      "args": [
        "lightrag_mcp",
        "--host",
        "localhost",
        "--port",
        "9621",
        "--api-key",
        "your_api_key"
      ]
    }
  }
}

发展

{
  "mcpServers": {
    "lightrag-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/lightrag_mcp",
        "run",
        "src/lightrag_mcp/main.py",
        "--host",
        "localhost",
        "--port",
        "9621",
        "--api-key",
        "your_api_key"
      ]
    }
  }
}

替换 /path/to/lightrag_mcp 使用lightrag mcp目录的实际路径。

通过流式HTTP(独立服务器)运行

当您需要远程访问或希望在HTTP基础架构后托管MCP服务器时,请使用此选项:

uv run src/lightrag_mcp/main.py \
  --mcp-transport streamable-http \
  --mcp-http-host 0.0.0.0 \
  --mcp-http-port 8000 \
  --mcp-http-path /mcp \
  --host localhost \
  --port 9621 \
  --api-key your_api_key

MCP客户端应连接到: http://localhost:8000/mcp

Docker运行时配置

提供以下秘密 LIGHTRAG_API_KEY 在运行时(不在图像中):

docker build -t lightrag-mcp:local .
docker run --rm -it --env-file docker/mcp-example.env lightrag-mcp:local

可用的MCP工具

文档查询

  • query_document:通过LightRAG API执行对文档的查询

文档管理

  • insert_document:将文本直接添加到LightRAG存储中
  • upload_document:将文档从文件上传到/input目录
  • insert_file:将文档从文件直接添加到存储中
  • insert_batch:从目录中添加一批文档
  • scan_for_new_documents:开始扫描/input目录以查找新文档
  • get_documents:获取所有上传文档的列表
  • get_pipeline_status:获取管道中文档处理的状态

知识图谱操作

  • get_graph_labels:从知识图中获取标签(节点和关系类型)
  • create_entities:在知识图中创建多个实体
  • edit_entities:编辑知识图中的多个现有实体
  • delete_by_entities:按名称从知识图中删除多个实体
  • delete_by_doc_ids:删除与多个文档关联的所有实体和关系
  • create_relations:在知识图中的实体之间创建多个关系
  • edit_relations:编辑知识图中实体之间的多个关系
  • merge_entities:通过关系迁移将多个实体合并为一个

监控

  • check_lightrag_health:检查LightRAG API状态

发展

安装开发依赖项

uv pip install -e ".[dev]"

运行过梁

ruff check src/
mypy src/

许可证

麻省理工学院