知识图谱交互服务器

LightRAG MCP Server是一个模型上下文协议服务器,使AI助手能够与LightRAG知识图谱进行交互,支持文档查询、实体管理和语义关系构建。

  • by enriquecatala
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 enriquecatala/mcp-lightrag

使用说明

LightRAG MCP服务器

模型上下文协议(MCP)服务器,使AI助手能够与 LightRAG 知识图谱。通过标准化的工具界面查询文档、管理实体和构建语义关系。 针对黑曜石拱顶进行了优化:内置的智能追加销售和文档跟踪功能使其非常适合需要同步和推理不断发展的黑曜石知识库的代理。

特性

  • 智能更新:智能 upsert 检测文档更改的逻辑,跳过冗余上传,仅在必要时重新索引
  • 知识图查询:在索引文档中执行语义、关键字或混合搜索
  • 文件摄入:将文本、文件或整个目录添加到知识库中
  • 实体管理:在图中创建、更新、合并和删除实体
  • 关系处理:定义和修改实体之间的连接
  • 强大的连接性:带指数退避的自动重试,用于可靠的API通信
  • 灵活的配置:通过环境变量或命令行参数设置选项

安装

# Clone the repository
git clone https://github.com/enriquecatala/mcp-lightrag.git
cd mcp-lightrag

# Install dependencies
uv sync

快速开始

  1. 启动LightRAG服务器 (必须在MCP服务器之前运行)

  2. 启动MCP服务器:

    uv run mcp-lightrag --host localhost --port 9621
    
  3. 连接您的AI助手 通过MCP协议(stdio传输)

配置

选项 环境变量 默认值 描述
--host LIGHTRAG_HOST localhost LightRAG API主机
--port LIGHTRAG_PORT 9621 LightRAG API端口
--api-key LIGHTRAG_API_KEY (无) 可选API密钥
--log-level — INFO 记录冗长

设置为MCP服务器

要将此服务器与MCP客户端(如Claude Desktop)集成,请将以下配置添加到您的 mcp-server-config.json 键入您的设置文件。此配置使用 uv 从源目录运行服务器。

{
  "mcpServers": {
    "mcp-lightrag": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/mcp-lightrag",
        "run",
        "mcp-lightrag",
        "--host",
        "localhost",
        "--port",
        "9621"
      ],
      "env": {
        "LIGHTRAG_API_KEY": "optional_api_key"
      }
    }
  }
}

备注:替换 /absolute/path/to/mcp-lightrag 包含克隆此存储库的实际完整路径。

智能文档处理

该服务器以智能 Upert机制 非常适合与保持同步 黑曜石拱顶 或其他本地知识库:

  • 新建文件 → 立即上传和索引。
  • 未更改的文件 → 检测相同的内容并跳过(节省时间和资源)。
  • 已修改文件 → 自动删除旧版本并为新版本建立索引。 这允许代理有效地“监视”文件夹,并在不进行冗余处理的情况下保持RAG知识图的最新状态。

可用工具

搜索与查询

  • query_knowledge_graph --执行专门的RAG查询(混合、语义、关键字等),根据您的数据回答问题。

文档管理

  • ingest_text --将原始文本内容直接索引到图形中。
  • ingest_file --索引特定的本地文件(需要绝对路径)。
  • upload_and_index --将文件上传到服务器进行索引(处理传输)。
  • ingest_batch --使用模式过滤对目录进行递归扫描和索引。
  • upsert_document --智能文档上传:创建新文档、跳过相同文档或更新修改后的文档。
  • find_document --按文件名搜索文档以检查状态和详细信息。
  • get_latest_documents --检索最近更新的文档的分页列表。
  • list_all_docs --列出系统中的所有文档(警告:对于大型数据集可能很慢)。
  • check_indexing_status --检查后台索引管道是空闲还是繁忙。

图的运算

  • create_entities --手动插入新实体。
  • modify_entities --更新现有实体的属性。
  • remove_entities --删除特定实体。
  • unify_entities --将多个实体合并为一个规范实体。
  • connect_entities --创建或更新实体之间的关系。
  • purge_by_document --删除文档并从图形中删除其所有关联数据。
  • get_graph_metadata --探索图形模式(可用节点标签和关系类型)。

系统

  • verify_server_health -检查LightRAG API是否可访问且运行正常。

发展

# Install dev dependencies
uv sync --all-extras

# Run tests
uv run python -m pytest

# Lint code
uv run ruff check src/

出版

要将新版本发布到PyPI,请执行以下操作:

  1. 更新中的版本 pyproject.toml.
  2. 构建包:
    uv run python -m build
    
  3. 上载到PyPI(需要PyPI API令牌):
    uv run twine upload dist/*
    

更新客户端

如果LightRAG API发展,您可以使用 openapi-python-client。确保您的LightRAG服务器正在运行(例如,在 http://localhost:9621),然后运行:

uv tool run openapi-python-client generate \
  --url http://localhost:9621/openapi.json \
  --output-path src/mcp_lightrag/client/light_rag_server_api_client \
  --meta none \
  --overwrite

这将更新中的客户端代码 src/mcp_lightrag/client/light_rag_server_api_client 基于最新的OpenAPI规范。

许可证

麻省理工学院