项目简介

KGrag MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的后端服务,专注于知识图谱的管理、数据摄取和复杂查询。它无缝集成了 Neo4j 图数据库、AWS S3 存储、Redis 缓存、Qdrant 向量搜索引擎以及大型语言模型(LLM),旨在为 AI 代理应用提供可扩展的知识上下文服务。

主要功能点

  • 知识图谱管理: 存储和管理结构化与非结构化数据。
  • 文档摄取: 将本地文件系统中的文档摄入到知识图谱中。
  • 图数据提取: 从原始数据中智能提取图谱节点和关系。
  • 智能解析: 使用 KGraph 系统解析文本并识别关键信息。
  • 知识图谱查询: 对知识图谱进行复杂查询以获取基于存储文档和关系的答案。
  • Prompt 模板: 提供用于文本关系提取和智能代理查询的 Prompt 模板。
  • LLM 集成: 支持 OpenAI 和 Ollama 等多种 LLM 模型,用于文本处理和查询。

安装步骤

  1. 克隆仓库: 将项目仓库克隆到本地。
  2. 安装依赖: 确保已安装 Python 3.9+ 和 'pip'。然后运行 'pip install -r requirements.txt' 安装所有必要的 Python 依赖。
  3. 环境配置: 创建一个 '.env' 文件(例如 '.env.development' 或 '.env.production')并配置以下关键环境变量:
    • 'LLM_MODEL_TYPE': 指定使用的 LLM 类型,例如 'openai' 或 'ollama'。
    • 'LLM_MODEL_NAME': 指定 LLM 模型名称,例如 'gpt-4.1-mini'。
    • 'API_KEY': 如果使用 OpenAI 或其他需要 API 密钥的 LLM,请提供 API 密钥。
    • 'NEO4J_URL', 'NEO4J_USERNAME', 'NEO4J_PASSWORD', 'NEO4J_DB_NAME': 配置 Neo4j 数据库连接信息。
    • 'REDIS_HOST', 'REDIS_PORT', 'REDIS_DB': 配置 Redis 缓存连接信息。
    • 'QDRANT_URL': 配置 Qdrant 向量数据库连接信息。
    • 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_BUCKET_NAME', 'AWS_REGION': (可选)配置 AWS S3 存储信息。
    • 'LOKI_URL': (可选)配置 Loki 日志服务 URL。
    • 'MCP_ORIGIN': MCP 服务器的外部可访问 URL(例如 'https://your-domain.ngrok-free.app'),用于生成工具结果中的链接。
  4. 启动服务: 通过 Docker Compose 启动整个服务栈是推荐的方式。在项目根目录运行 'docker compose up -d'。如果没有 Docker Compose,可以直接运行 'python server.py' 启动服务器(确保所有依赖服务如 Neo4j, Redis, Qdrant 已独立运行)。

服务器配置(供 MCP 客户端使用)

MCP 客户端需要配置服务器的连接信息。以下是一个示例 'mcp.json' 配置文件,描述了如何连接到 KGrag MCP 服务器:

{
    "servers": {
        "kgrag-server": {
            "url": "http://localhost:8000/sse",
            "type": "sse",
            "description": "KGrag MCP 服务器,提供知识图谱管理、摄取和查询功能。"
        }
    },
    "inputs": []
}
  • 'kgrag-server': 服务器的自定义名称。
  • 'url': KGrag MCP 服务器的访问地址。默认情况下,如果本地运行且通过 SSE 传输,通常是 'http://localhost:8000/sse'。如果部署到其他环境,请替换为实际的公共 URL。
  • 'type': 传输协议类型,这里使用 'sse' (Server-Sent Events)。
  • 'description': 服务器的简要描述。

基本使用方法

KGrag MCP 服务器设计用于与 LLM 代理(如 GitHub Copilot Agent)进行交互。一旦服务器启动并通过 'mcp.json' 配置连接到客户端,LLM 代理就可以利用服务器提供的工具和 Prompt 模板来执行以下操作:

  1. 摄取文档: 客户端可以通过调用 'ingestion' 工具并提供文件路径来将文档摄入知识图谱。
  2. 查询知识图谱: 客户端可以通过调用 'query' 工具并提供问题来查询知识图谱。
  3. 解析文本: 客户端可以调用 'parser' 工具对文本进行解析以提取结构化信息。
  4. 提取图数据: 客户端可以调用 'extract_graph_data' 工具从原始数据中提取图谱节点和关系。 这些操作通常通过 LLM 代理的对话或指令自动完成。

信息

分类

AI与计算